CodeGym /Kursy /All lectures for PL purposes /Struktura plików JSP

Struktura plików JSP

All lectures for PL purposes
Poziom 1, Lekcja 467
Dostępny

2.1 Dyrektywy JSP

Ponieważ dowiedzieliśmy się, że plik JSP jest konwertowany na zwykły serwlet, można w nim pisać normalny kod Java. A w tym kodzie Java możesz używać różnych klas (Math z przykładu). To jest jeszcze lepsze! Widzimy jednak, że cały kod został przeniesiony do doGet()metody serwletu. A to od razu rodzi kilka pytań:

  • Jak to zrobić, aby kod został przeniesiony do metody doPost()?
  • Jak dodać własny kod do metody init()?
  • Jak w końcu zarejestrować import klas?

Świetne pytania i oczywiście mają na nie odpowiedź - dyrektywy JSP. Cały kod inny niż HTML na stronie JSP musi być ujęty w specjalne nawiasy kwadratowe <%i %>. Wszystkie dyrektywy JSP są podane w szablonie:

<%@ directive %>

Oto lista najpopularniejszych atrybutów dyrektywy strony:

Przykład Opis
1 import <%@ page import="java.util.Date" %> Importuje klasę
2 Typ zawartości <%@ page contentType=text/html %> Ustawia contentType
3 rozciąga się <%@ page extends="Object" %> Możesz ustawić klasę bazową
4 informacje <%@ page info="Author: Peter Ivanovich; version:1.0" %> Ustawia dane dla getServletInfo()
5 bufor <%@ page buffer="16kb" %> Ustawia rozmiar bufora odpowiedzi
6 język <%@ page language="java" %> Określa język, domyślnie jest to Java
7 jestELIGignorowany <%@ page isELIgnored="true" %> Umożliwia wyłączenie skryptów EL
8 jest bezpieczny dla wątków <%@ page isThreadSafe="false" %> Wskazuje na bezpieczeństwo wątków
9 automatyczne płukanie <%@ page autoFlush="false" %> Zarządza zapisami w buforze
10 sesja <%@ page session="false" %> Możesz wyłączyć sesję dla strony
jedenaście kodowanie strony <%@ page pageEncoding="UTF-8"%> Możesz ustawić kodowanie strony
12 Strona błędu <%@ page errorPage="errorpage.jsp" %> Możesz ustawić stronę błędu

2.2 Import

Dla zabawy dodajmy import do naszego pliku JSP i zdefiniujmy klasę bazową.

Przykład pliku JSP:


 <%@ 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> 

A oto co z tego wyniknie:

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> ");
    }
}

Pracuje. Świetnie!

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION