JSP - Cú pháp
Trong chương này, chúng ta sẽ thảo luận về Cú pháp trong JSP. Chúng ta sẽ hiểu cách sử dụng cơ bản của cú pháp đơn giản (tức là các phần tử) liên quan đến phát triển JSP.
Các yếu tố của JSP
Các phần tử của JSP đã được mô tả dưới đây:
Scriptlet
Một scriptlet có thể chứa bất kỳ số lượng câu lệnh ngôn ngữ JAVA, khai báo biến hoặc phương thức hoặc biểu thức hợp lệ trong ngôn ngữ kịch bản trang.
Sau đây là cú pháp của Scriptlet:
<% code fragment %>
Bạn có thể viết XML tương đương với cú pháp trên như sau:
<jsp:scriptlet>
code fragment
</jsp:scriptlet>
Mọi văn bản, thẻ HTML hoặc các phần tử JSP bạn viết phải nằm ngoài script. Sau đây là ví dụ đơn giản và đầu tiên cho JSP:
<html>
<head><title>Hello World</title></head>
<body>
Hello World!<br/>
<%
out.println("Your IP address is " + request.getRemoteAddr());
%>
</body>
</html>
NOTE - Giả sử rằng Apache Tomcat được cài đặt trong C: \ apache-tomcat-7.0.2 và môi trường của bạn được thiết lập theo hướng dẫn thiết lập môi trường.
Hãy để chúng tôi giữ đoạn mã trên trong tệp JSP hello.jsp và đưa tệp này vào C:\apache-tomcat7.0.2\webapps\ROOTdanh mục. Duyệt qua cùng một URL bằng cách sử dụnghttp://localhost:8080/hello.jsp. Đoạn mã trên sẽ tạo ra kết quả sau:
Khai báo JSP
Một khai báo khai báo một hoặc nhiều biến hoặc phương thức mà bạn có thể sử dụng trong mã Java sau này trong tệp JSP. Bạn phải khai báo biến hoặc phương thức trước khi sử dụng nó trong tệp JSP.
Sau đây là cú pháp cho Khai báo JSP:
<%! declaration; [ declaration; ]+ ... %>
Bạn có thể viết XML tương đương với cú pháp trên như sau:
<jsp:declaration>
code fragment
</jsp:declaration>
Sau đây là một ví dụ cho Khai báo JSP:
<%! int i = 0; %>
<%! int a, b, c; %>
<%! Circle a = new Circle(2.0); %>
Biểu thức JSP
Phần tử biểu thức JSP chứa một biểu thức ngôn ngữ kịch bản được đánh giá, chuyển đổi thành Chuỗi và được chèn vào nơi biểu thức xuất hiện trong tệp JSP.
Vì giá trị của một biểu thức được chuyển đổi thành Chuỗi, bạn có thể sử dụng một biểu thức trong một dòng văn bản, cho dù nó có được gắn thẻ HTML hay không, trong tệp JSP.
Phần tử biểu thức có thể chứa bất kỳ biểu thức nào hợp lệ theo Đặc tả ngôn ngữ Java nhưng bạn không thể sử dụng dấu chấm phẩy để kết thúc biểu thức.
Sau đây là cú pháp của JSP Expression:
<%= expression %>
Bạn có thể viết XML tương đương với cú pháp trên như sau:
<jsp:expression>
expression
</jsp:expression>
Ví dụ sau cho thấy một biểu thức JSP:
<html>
<head><title>A Comment Test</title></head>
<body>
<p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p>
</body>
</html>
Đoạn mã trên sẽ tạo ra kết quả sau:
Today's date: 11-Sep-2010 21:24:25
Nhận xét JSP
Nhận xét JSP đánh dấu văn bản hoặc câu lệnh mà vùng chứa JSP nên bỏ qua. Nhận xét JSP hữu ích khi bạn muốn ẩn hoặc "bỏ nhận xét", một phần của trang JSP của bạn.
Sau đây là cú pháp của các bình luận JSP:
<%-- This is JSP comment --%>
Ví dụ sau đây cho thấy các Nhận xét JSP -
<html>
<head><title>A Comment Test</title></head>
<body>
<h2>A Test of Comments</h2>
<%-- This comment will not be visible in the page source --%>
</body>
</html>
Đoạn mã trên sẽ tạo ra kết quả sau:
A Test of Comments
Có một số ít cấu trúc đặc biệt mà bạn có thể sử dụng trong các trường hợp khác nhau để chèn nhận xét hoặc ký tự mà nếu không sẽ được xử lý đặc biệt. Đây là một bản tóm tắt -
Không. | Cú pháp & Mục đích |
---|---|
1 | <%-- comment --%> Một bình luận của JSP. Bị bỏ qua bởi động cơ JSP. |
2 | <!-- comment --> Một nhận xét HTML. Bị trình duyệt bỏ qua. |
3 | <\% Đại diện cho ký tự tĩnh <%. |
4 | %\> Đại diện cho static%> theo nghĩa đen. |
5 | \' Một dấu ngoặc kép trong một thuộc tính sử dụng dấu ngoặc kép. |
6 | \" Dấu ngoặc kép trong thuộc tính sử dụng dấu ngoặc kép. |
Chỉ thị JSP
Một chỉ thị JSP ảnh hưởng đến cấu trúc tổng thể của lớp servlet. Nó thường có dạng sau:
<%@ directive attribute="value" %>
Có ba loại thẻ chỉ thị -
Không. | Chỉ thị & Mô tả |
---|---|
1 | <%@ page ... %> Xác định các thuộc tính phụ thuộc vào trang, chẳng hạn như ngôn ngữ kịch bản, trang lỗi và các yêu cầu về bộ đệm. |
2 | <%@ include ... %> Bao gồm một tệp trong giai đoạn dịch. |
3 | <%@ taglib ... %> Khai báo thư viện thẻ, chứa các hành động tùy chỉnh, được sử dụng trong trang |
Chúng tôi sẽ giải thích chỉ thị JSP trong một chương riêng JSP - Chỉ thị
Hành động JSP
Các hành động JSP sử dụng constructstrong cú pháp XML để kiểm soát hành vi của động cơ servlet. Bạn có thể tự động chèn tệp, sử dụng lại các thành phần JavaBeans, chuyển tiếp người dùng đến một trang khác hoặc tạo HTML cho plugin Java.
Chỉ có một cú pháp cho phần tử Action, vì nó tuân theo tiêu chuẩn XML -
<jsp:action_name attribute="value" />
Các yếu tố hành động về cơ bản là các chức năng được xác định trước. Bảng sau liệt kê các Hành động JSP có sẵn:
Không. | Cú pháp & Mục đích |
---|---|
1 | jsp:include Bao gồm một tệp tại thời điểm trang được yêu cầu. |
2 | jsp:useBean Tìm hoặc khởi tạo một JavaBean. |
3 | jsp:setProperty Đặt thuộc tính của JavaBean. |
4 | jsp:getProperty Chèn thuộc tính của JavaBean vào đầu ra. |
5 | jsp:forward Chuyển tiếp người yêu cầu đến một trang mới. |
6 | jsp:plugin Tạo mã dành riêng cho trình duyệt tạo thẻ OBJECT hoặc EMBED cho plugin Java. |
7 | jsp:element Định nghĩa động các phần tử XML. |
số 8 | jsp:attribute Xác định thuộc tính của phần tử XML được xác định động. |
9 | jsp:body Xác định phần thân của phần tử XML được xác định động. |
10 | jsp:text Được sử dụng để viết văn bản mẫu trong các trang và tài liệu JSP. |
Chúng tôi sẽ giải thích các hành động JSP trong một chương riêng JSP - Các hành động
Đối tượng ngầm định của JSP
JSP hỗ trợ chín biến được xác định tự động, còn được gọi là các đối tượng ngầm định. Các biến này là -
Không. | Mô tả đối tượng |
---|---|
1 | request Đây là HttpServletRequest đối tượng liên kết với yêu cầu. |
2 | response Đây là HttpServletResponse đối tượng kết hợp với phản hồi cho khách hàng. |
3 | out Đây là PrintWriter đối tượng được sử dụng để gửi đầu ra cho máy khách. |
4 | session Đây là HttpSession đối tượng liên kết với yêu cầu. |
5 | application Đây là ServletContext đối tượng liên kết với ngữ cảnh ứng dụng. |
6 | config Đây là ServletConfig đối tượng liên kết với trang. |
7 | pageContext Điều này bao gồm việc sử dụng các tính năng dành riêng cho máy chủ như hiệu suất cao hơn JspWriters. |
số 8 | page Đây chỉ đơn giản là một từ đồng nghĩa với this, và được sử dụng để gọi các phương thức được định nghĩa bởi lớp servlet đã dịch. |
9 | Exception Các Exception cho phép dữ liệu ngoại lệ được truy cập bởi JSP được chỉ định. |
Chúng tôi sẽ giải thích các đối tượng ngầm định của JSP trong một chương riêng JSP - Đối tượng ngầm định .
Tuyên bố luồng kiểm soát
Bạn có thể sử dụng tất cả các API và khối xây dựng của Java trong lập trình JSP của mình bao gồm các câu lệnh ra quyết định, các vòng lặp, v.v.
Tuyên bố ra quyết định
Các if...else khối bắt đầu giống như một Scriptlet thông thường, nhưng Scriptlet được đóng ở mỗi dòng với văn bản HTML được bao gồm giữa các thẻ Scriptlet.
<%! int day = 3; %>
<html>
<head><title>IF...ELSE Example</title></head>
<body>
<% if (day == 1 || day == 7) { %>
<p> Today is weekend</p>
<% } else { %>
<p> Today is not weekend</p>
<% } %>
</body>
</html>
Đoạn mã trên sẽ tạo ra kết quả sau:
Today is not weekend
Bây giờ hãy xem những điều sau switch...case khối đã được viết khác một chút bằng cách sử dụng out.println() và bên trong Scriptletas -
<%! int day = 3; %>
<html>
<head><title>SWITCH...CASE Example</title></head>
<body>
<%
switch(day) {
case 0:
out.println("It\'s Sunday.");
break;
case 1:
out.println("It\'s Monday.");
break;
case 2:
out.println("It\'s Tuesday.");
break;
case 3:
out.println("It\'s Wednesday.");
break;
case 4:
out.println("It\'s Thursday.");
break;
case 5:
out.println("It\'s Friday.");
break;
default:
out.println("It's Saturday.");
}
%>
</body>
</html>
Đoạn mã trên sẽ tạo ra kết quả sau:
It's Wednesday.
Tuyên bố vòng lặp
Bạn cũng có thể sử dụng ba loại khối lặp cơ bản trong Java: for, while, and do…while trong lập trình JSP của bạn.
Chúng ta hãy xem xét những điều sau đây for ví dụ về vòng lặp -
<%! int fontSize; %>
<html>
<head><title>FOR LOOP Example</title></head>
<body>
<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
<font color = "green" size = "<%= fontSize %>">
JSP Tutorial
</font><br />
<%}%>
</body>
</html>
Đoạn mã trên sẽ tạo ra kết quả sau:
JSP Tutorial
JSP Tutorial
JSP Tutorial
Ví dụ trên có thể được viết bằng cách sử dụng while vòng lặp như sau -
<%! int fontSize; %>
<html>
<head><title>WHILE LOOP Example</title></head>
<body>
<%while ( fontSize <= 3){ %>
<font color = "green" size = "<%= fontSize %>">
JSP Tutorial
</font><br />
<%fontSize++;%>
<%}%>
</body>
</html>
Đoạn mã trên sẽ tạo ra kết quả sau:
JSP Tutorial
JSP Tutorial
JSP Tutorial
Nhà điều hành JSP
JSP hỗ trợ tất cả các toán tử logic và số học được Java hỗ trợ. Bảng sau liệt kê tất cả các toán tử có mức độ ưu tiên cao nhất xuất hiện ở đầu bảng, những toán tử có mức độ ưu tiên thấp nhất xuất hiện ở cuối bảng.
Trong một biểu thức, các toán tử có mức độ ưu tiên cao hơn sẽ được đánh giá đầu tiên.
thể loại | Nhà điều hành | Sự liên kết |
---|---|---|
Postfix | () []. (toán tử dấu chấm) | Trái sang phải |
Một ngôi | ++ - -! ~ | Phải sang trái |
Phép nhân | * /% | Trái sang phải |
Phụ gia | + - | Trái sang phải |
Shift | >> >>> << | Trái sang phải |
Quan hệ | >> = <<= | Trái sang phải |
Bình đẳng | ==! = | Trái sang phải |
Bitwise VÀ | & | Trái sang phải |
Bitwise XOR | ^ | Trái sang phải |
Bitwise HOẶC | | | Trái sang phải |
Logic AND | && | Trái sang phải |
Logic HOẶC | || | Trái sang phải |
Có điều kiện | ?: | Phải sang trái |
Chuyển nhượng | = + = - = * = / =% = >> = << = & = ^ = | = | Phải sang trái |
Dấu phẩy | , | Trái sang phải |
JSP Literals
Ngôn ngữ biểu thức JSP xác định các ký tự sau:
Boolean - đúng và sai
Integer - như trong Java
Floating point - như trong Java
String- với dấu ngoặc kép và đơn; "được thoát dưới dạng \", 'được thoát dưới dạng \' và \ được thoát dưới dạng \\.
Null - null