2.1 คำสั่ง JSP
เนื่องจากเราพบว่าไฟล์ JSP ถูกแปลงเป็นเซิร์ฟเล็ตปกติ คุณจึงสามารถเขียนโค้ด Java ปกติลงไปได้ และในโค้ด Java นี้ คุณสามารถใช้คลาสต่างๆ ได้ (คณิตศาสตร์จากตัวอย่าง) นี้ดียิ่งขึ้น! แต่เราจะเห็นว่าโค้ดทั้งหมดถูกย้ายไปยังdoGet()
เมธอดเซิร์ฟเล็ต และสิ่งนี้ทำให้เกิดคำถามหลายข้อในทันที:
- ทำอย่างไรให้โค้ดถูกย้ายไปที่ method
doPost()
? - วิธีเพิ่มรหัสของคุณเองในวิธีการ
init()
? - ในที่สุดการลงทะเบียนการนำเข้าคลาส?
คำถามดีๆ และแน่นอน พวกเขามีคำตอบ - คำสั่ง JSP โค้ดที่ไม่ใช่ HTML ทั้งหมดภายใน JSP จะต้องอยู่ในวงเล็บเหลี่ยมพิเศษ<%
และ%>
. คำสั่ง JSP ทั้งหมดกำหนดโดยเทมเพลต:
<%@ directive %>
นี่คือรายการแอตทริบิวต์คำสั่งของเพจที่ได้รับความนิยมสูงสุด:
ตัวอย่าง | คำอธิบาย | ||
---|---|---|---|
1 | นำเข้า | <%@ page import="java.util.Date" %> |
นำเข้าคลาส |
2 | ชนิดของเนื้อหา | <%@ page contentType=text/html %> |
ตั้งค่า contentType |
3 | ขยาย | <%@ page extends="Object" %> |
คุณสามารถตั้งค่าคลาสพื้นฐาน |
4 | ข้อมูล | <%@ page info="Author: Peter Ivanovich; version:1.0" %> |
ตั้งค่าข้อมูลสำหรับ getServletInfo() |
5 | กันชน | <%@ page buffer="16kb" %> |
กำหนดขนาดของบัฟเฟอร์การตอบสนอง |
6 | ภาษา | <%@ page language="java" %> |
ระบุภาษา ค่าเริ่มต้นคือ Java |
7 | isELIgnored | <%@ page isELIgnored="true" %> |
อนุญาตให้คุณปิดใช้งานสคริปต์ EL |
8 | คือThreadSafe | <%@ page isThreadSafe="false" %> |
ชี้ไปที่ threadsafe |
9 | ล้างอัตโนมัติ | <%@ page autoFlush="false" %> |
จัดการการเขียนบัฟเฟอร์ |
10 | การประชุม | <%@ page session="false" %> |
คุณสามารถปิดเซสชันสำหรับหน้า |
สิบเอ็ด | การเข้ารหัสหน้า | <%@ page pageEncoding="UTF-8"%> |
คุณสามารถตั้งค่าการเข้ารหัสหน้า |
12 | หน้าข้อผิดพลาด | <%@ page errorPage="errorpage.jsp" %> |
คุณสามารถตั้งค่าหน้าข้อผิดพลาด |
2.2 การนำเข้า
มาเพิ่มการนำเข้าไฟล์ JSP ของเราเพื่อความสนุกและกำหนดคลาสพื้นฐาน
ตัวอย่างไฟล์ 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>
และนี่คือสิ่งที่จะเกิดขึ้น:
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> ");
}
}
ทำงาน ยอดเยี่ยม!