Tải bản đầy đủ (.pdf) (39 trang)

Hướng dẫn lập trình java JSP cho người mới bắt đầu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.43 MB, 39 trang )

1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

 o7planning
MENU

47%

Máy may mini gia đình
ichibai (Trắng)

43%

238,000

Máy đánh trứng Fujipan
FJ­6690HM (Trắng)

17%

165,000

MUA NGAY

MUA NGAY

Máy đuổi côn trùng Pest
Reject LP­03

98,525


MUA NGAY

Hướng dẫn lập trình Java JSP cho người mới bắt đầu
1­ 

Giới thiệu

2­ 

Cài đặt Tomcat Web Server

3­ 

Tạo Project bắt đầu với JSP

4­ 

Cấu hình Web Server Tomcat và chạy ứng dụng

5­ 

Mối quan hệ giữa JSP và Servlet

6­ 

Các ví dụ với JSP

6.1­ 

Một số biến sẵn có trong JSP


6.2­ 

Mã Java bên trong HTML (Jsp)

6.3­ 

Định nghĩa method trong JSP sử dụng <%! %>

7­ 

Các chỉ thị JSP (JSP Directive)

7.1­ 

JSP Directive <%@ page .. %>

7.2­ 

JSP Directive <%@ include ... %>

7.3­ 

JSP Directive <%@ taglib .. %>

8­ 

JSP Standard Actions

8.1­ 


JSP Action jsp:include ..

8.2­ 

JSP Action jsp:useBean ..

8.3­ 

JSP Action jsp:element­jsp:attribute­jsp:body

9­ 
10­ 

Ngôn ngữ biểu thức của JSP (JSP Expression Language)
Sử lý Form

10.1­ 

Get method

10.2­ 

Post method

10.3­ 

Sử lý form

11­ 


Sử lý Cookie

12­ 

Cài đặt Web Tools Platform vào Eclipse

13­ 

Tạo ứng dụng Login đơn giản sử dụng Servlet, JSP và JDBC

/>
1/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

 
 
17 





0

1­ Giới thiệu

Tài liệu này được viết dựa trên:

Eclipse 4.5 (MARS)   (ok for Eclipse 4.4 LUNA)
Tomcat Web Server 8.x
Để bắt đầu với tài liệu này, bạn cần có kiến thức về Servlet, bạn có thể tham khảo tại:
/>
2­ Cài đặt Tomcat Web Server
Để bắt đầu với JSP, bạn cần download Tomcat Web Server và khai báo nó với Eclipse. Bạn có thể xem chỉ dẫn tại:
/>
3­ Tạo Project bắt đầu với JSP
Trên Eclipse chọn:
File/New/Project...

/>
2/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

Nhập vào:
Project name: JspTutorial

/>
3/39


1/14/2016


Hướng dẫn lập trình Java JSP cho người mới bắt đầu

Project của bạn đã được tạo ra:

Tạo mới file jsp
File/New/Other...

/>
4/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

/>
5/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

File index.jsp được tạo ra, nhưng có thông báo lỗi, đừng lo lắng vì điều đó, lý do là bạn chưa khai báo thư viện Servlet. Chúng ta sẽ sử
dụng thư viện Servlet của Tomcat, đồng thời cấu hình Tomcat là Web Server để chạy Project này.

Sửa nội dung file index.jsp:
1
2
3

4
5
6
7
8
9
10
11
12
13

<%@ page language="java" contentType="text/html; charset=ISO‐8859‐1"
  pageEncoding="ISO‐8859‐1"%>
             " /><html>
<head>
<meta http‐equiv="Content‐Type" content="text/html; charset=ISO‐8859‐1">
<title>Insert title here</title>
</head>
<body>
 
  

Hello JSP


 

/>
?

6/39



1/14/2016

13
14
15
16
17
18
19
20
21
22
23

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

 
  <%
      java.util.Date date = new java.util.Date();
  %>
 
  


      Now is
      <%=date.toString()%>
  


