Đặc biệt JSP này cho phép người dùng nhúng mã Java và một số hành động xử lý đã được định trước vào trong nội dung tĩnh của trang.. Nhúng file & chuyểnhướng giữa các trang JSP 3.1 Nhúng
Trang 1Thành viên trong nhóm:
Trang 2JSP (Java Server Pages)
& Custom Tags
Trang 3JAVA SERVER PAGES
Trang 41 Khái niệm JSP
JSP là một nền tảng Java cho phép tạo nội dung động cho các trong
HTML, XML,DHMTL, XHTML Đặc biệt JSP này cho phép người dùng nhúng mã Java và một số hành động xử lý đã được định trước vào trong nội dung tĩnh của trang
JSP (1.0) = HTML + Java code
Thuận lợi khi dùng JSP:
-Tạo trang web động
-Những trang HTML dễ viết và bảo trì dùng các công cụ thiết Web -Công việc được tách biệt và phân công rõ ràng trong nhóm phát
triển
Trang 5Phương pháp file JSP chạy
Trang 82.3 Kết xuất giá trị đối tượng: <%= %>
2.4 Khai báo biến & phương thức: <%! %>
Lưu ý: biểu thức nằm trong thẻ <%= không được tận cùng bằng dấu chấm phẩy (;)
như lệnh trong java
2.5 Khai báo thư viện: <%@ page %>
Ví dụ: <%@ page import = “java.sql.*, java.util.*” %>
Trang 93 Nhúng file & chuyển
hướng giữa các trang JSP
3.1 Nhúng file (Include file): <%@ include file=“filename” %>
-Dùng để đem nội dung file “html” hay “jsp” khác bên ngoài vào trang hiện hành.
Trang 103.2 Chuyển hướng các các trang jsp (sendRedirect): <jsp:forward page="./loginOK.jsp"></jsp:forward>
Ví dụ: chuyển hướng đến trang thể hiện kết quả login
Trang 12Sự khác nhau giữa sendRedirect() & jsp:forward()
Khi client gửi Request thì Response
sẽ trả về trực tiếp tại client brower Khi client gửi Request thì Request sẽ được các Servlet/JSP xử lý, (Client
không làm gì được)
Khi Redirect gửi trả về, client có thể
nhìn thấy được nguồn trên đường link
Trang 133.4 Bean trong một trang JSP
-Các thuộc tính của Bean được truy xuất thông qua phương thức Getter
và Setter.
-Đặc điểm:
Phương thức Getter: không chứa tham số và trả về một giá trị
Phương thức Setter: chứa một tham số và có kiểu trả về là void
VD: public class Message{
private String message = “Hello Mr.Bean!!”
public String getMessage() {
return Message;}
public void setMessage() {
message = m; }
}
Trang 14-Trước khi sử dụng Bean trong một trang JSP, cần khai báo với JSP container đó là Bean loại gì.
-Có 3 loại tag cơ bản để làm việc với Bean:
+ <jsp: useBean>
+<jsp: setProperty>
+<jsp: getProperty>
Trang 15<jsp:useBean>: Chúng ta có thể tạo các lớp đối tượng java & gọi chúng
Trang 16<jsp:getProperty>:
Ví dụ: để gọi phương thức getMessage của SimpleBean
<jsp:useBean id="test" class="MyBeans.SimpleBean"/>
<jsp:getProperty name = “test” property = “msg” />
<jsp:setProperty>:
Ví dụ: để gọi phương thức setMessage của SimpleBean
<jsp:useBean id="test" class="MyBeans.SimpleBean"/>
<jsp:setProperty name = “test” property = “msg” value =
“hello class” />
Trang 174 Các đối tượng mặc định
-Đối tượng out: xuất phát từ lớp PrintWriter
-Đối tượng request: xuất phát từ lớp HttpServletRequest
-Đối tượng response: tương tự đối tượng out, nhưng xuất
phát từ lớp HttpServletResponse dùng để đưa kết xuất về
client
-Đối tượng session: HttpSession, dùng để theo dõi kết nối và
lưu vết phiên làm việc giữa client & server
Trang 18HttpSession Object
-Do server sinh ra
-The servlet container dùng interface này để tạo ra một phiên làm việc (session) giữa HTTP Client & HTTP server.
-Các biến trong session lưu thông tin về người dùng và dùng chung cho tất cả các trang của ứng dụng
-Session sẽ hủy khi người dùng hủy kết nối hoặc session hết hạn
-Có thể định thời gian
-Các Methods cơ bản
Ví dụ:
void setAttribute(String name, Object value)
Binds an object to this session, using the name specified
Object getAttribute(String name)
Returns the object with the specified name
Object getValue(String name)
Tương tự getAttribute
void putValue(String name, Object value)
Tương tự setAttribute
Trang 195 HTML form, xử lý form
5.1 HTML form – Submit
5.2 HTML form – Request Object
5.3 HTML form - Multivalued form variables
5.4 HTML Form – Parameter List
5.5 HTML Form – Processing
Trang 20<Form action="formHandler.jsp" method="get">
Username: <Input type="Text" name="Username"> <br>
Password: <Input type=“Password" name="Password"> <br> <Input type="Submit" value="Submit">
</Form>
</body>
</html>
Trang 21-Truyền dữ liệu bằng phương thức GET:
với những cặp giá trị name=value.
?Username=admin&Password=123456
-Truyền dữ liệu bằng phương thức POST:
URL
Trang 225.2 HTML form – Request Object
Trang 235.3 HTML Form – Multivalue form variables
Ví dụ:
<html>
<head> <title>Form Handler</title></head>
<body> <p>Xử lý biến Form nhiều trị<p>
<Form action = “FormVarMultiValue.jsp” method=“get”>
<Input type="text" name="MultiValueVar"> <br>
<Input type="text" name="MultiValueVar"> <br>
<Input type="text" name="MultiValueVar"> <br>
<Input type="text" name="MultiValueVar"> <br>
<Input type="text" name="MultiValueVar"> <br>
<input type="submit" value="Submit">
</Form>
</body>
</html>
Trang 245.4 HTML Form – Parameter List
Trang 255.5 HTML Form – Processing
-HTML nhận dữ liệu từ người dùng & gọi JSP xử lý
-JSP nhận dữ liệu từ người dùng & gọi JSP khác xử lý
-JSP nhận dữ liệu từ người dùng & đảm trách luôn xử lý
<Form action=“ /JSP/loginHandler.jsp" method=“post">
Username: <Input type="Text" name="Username"> <br> Password: <Input type=“Password" name="Password"> <br>
<Input type="Submit" value="Submit">
</Form>
</body>
</html>
Trang 26CUSTOM TAGS
Trang 271 Khái niệm Custom Tags
Custom tag được mô tả chi tiết trong 1 file XML gọi là tag
library, trong file XML chúng ta khai báo các thẻ có trong bộ
custom tag và các class thực thi của từng thẻ Các class thực
thi được gọi là các tag handler, có 2 loại class handler:
- Simple tag handler
- Classic tag handler
Khi một trang JSP có chứa custom tag được chuyển đổi sang
servlet, các custom tag sẽ được chuyển đổi sang các phương
thức được khai báo trong tag handler Khi Web container thực thi trang JSP, các phương thức này sẽ được gọi kèm theo.
Trang 282 Ưu điểm Custom Tags
- Tách rời các phương thức logic khỏi lớp View: Custom
tag và Script cung cấp các chức năng tương đương Điểm khác biệt giữa 2 kỹ thuật này là chúng được viết ở nơi nào Trong khi script cho phép nhúng trực tiếp 1 đoạn code vào trong trang JSP, custom tag là những đoạn code chạy phía sau để tổ chức lại HTML
- Dễ sử dụng: Custom tag rất dễ sử dụng cho người lập
trình Java hay người không biết lập trình Java
- Dễ cài đặt: Custom tag sau khi xây dựng xong sẽ được
đóng gói vào file jar và có thể sử dụng cho nhiều trang web khác nhau
Trang 293 Tag Library Descriptor
• -Tag library descriptor là một file XML mô tả các
custom tags trong ứng dụng JSP Nó định nghĩa 1 custom tag và được lưu với phần mở rộng tld
• -Tag Handler, tag files đều là những khái niệm quan
trọng trong Custom tag
các đoạn code xử lý và các thẻ khai báo trên trang JSP
Trang 30Sử dụng Tag Library Descriptor:
Để sử dụng file TLD chúng ta dùng 1 trong 2 cách sau:
- Khai báo trực tiếp thông qua thành phần directive taglib của trang
JSP:
<%@ taglib uri="/WEB-INF/tlds/huflitTag.tld" prefix="bd" %>
- Hoặc khai báo trong web.xml:
Trang 31THANKS FOR
WATCHING