ในส่วนนี้จะแนะนำไวยากรณ์พื้นฐานในการพัฒนา JSP โดยย่อ
โปรแกรมสคริปต์สามารถมีคำสั่ง Java ตัวแปร เมธอด หรือนิพจน์จำนวนเท่าใดก็ได้ ตราบใดที่คำสั่งเหล่านั้นใช้ได้ในภาษาสคริปต์
รูปแบบไวยากรณ์ของโปรแกรมสคริปต์:
<% ข้อมูลโค้ด%>
หรือคุณสามารถเขียนคำสั่ง XML ที่เทียบเท่าได้ดังนี้:
<jsp:scriptlet> ข้อมูลโค้ด</jsp:scriptlet>
ข้อความ แท็ก HTML และองค์ประกอบ JSP ใดๆ จะต้องเขียนนอกโปรแกรมสคริปต์
ตัวอย่างได้รับด้านล่าง ซึ่งเป็นตัวอย่าง JSP แรกของบทช่วยสอนนี้:
<html><head><title>Hello World</title></head><body>Hello World!<br/><% out.println("ที่อยู่ IP ของคุณคือ " + request.getRemoteAddr() % ></ร่างกาย></html>
หมายเหตุ: โปรดตรวจสอบให้แน่ใจว่าได้ติดตั้ง Apache Tomcat ในไดเร็กทอรี C:apache-tomcat-7.0.2 และสภาพแวดล้อมการทำงานได้รับการตั้งค่าอย่างถูกต้อง
บันทึกโค้ดด้านบนใน hello.jsp จากนั้นวางไว้ในไดเร็กทอรี C:apache-tomcat-7.0.2webappsROOT เปิดเบราว์เซอร์แล้วป้อน http://localhost:8080/hello ในแถบที่อยู่ .jsp . หลังจากวิ่งแล้วฉันจะได้ผลลัพธ์ดังนี้:
คำสั่งประกาศสามารถประกาศตัวแปรและวิธีการหนึ่งหรือหลายรายการเพื่อใช้โดยโค้ด Java ที่ตามมา ในไฟล์ JSP คุณต้องประกาศตัวแปรและวิธีการเหล่านี้ก่อนจึงจะสามารถใช้งานได้
รูปแบบไวยากรณ์ของการประกาศ JSP:
<%! ประกาศ; [ ประกาศ ]+ ... %>
หรือคุณสามารถเขียนคำสั่ง XML ที่เทียบเท่าได้ดังนี้:
<jsp:declaration>ข้อมูลโค้ด</jsp:declaration>
ตัวอย่างโปรแกรม:
<%! int i = 0; %> <%! int a, b, c; %> <%! วงกลม a = วงกลมใหม่ (2.0);
นิพจน์ภาษาสคริปต์ที่มีอยู่ในนิพจน์ JSP จะถูกแปลงเป็นสตริงในขั้นแรก จากนั้นจึงแทรกลงในตำแหน่งที่นิพจน์ปรากฏขึ้น
เนื่องจากค่าของนิพจน์ถูกแปลงเป็นสตริง คุณสามารถใช้นิพจน์ในบรรทัดข้อความได้ ไม่ว่าจะเป็นแท็ก HTML หรือไม่ก็ตาม
องค์ประกอบนิพจน์สามารถมีนิพจน์ใดๆ ที่สอดคล้องกับข้อกำหนดภาษา Java แต่ไม่สามารถใช้เครื่องหมายอัฒภาคเพื่อยุตินิพจน์ได้
รูปแบบไวยากรณ์ของนิพจน์ JSP:
<%= นิพจน์%>
ในทำนองเดียวกัน คุณสามารถเขียนคำสั่ง XML ที่เทียบเท่าได้:
<jsp:expression> นิพจน์</jsp:expression>
ตัวอย่างโปรแกรม:
<html> <head><title>การทดสอบความคิดเห็น</title></head> <body><p> วันที่ของวันนี้: <%= (new java.util.Date()).toLocaleString()%></ </body> </html>
หลังจากวิ่งแล้วฉันจะได้ผลลัพธ์ดังนี้:
วันที่วันนี้: 11-Sep-2013 21:24:25 น
ความคิดเห็นของ JSP มีสองฟังก์ชันหลัก: การแสดงความคิดเห็นในโค้ด และการแสดงความคิดเห็นในบางส่วนของโค้ด
รูปแบบไวยากรณ์ของความคิดเห็น JSP:
<%-- คุณสามารถกรอกความคิดเห็น JSP ได้ที่นี่--%>
ตัวอย่างโปรแกรม:
<html> <head><title>การทดสอบความคิดเห็น</title></head> <body> <h2>การทดสอบความคิดเห็น</h2> <%-- ความคิดเห็นในส่วนนี้จะไม่ปรากฏบนเว็บ หน้า -- %> </body> </html>
หลังจากวิ่งแล้วฉันจะได้ผลลัพธ์ดังนี้:
การทดสอบความคิดเห็น
กฎไวยากรณ์สำหรับการใช้ความคิดเห็นในสถานการณ์ต่างๆ:
ไวยากรณ์ | อธิบาย |
---|---|
<%--ความคิดเห็น--%> | ความคิดเห็น JSP เนื้อหาความคิดเห็นจะไม่ถูกส่งไปยังเบราว์เซอร์หรือคอมไพล์ |
<!-- ความคิดเห็น --> | ความคิดเห็น HTML คุณสามารถดูเนื้อหาความคิดเห็นเมื่อดูซอร์สโค้ดของหน้าเว็บผ่านเบราว์เซอร์ |
- | แสดงถึงค่าคงที่ <% คงที่ |
- | แสดงถึงค่าคงที่ %> คงที่ |
- | เครื่องหมายคำพูดเดี่ยวที่ใช้ในแอตทริบิวต์ |
- | เครื่องหมายคำพูดคู่ที่ใช้ในแอตทริบิวต์ |
คำสั่ง JSP ใช้เพื่อตั้งค่าคุณสมบัติที่เกี่ยวข้องกับเพจ JSP ทั้งหมด
รูปแบบไวยากรณ์คำสั่ง JSP:
<%@ แอตทริบิวต์คำสั่ง = "ค่า" %>
มีแท็กคำสั่งสามแท็ก:
คำแนะนำ | อธิบาย |
---|---|
<%@ หน้า ... %> | กำหนดแอตทริบิวต์การขึ้นต่อกันของเพจ เช่น ภาษาสคริปต์ หน้าข้อผิดพลาด ข้อกำหนดแคช ฯลฯ |
<%@ รวม ... %> | รวมถึงไฟล์อื่นๆ |
<%@ taglib ... %> | แนะนำคำจำกัดความของไลบรารีแท็ก ซึ่งสามารถเป็นแท็กที่กำหนดเองได้ |
แท็กพฤติกรรม JSP ใช้โครงสร้างไวยากรณ์ XML เพื่อควบคุมเอ็นจิ้นเซิร์ฟเล็ต โดยสามารถแทรกไฟล์แบบไดนามิก, นำส่วนประกอบ JavaBean มาใช้ซ้ำ, แนะนำผู้ใช้ไปยังหน้าอื่น, สร้าง HTML ที่เกี่ยวข้องสำหรับปลั๊กอิน Java และอื่นๆ
แท็กพฤติกรรมมีรูปแบบไวยากรณ์เพียงรูปแบบเดียวเท่านั้น ซึ่งเป็นไปตามมาตรฐาน XML อย่างเคร่งครัด:
<jsp:action_name คุณลักษณะ = "ค่า" />
แท็กลักษณะการทำงานโดยพื้นฐานแล้วเป็นฟังก์ชันที่กำหนดไว้ล่วงหน้าบางส่วน ตารางต่อไปนี้แสดงรายการแท็กพฤติกรรม JSP บางส่วนที่มีอยู่::
ไวยากรณ์ | อธิบาย |
---|---|
jsp:รวม | ใช้เพื่อรวมทรัพยากรแบบคงที่หรือไดนามิกในหน้าปัจจุบัน |
jsp:useBean | ค้นหาและเริ่มต้นองค์ประกอบ JavaBean |
jsp:setProperty | ตั้งค่าขององค์ประกอบ JavaBean |
jsp:getProperty | แทรกค่าของคอมโพเนนต์ JavaBean ลงในเอาต์พุต |
jsp:ไปข้างหน้า | ส่งผ่านอ็อบเจ็กต์คำขอที่มีคำขอของผู้ใช้จากไฟล์ JSP หนึ่งไปยังอีกไฟล์หนึ่ง |
jsp:ปลั๊กอิน | ใช้เพื่อรวมวัตถุ Applet และ JavaBean ในหน้า HTML ที่สร้างขึ้น |
jsp:องค์ประกอบ | สร้างองค์ประกอบ XML แบบไดนามิก |
jsp:แอตทริบิวต์ | กำหนดคุณลักษณะขององค์ประกอบ XML ที่สร้างขึ้นแบบไดนามิก |
เจเอสพี:ร่างกาย | กำหนดเนื้อความขององค์ประกอบ XML ที่สร้างขึ้นแบบไดนามิก |
jsp:ข้อความ | ใช้เพื่อห่อหุ้มข้อมูลเทมเพลต |
JSP สนับสนุนตัวแปรที่กำหนดโดยอัตโนมัติเก้าตัว ซึ่งเรียกว่าอ็อบเจ็กต์โดยนัย ข้อมูลเบื้องต้นเกี่ยวกับวัตถุโดยนัยทั้งเก้านี้แสดงอยู่ในตารางด้านล่าง:
วัตถุ | อธิบาย |
---|---|
ขอ | อินสแตนซ์ของคลาส HttpServletRequest |
การตอบสนอง | อินสแตนซ์ของคลาส HttpServletResponse |
ออก | อินสแตนซ์ของคลาส PrintWriter ใช้เพื่อแสดงผลผลลัพธ์ไปยังเว็บเพจ |
การประชุม | อินสแตนซ์ของคลาส HttpSession |
แอปพลิเคชัน | อินสแตนซ์ของคลาส ServletContext ที่เกี่ยวข้องกับบริบทของแอปพลิเคชัน |
กำหนดค่า | อินสแตนซ์ของคลาส ServletConfig |
บริบทของหน้า | อินสแตนซ์ของคลาส PageContext ที่ให้การเข้าถึงอ็อบเจ็กต์และเนมสเปซทั้งหมดของเพจ JSP |
หน้าหนังสือ | คล้ายกับคีย์เวิร์ดนี้ในคลาส Java |
ข้อยกเว้น | อ็อบเจ็กต์ของคลาส Exception แสดงถึงอ็อบเจ็กต์ข้อยกเว้นที่สอดคล้องกันในหน้า JSP ที่เกิดข้อผิดพลาด |
JSP จัดเตรียมการสนับสนุนภาษา Java อย่างสมบูรณ์ คุณสามารถใช้ Java API ในโปรแกรม JSP และแม้แต่สร้างบล็อคโค้ด Java รวมถึงคำสั่งการตัดสินและคำสั่งลูป ฯลฯ
ถ้า...บล็อกอื่น ดูตัวอย่างนี้:
<%! int day = 3; %> <html> <head><title>IF...ELSE ตัวอย่าง</title></head> <body><% if (วัน == 1 | วัน == 7) { %> <p> วันนี้เป็นวันหยุดสุดสัปดาห์</p><% } else { %> <p> วันนี้ไม่ใช่วันหยุดสุดสัปดาห์</p><% } %></body> </html>
หลังจากวิ่งแล้วฉันจะได้ผลลัพธ์ดังนี้:
วันนี้ไม่ใช่วันหยุดสุดสัปดาห์
ตอนนี้เรามาดูกันที่ switch...case block มันแตกต่างอย่างมากจากบล็อก if...else มันใช้ out.println() และมีอยู่ในแท็กของสคริปต์ เช่นนี้:
<%! int day = 3; %> <html> <head><title>SWITCH...CASE ตัวอย่าง</title></head> <body><% switch(day) { case 0: out.println( "วันนี้เป็นวันอาทิตย์"); กรณีที่ 1: out.println("เป็นวันจันทร์"); กรณีที่ 2: out.println("เป็นวันอังคาร"); กรณีที่ 3: out.println("เป็นวันพุธ"); กรณีที่ 4: out.println("เป็นวันพฤหัสบดี"); กรณีที่ 5: out.println("เป็นวันศุกร์" ); ค่าเริ่มต้น: out.println("วันนี้เป็นวันเสาร์"); } %></body> </html>
หลังจากรันแล้วจะได้ผลลัพธ์ดังนี้:
มันเป็นวันพุธ
คำสั่งวนซ้ำ
ประเภทลูปพื้นฐานของ Java สามประเภทสามารถใช้ได้ในโปรแกรม JSP: for, while, และ do... While
ลองดูตัวอย่างของ for loop:
<%! int fontSize; %> <html> <head><title>FOR LOOP ตัวอย่าง</title></head> <body><%for ( FontSize = 1; FontSize <= 3; FontSize++){ %> < font color="green" size="<%= fontSize %>"> บทช่วยสอน JSP </font><br /><%}%></body> </html>
หลังจากวิ่งแล้วฉันจะได้ผลลัพธ์ดังนี้:
บทช่วยสอน JSP บทช่วยสอน JSP การสอน JSPเขียนตัวอย่างข้างต้นใหม่โดยใช้การวนซ้ำ while:
<%! int fontSize; %> <html> <head><title>ในขณะที่ตัวอย่าง</title></head> <body><% ในขณะที่ (fontSize <= 3){ %> <font color="green" size="<%= fontSize %>"> บทช่วยสอน JSP </font><br /><%fontSize++;%><%}%></body> </html>
ฉันได้รับผลลัพธ์เดียวกันหลังจากทำงาน:
บทช่วยสอน JSP บทช่วยสอน JSP การสอน JSPJSP สนับสนุนตัวดำเนินการเชิงตรรกะและเลขคณิต Java ทั้งหมด
ตารางต่อไปนี้แสดงรายการตัวดำเนินการ JSP ทั่วไป ตามลำดับความสำคัญ:
หมวดหมู่ | ผู้ดำเนินการ | การเชื่อมโยง |
---|---|---|
คำต่อท้าย | () [] . (ตัวดำเนินการจุด) | จากซ้ายไปขวา |
หนึ่งหยวน | - | จากขวาไปซ้าย |
ความสามารถในการคูณ | - | จากซ้ายไปขวา |
การเติมแต่ง | - | จากซ้ายไปขวา |
กะ | - | จากซ้ายไปขวา |
ความสัมพันธ์ | - | จากซ้ายไปขวา |
เท่ากัน/ไม่เท่ากัน | - | จากซ้ายไปขวา |
บิตและ | - | จากซ้ายไปขวา |
บิต XOR | - | จากซ้ายไปขวา |
บิตหรือ | - | จากซ้ายไปขวา |
ตรรกะและ | - | จากซ้ายไปขวา |
ตรรกะหรือ | - | จากซ้ายไปขวา |
การตัดสินแบบมีเงื่อนไข | - | จากขวาไปซ้าย |
งานที่มอบหมาย | - | จากขวาไปซ้าย |
ลูกน้ำ | - | จากซ้ายไปขวา |
ภาษา JSP กำหนดค่าคงที่ต่อไปนี้:
บูลีน: จริงและเท็จ;
ประเภทจำนวนเต็ม (int): เช่นเดียวกับใน Java;
Float: เช่นเดียวกับใน Java;
สตริง: เริ่มต้นและสิ้นสุดด้วยเครื่องหมายคำพูดเดี่ยวหรือคู่
โมฆะ: โมฆะ