2.1 JSP-direktiver
Siden vi fant ut at JSP-filen er konvertert til en vanlig servlet, kan du skrive normal Java-kode i den. Og i denne Java-koden kan du bruke ulike klasser (Matte fra eksempelet). Dette er enda bedre! Men vi kan se at all koden har blitt flyttet til en doGet()
servlet-metode. Og dette reiser umiddelbart flere spørsmål:
- Hvordan gjøre det slik at koden flyttes til metoden
doPost()
? - Hvordan legge til din egen kode i metoden
init()
? - Hvordan til slutt registrere klasseimport?
Flotte spørsmål, og selvfølgelig har de et svar - JSP-direktiver. All ikke-HTML-kode i en JSP må være omsluttet av spesielle parenteser <%
og %>
. Alle JSP-direktiver er gitt av en mal:
<%@ directive %>
Her er en liste over de mest populære sidedirektivet:
Eksempel | Beskrivelse | ||
---|---|---|---|
1 | import | <%@ page import="java.util.Date" %> |
Importerer en klasse |
2 | innholdstype | <%@ page contentType=text/html %> |
Angir contentType |
3 | strekker | <%@ page extends="Object" %> |
Du kan angi grunnklassen |
4 | info | <%@ page info="Author: Peter Ivanovich; version:1.0" %> |
Angir data for getServletInfo() |
5 | buffer | <%@ page buffer="16kb" %> |
Angir størrelsen på svarbufferen |
6 | Språk | <%@ page language="java" %> |
Angir språket, standard er Java |
7 | Ignoreres | <%@ page isELIgnored="true" %> |
Lar deg deaktivere EL-skript |
8 | er ThreadSafe | <%@ page isThreadSafe="false" %> |
Peker på trådsikker |
9 | autoFlush | <%@ page autoFlush="false" %> |
Håndterer bufferskrivinger |
10 | økt | <%@ page session="false" %> |
Du kan deaktivere økten for siden |
elleve | sidekoding | <%@ page pageEncoding="UTF-8"%> |
Du kan angi sidekodingen |
12 | feilside | <%@ page errorPage="errorpage.jsp" %> |
Du kan angi en feilside |
2.2 Import
La oss legge til noen importer til JSP-filen vår for moro skyld og definere en basisklasse.
JSP fil eksempel:
<%@ page import="java.util.Date" %>
<%@ page import="java.lang.Math" %>
<%@ page extends="com.codegym.MyHttpServlet" %>
<html>
<body>
<%
double num = Math.random();
if (num > 0.95) {
%>
<h2>You are lucky, user!</h2><p>(<%= num %>)</p>
<%
}
%>
</body>
</html>
Og dette er hva som kommer ut av det:
import java.util.Date;
import java.lang.Math;
public class HelloServlet extends com.codegym.MyHttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
PrintWriter out = response.getWriter();
out.print("<html> ");
out.print("<body> ");
double num = Math.random();
if (num > 0.95) {
out.print("<h2> You're lucky, user! </h2> <p> (" + num + ")</p> ");
}
out.print("</body> ");
out.print("</html> ");
}
}
Virker. Flott!
GO TO FULL VERSION