</body>
</html>

4­ Cấu hình Web Server Tomcat và chạy ứng dụng
Nhấn phải chuột vào project JspTutorial chọn Properties


/>
7/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

/>
8/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

Bây giờ Project đã không còn báo lỗi.

Nhấn phải chuột vào Project chọn Run As/Run on Server.

/>
9/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

Kết quả chạy ứng dụng:


/>
10/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

Đây là luồng đi của chương trình:

http://localhost:8080/JspTutorial/index.jsp

/>
11/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

5­ Mối quan hệ giữa JSP và Servlet

Khi người dùng gửi một request là một trang JSP tới Web Server. Ví dụ hello.jsp:
Trong lần đầu tiên Web Server sẽ chuyển trang hello.jsp thành file hello_jsp.java và dịch nó thành file class hello_java.class. Đây là
một Servlet, nó sẽ tạo ra HTML trả về phía người dùng.
Trong các lần request thứ 2 trở đi nó sẽ kiểm tra file hello.jsp có gì thay đổi không, nếu không thay đổi nó gọi tới servlet
(hello_jsp.class) và trả dữ liệu HTML về phía người dùng. Trong trường hợp có thay đổi nó sẽ tạo lại file hello_jsp.java và biên dịch lại
ra file hello_jsp.class.




Như vậy khi bạn thay đổi file jsp bạn không cần phải chạy lại Web Server.

6­ Các ví dụ với JSP
/>
12/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

6.1­ Một số biến sẵn có trong JSP
Khai báo Import:
1
2
3
4

<!‐‐ Khai báo import ‐‐>
<%@ page import="java.util.*, java.text.*"  %>  
 
<%@ page import="java.util.List, java.text.*" %>

?

Một số biến có sẵn trong JSP mà bạn sẵn sàng để sử dụng:
request : javax.servlet.http.HttpServletRequest
response: javax.servlet.http.HttpServletResponse

out: javax.servlet.jsp.JspWriter

1
2
3
4
5
6
7
8
9
10
11
12

<%
// Ví dụ sử dụng biến out.
out.println("

Now is "+ new Date()+"

");
 
// Ví dụ sử dụng biến request
String serverName= request.getServerName();
 
 
// Ví dụ sử dụng biến response
response.sendRedirect("");
 
%>

?


6.2­ Mã Java bên trong HTML (Jsp)
Tạo một file jsp:
demo/javaInHtml.jsp

javaInHtml.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

<%@ page import="java.util.Random,java.text.*"%>
<html>
<head>
<meta http‐equiv="Content‐Type" content="text/html; charset=ISO‐8859‐1">
<title>Java In HTML</title>
</head>

<body>
 
   <%
       Random random = new Random();
 
       // Trả về ngẫu nhiên (0, 1 hoặc 2).
       int randomInt = random.nextInt(3);
    
 
       if (randomInt == 0) {
   %>

/>
?

13/39


1/14/2016

17
18
19
20
21
22
23
24
25
26

27
28
29
30
31
32
33
34
35
36
37
38

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

   %>
    
   

Random value =<%=randomInt%>


    
   <%
       } else if (randomInt == 1) {
   %>
    
   

Random value =<%=randomInt%>


 
   <%
       } else {
   %>
    

Random value =<%=randomInt%>


   <%

       }
   %>
 
       
</body>
</html>

Chạy đường dẫn:
http://localhost:8080/JspTutorial/demo/javaInHtml.jsp

Bạn có thể xem code Html của trang trên trình duyệt. Hình minh họa dưới đây là hình chụp trên Firefox.

6.3­ Định nghĩa method trong JSP sử dụng <%! %>
Bản chất thì JSP cuối cùng cũng được dịch thành Servlet (Một class). Vì vậy JSP cũng cho phép bạn tạo các method bên trong nó. Các
method được khai báo bên trong <%!    %>
?

1

<%!

/>
14/39


1/14/2016

1
2

3
4
5
6
7
8
9
10

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

<%!
 
public int sum(int a, int b)  {
 return a + b;
}
 
public void exampleMethod()  {
  // Code here
}
%>

methodInJsp.jsp

1
2
3
4
5
6

7
8
9
10
11
12
13
14
15
16
17
18

?

<%!
   public int sum(int a, int b) {
       return a + b;
   }
%>
<html>
<head>
<meta http‐equiv="Content‐Type" content="text/html; charset=UTF‐8">
<title>Method in JSP</title>
</head>
<body>
 
   


       1 + 2 =    <%=sum(1, 2)%>
   



 
</body>
</html>

7­ Các chỉ thị JSP (JSP Directive)
JSP Directive (Chỉ thị) cung cấp các hướng dẫn cho web container, nói với nó làm thế nào để sử lý các khía cạnh sử lý của JSP.
Directive (Chỉ thị)

Mô tả

<%@ page ... %>

Dùng để định nghĩa một vài thuộc tính, chẳng hạn như error, import, buffer, session,...

<%@ include ... %>

Sử dụng để nhúng một file vào JSP tại thời điểm biên dịch từ JSP ra servlet.

<%@ taglib ... %>

Sử dụng để khai báo các thẻ JSP mở rộng, hoặc các thẻ tùy biến

7.1­ JSP Directive <%@ page .. %>
Các chỉ thị trang (Directive page) được sử dụng để cung cấp hướng dẫn để cho container mà liên quan đến các trang JSP hiện tại. Bạn
có thể mã chỉ thị trang ở bất cứ đâu trong trang JSP của bạn. Theo quy ước, chỉ thị trang được mã hóa ở trên cùng của trang JSP.
Attribute

Mục đích sử dụng

Ví dụ


buffer

Chỉ định mô hình đệm (buffering) cho luồng
đầu ra của servlet.

 

autoFlush

Điều khiển hành vi của bộ đệm (buffer) đầu
ra servlet.

 

contentType

Định nghĩa mã hóa ký tự.

contentType="text/html; charset=UTF8"

errorPage

Định nghĩa một URL của một JSP khác sẽ
hiển thị khi có lỗi xẩy ra trên trang JSP này.

errorPage="error.jsp"

isErrorPage


Kiểm tra xem trang JSP này có phải là
trang errorPage của một trang nào đó theo
khai báo thuộc tính errorPage.

 

extends

Chỉ định class Servlet cha, mà servlet được
sinh ra từ trang JSP này phải mở rộng từ
nó.

extends = "mypackage.MyServlet"

import

Chỉ định rõ danh sách các package, hoặc
các class được import, sử dụng trong trang

import="java.utils.*,java.io.InputStream"

/>
15/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

JSP này, cách nhau bởi dấu phẩy.

info

Định nghĩa một String có thể được truy cập
bởi phương thức getServletInfo() của
servlet.

info = "Login page"

isThreadSafe

Xác định mô hình luồng (threading) cho các  
servlet được tạo ra.

language

Xác định ngôn ngữ lập trình được sử dụng
trong các trang JSP.

language = "java"

session

Xác định có hay không trang JSP tham gia
vào HTTP Session.

 

isELIgnored

Xác định có hay không EL expression trong  

trang JSP sẽ bị bỏ qua.

isScriptingEnabled

Cho phép hay không các thẻ kịch bản
(scripting elements) được phép sử dụng.

 

Ví dụ sử dụng thuộc tính errorPage trong Directive <%@ page ... %>

pageHasError.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

18
19
20

<%@ page language="java" contentType="text/html; charset=UTF‐8"
   pageEncoding="UTF‐8" errorPage ="error.jsp"%>
<%@ page errorPage ="error.jsp"%>
<html>
<head>
<meta http‐equiv="Content‐Type" content="text/html; charset=UTF‐8">
<title>Page has Error</title>
</head>
<body>
 
   

Page has Error


 
 
   <%
       // Error divided by 0
       int i = 1000 / 0;
   %>
 
</body>
</html>

?

error.jsp

1

2
3

<%@ page isErrorPage="true" import="java.io.*" %>    
<html>
<head>

/>
?

16/39


1/14/2016

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26
27
28

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

<head>
<meta http‐equiv="Content‐Type" content="text/html; charset=UTF‐8">
<title>Error</title>
</head>
<body>
 

Some error in page


  
Message:
<%=exception.getMessage()%>
 
 

StackTrace:


<%
   StringWriter stringWriter = new StringWriter();
   PrintWriter printWriter = new PrintWriter(stringWriter);

   exception.printStackTrace(printWriter);
   out.println("
");
   out.println(stringWriter);
   out.println("</pre>");
   printWriter.close();
   stringWriter.close();
%>
  
</body>
</html>

Kết quả chạy pageHasError.jsp
http://localhost:8080/JspTutorial/demo/pageHasError.jsp

7.2­ JSP Directive <%@ include ... %>
JSP cho phép bạn nhúng nội dung các file vào JSP tại thời điểm trang JSP được chuyển thành Servlet.
Ví dụ:
1
2
3
4
5
6
7
8
9
10

<!‐‐ Cú pháp ‐‐>
<%@ include file="url" %>

 
<!‐‐ Ví dụ ‐‐>
<%@ include file = "header.html" %>
 
<%@ include file = "footer.html" %>
 
<!‐‐ Bạn cũng có thể nhúng một trang Jsp khác ‐‐>
<%@ include file = "fragment.jsp" %>

?

Chúng ta xem ví dụ minh họa sau:
/>
17/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

header.html

1
2
3
4
5
6
7
8


<div style="background: #E0E0E0; height: 80px; padding: 5px;">
   <div style="float: left">
       

My Site


   </div>
   <div style="float: right; padding: 10px;">
       Search <input name="search">
   </div>
</div>

?

footer.html

1
2
3
4

   style="background: #E0E0E0; text‐align: center; padding: 5px; margin‐top: 10px;">
   @Copyright mysite.com
</div>

?

includeDemo.jsp

1
2

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

<%@ page import="java.util.Random,java.text.*"%>
<html>
<head>
<meta http‐equiv="Content‐Type" content="text/html; charset=UTF‐8">
<title>Jsp Include Directive</title>
</head>
<body>
 
   <%@ include file="../fragment/header.html"%>
 
    
   

Jsp tutorial for Beginners



    
   Hi! This is Jsp Tutorial...
    
 
   <%@ include file="../fragment/footer.html"%>
</body>
</html>

?

Chạy đường dẫn:
http://localhost:8080/JspTutorial/demo/includeDemo.jsp

/>
18/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

7.3­ JSP Directive <%@ taglib .. %>
Sử dụng để khai báo các thẻ JSP mở rộng hoặc các thẻ tùy biến của bạn sẽ được sử dụng trong trạng JSP này. Phần này sẽ được giới
thiệu chi tiết trong tài liệu "JSP nâng cao"
TODO

8­ JSP Standard Actions
Standard Actions là các hành động được xây dựng sẵn trong JSP, nó không cần phải được khai báo với một chỉ thị "taglib". Tất cả các
standard action trong JSP có một tiền tố mặc định "jsp".
Như vậy về bản chất JSP Standard Actions là các thẻ mở rộng xây dựng sẵn của JSP, mặc định là đã được tích hợp vào trang JSP và

bạn không cần phải khai báo TAGLIB thông qua khai báo Directive <%@ taglib ... %>
Sau đây là danh sách các hành động chuẩn trong JSP.
Cú pháp

Mục đích sử dụng

jsp:include

Dùng để nhúng một file vào trang JSP tại thời điểm Request.
(Chú ý: khác với Directive inclure là nhúng file vào JSP tại thời điểm biên dịch JSP ra Servlet).

jsp:useBean

Tìm hoặc khởi tạo một đối tượng JavaBean.

jsp:setProperty

Sét thuộc tính cho JavaBean

jsp:getProperty

Trèn thuộc tính của JavaBean vào đầu ra (Output)

jsp:forward

Chuyển hướng request tới một trang khác.

jsp:plugin

Tạo ra mã trình duyệt cụ thể tạo thẻ OBJECT hoặc EMBED cho các plugin Java.


jsp:element

Định nghĩa các thành phần XML động. (XML elements)

jsp:attribute

 

jsp:body

 

jsp:text

 

8.1­ JSP Action jsp:include ..
<jsp:include ..> cho phép bạn nhúng một trang vào JSP tại thời điểm request. Khác với sử dụng Directive <%@ include %> nhúng một
file vào JSP tại thời điểm biên dịch JSP thành Servlet.
Xem ví dụ minh họa:

/>
19/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu


dateTime.jsp

1
2
3
4
5
6
7
8
9
10
11
12

<%@ page import="java.util.Date,java.text.*"%>
 
<%
   Date now = new Date();
 
   DateFormat df = new SimpleDateFormat("dd‐MM‐yyyy HH:mm:ss SSS");
    
    
%>
 

Current Time:


<%=df.format(now)%>

?


jspIncludeDemo.jsp

1
2
3
4
5
6
7
8
9
10
11
12

<html>
<head>
<meta http‐equiv="Content‐Type" content="text/html; charset=UTF‐8">
<title>JSP Action jsp:include</title>
</head>
<body>
 

JSP Action jsp:include demo:


 
 <jsp:include page="../fragment/dateTime.jsp"></jsp:include>
 
</body>
</html>

?


Kết quả chạy jspIncludeDemo.jsp:
http://localhost:8080/JspTutorial/demo/jspIncludeDemo.jsp

/>
20/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

8.2­ JSP Action jsp:useBean ..
Xem một ví dụ minh họa:

HelloBean.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14

15
16

package org.o7planning.tutorial.jsp.beans;
 
public class HelloBean {
 
  private String name;
 
  // Bắt buộc phải có cấu tử không tham số.
  public HelloBean() {
  }
 
  public String getName() {
      return name;
  }
 
  public void setName(String name) {
      this.name = name;

17

  }

/>
?

21/39



1/14/2016

17
18
19
20
21
22
23
24
25
26

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

  }
 
  public String getHello() {
      if (name == null) {
          return "Hello every body";
      }
      return "Hello " + name;
  }
 
}

useBeanDemo.jsp

1
2

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

<html>
<head>
<meta http‐equiv="Content‐Type" content="text/html; charset=UTF‐8">
<title>Use Bean</title>
</head>
<body>
 
          class="org.o7planning.tutorial.jsp.beans.HelloBean"></jsp:useBean>

        
        
   

Say Hello:


   <jsp:getProperty name="helloBean" property="hello" />    
    
   <!‐‐ Set property name for helloBean ‐‐>
   <jsp:setProperty  name="helloBean" property="name" value="JSP"/>
   

Say Hello after setName


   <jsp:getProperty name="helloBean" property="hello" />
    
        
</body>
</html>

?

Kết quả chạy ví dụ:
http://localhost:8080/JspTutorial/demo/useBeanDemo.jsp

8.3­ JSP Action jsp:element­jsp:attribute­jsp:body
Trong một số tình huống bạn muốn trả dữ liệu xml về phía người dùng thay vì dữ liệu HTML. Việc sử dụng kết hợp <jsp:element>,
<jsp:attribute>, <jsp:body> làm cho code dễ nhìn hơn, hãy xem ví dụ sau với việc sử dụng kết hợp 3 thẻ nói trên.



JSP vốn là một tài liệu với các thẻ kiểu HTML, như vậy tốt nhất hãy sử dụng các thẻ HTML hoặc các thẻ JSP mở rộng thay vì trèn
/>
22/39



1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

code Java trên JSP. Điều này giúp code trong sáng và dễ nhìn hơn.

Employee.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

23
24
25
26
27
28

package org.o7planning.tutorial.jsp.beans;
 
public class Employee {
 
   private String empNo;
   private String empName;
 
   public Employee() {
 
   }
 
   public String getEmpNo() {
       return empNo;
   }
 
   public void setEmpNo(String empNo) {
       this.empNo = empNo;
   }
 
   public String getEmpName() {
       return empName;
   }
 

   public void setEmpName(String empName) {
       this.empName = empName;
   }
 
}

?

jspElementDemo.jsp

1
2
3
4

<?xml version="1.0" ?>
<%@ page pageEncoding="UTF‐8"%>
 
<jsp:element name="data">

5

 

/>
?

23/39



1/14/2016

5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

 

   

Please view source of this page


    
   <%‐‐  Tạo đối tượng Employee và sét giá trị cho các field của nó ‐‐%>
    
          class="org.o7planning.tutorial.jsp.beans.Employee">
    
       <jsp:setProperty name="emp" property="empNo" value="E01" />
       <jsp:setProperty name="emp" property="empName" value="Smith" />
    
   </jsp:useBean>
    
    
   <jsp:element name="employee">
       <jsp:attribute name="empNo" trim="true">
           <jsp:getProperty name="emp" property="empNo" />        
       </jsp:attribute>
       <jsp:body>
           <jsp:getProperty name="emp" property="empName" />        
       </jsp:body>    
   </jsp:element>
    
</jsp:element>

Chạy URL:
http://localhost:8080/JspTutorial/demo/jspElementDemo.jsp
Và xem source code trên trình duyệt:

Bạn có thể xem giải thích bằng hình minh họa dưới đây.


/>
24/39


1/14/2016

Hướng dẫn lập trình Java JSP cho người mới bắt đầu

Hãy xem code JSP trong trường hợp không sử dụng các thẻ jsp:element/attribute/body.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

22

?

<?xml version="1.0" ?>
<%@ page pageEncoding="UTF‐8"%>
 
<data>
 
   

Please view source of this page


    
   <%‐‐  Tạo đối tượng Employee và sét giá trị cho các field của nó ‐‐%>
    
          class="org.o7planning.tutorial.jsp.beans.Employee">
    
       <jsp:setProperty name="emp" property="empNo" value="E01" />
       <jsp:setProperty name="emp" property="empName" value="Smith" />
    
   </jsp:useBean>    
    
          <%=emp.getEmpName()%>    
   </employee>
    
</data>

9­ Ngôn ngữ biểu thức của JSP (JSP Expression Language)
JSP Expression Language (EL) làm cho nó có thể dễ dàng truy cập vào dữ liệu ứng dụng được lưu trữ trong các thành phần
JavaBeans. JSP EL cho phép bạn tạo ra các biểu thức (a) số học và (b) logic. Trong một biểu thức JSP EL, bạn có thể sử dụng các số

nguyên, số dấu chấm động, String, các hằng số tích hợp, true và false cho các giá trị boolean, và null.
JSP EL được đưa vào JSP từ phiên bản 2.0. Nó là cách để thay thế việc sử dụng thẻ biểu thức <%=expression%>. Bạn nên sử dụng
JSP EL thay vì sử dụng thẻ biểu thức (JSP Expression Tag) ở bất cứ đâu có thể trên trang JSP.
Cú pháp:
1

${expression}

?

Trong tài liệu này (JSP cho người mới bắt đầu) tôi chỉ giới thiệu sơ lược về JSP EL.  Bạn có thể xem tài liệu chi tiết về JSP EL tại:
TODO (!!).
Hãy xem một số ví dụ:

/>
25/39


×