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