Bài tập Lập trình web với java
BÀI 9: Bảo mật website
Sử dụng các cấu hình bảo mật trong một website
9.1. Xây dựng ứng dụng Web với xác thực Form Authentication
Yêu cầu: Xây dựng trang login form sử dụng cơ chế xác thực form
Hướng dẫn sử dụng: người dùng nhập vào tài khoản và mật khẩu để đăng nhập
Tóm tắt yêu cầu:
Thiết kế giao diện
26 trang |
Chia sẻ: maiphuongtl | Lượt xem: 3203 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Bài tập Lập trình web với java, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRUNG TÂM TIN HỌC – ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
227 Nguyễn Văn Cừ - Quận 5- Tp.Hồ Chí Minh
Tel: 38351056 – Fax 8324466 – Email: ttth@t3h.hcmus.edu.vn
Mã tài liệu: DT_NCM_LT_DC_LTMNM1_BT
Phiên bản 1.0 – Tháng 03/2014
BÀI TẬP
CHƯƠNG TRÌNH LẬP TRÌNH VIÊN
CÔNG NGHỆ JAVA
---
MODULE 3: LẬP TRÌNH WEB VỚI JAVA
Bài tập
Module 3: Lập trình Web với Java 2/26
BÀI 1: Tổng quan J2EE
- Cài đặt và làm quen với mối trường phát triển ứng dụng web trên nền tảng công nghệ
JEE
- Phát triển ứng dụng web tĩnh đơn giãn sử dụng công nghệ html, javascript và css
1.1. Cài đặt môi trường Application Server
Yêu cầu: Cài đặt Apache Tomcat 7 trong môi trường console của hệ điều hành
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Phải cài đặt trước: Java SDK, các trình duyệt (có thể là Firefox, IE, Chrome,..)
Thuật giải: Không có
Hướng dẫn:
− Download Apache Tomcat phiên bản 7 tại địa chỉ
70.cgi hoặc tìm kiếm download trên google
− Giải nén và lưu trữ vào thư mục trên ổ đĩa
− Cài đặt các biến môi trường JAVA_HOME và CATALINA_HOME tương ứng cho thư mục
cài đặt java (thư mục jdk) và Apache Tomcat
− Mở console (bấm tổ hợp phím Window + R), chuyển đến thư mục bin của Tomcat và
thực hiện các lệnh start, stop cho môi trường Server
Có thể cấu hình thêm các lệnh start và stop vào biến môi trường $Path mà không
cần phải chuyển đến thư mục bin của Tomcat
− Mở trình duyệt và truy cập đến Apache Tomcat
1.2. Cài đặt môi trường Application Server
Yêu cầu: Cài đặt Apache Tomcat trên môi trường soạn thảo Eclipse IDE
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thuật giải: Không có
Hướng dẫn:
− Download Apache Tomcat phiên bản 7 tại địa chỉ
70.cgi hoặc tìm kiếm download trên google
Bài tập
Module 3: Lập trình Web với Java 3/26
− Giải nén và lưu trữ vào thư mục trên ổ đĩa
− Mở Eclipse IDE và thêm mới Apache Tomcat vào server trong Eclipse
− Thực hiện start và stop môi trường Apache Tomcat server trong Eclipse
− Thực hiện gọi Apache Tomcat từ trình duyệt. Trong trường hợp lỗi không tìm thấy trang
(lỗi 404) thì copy thư mục ROOT trong $CATALINA_HOME/webapp vào trong thư mục
$Eclipse_Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
$CATALINA_HOME là thư mục Apache Tomcat
$Eclipse_Workspace là thư mục workspace của Eclipse IDE
Có thể tmp0 trong $Eclipse_Workspace được thay thế bởi tmp1
1.3. Phát triển ứng dụng web tĩnh
Yêu cầu: Xây dựng ứng dụng web tĩnh trong Apache Tomcat
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý
Thuật giải:
Hướng dẫn:
Bài tập
Module 3: Lập trình Web với Java 4/26
− Tạo mới thư mục web tĩnh có tên staticwebBTMS trong thư mục webapp của
$CATALINA_HOME
− Tạo ra các thành phần của trang web tĩnh (copy các trang html, css, javascript, images
được cung cấp trong phần bài tập vào thư mục webcontent trong cấu trúc static
project)
− Thực hiện start, stop Apache Tomcat trong môi trường console và sử dụng browser
triệu gọi trang chủ của web (home.html)
1.4. Phát triển ứng dụng dynamic web project
Yêu cầu: Xây dựng dynamic web project trong Eclipse IDE
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý
Thuật giải:
Hướng dẫn:
− Tạo mới dynamic web project trong Eclipse IDE có tên dynamicwebBTMS
− Tạo ra các trang html (copy các trang html, css, javascript, images được cung cấp trong
phần bài tập vào thư mục webcontent trong cấu trúc static project)
− Triển khai lên server và sử dụng browser triệu gọi trang chủ của web (home.html)
Bài tập
Module 3: Lập trình Web với Java 5/26
BÀI 2: Servlet
- Xây dựng một Servlet đơn giản và cấu trúc thư mục của ứng dụng Servlet
- Xây dựng cấu trúc triển khai web.xml trong ứng dụng web
2.1. Xây dựng cấu trúc ứng dụng Servlet
Yêu cầu: Xây dựng một trang Servlet xuất ra một câu chào “Hello World”
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý
Thuật giải:
Hướng dẫn:
- Tạo thư mục web trong thư mục $CATALINA_HOME/webapp có tên structureServlet
theo cấu trúc ứng dụng Servlet
- Tạo ra trang index.html
- Tạo ra servlet có tên HelloWorldSrv.java và biên dịch thành file bytecode
- Tạo ra file cấu hình web.xml trong thư mục WEB-INF
Bài tập
Module 3: Lập trình Web với Java 6/26
- Start Tomcat và truy cập trong trình duyệt
2.2. Tạo các trang Servlet trong Eclipse IDE
Yêu cầu: Xây dựng trang Servlet và hiện thực phương thức Get để xuất ra một lời chào
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý
Thuật giải:
Hướng dẫn:
- Tạo dynamic web project trong Eclipse có tên là XmlAnnotationWeb
- Định nghĩa 2 trang Servlet có tên XmlServlet và AnntationServlet hiện thực phương thức
get xuất ra lời chào
- Thực hiện cấu hình các trang servlet theo 2 cách dùng xml (XmlServlet) trong file
web.xml và annotation trong chính servlet đó (AnnotationServlet)
- Tạo thêm trang index.html và tạo 2 link gọi đến 2 servlet ở trên
- Triển khai lên Application Server Tomcat và triệu gọi bên Client
Bài tập
Module 3: Lập trình Web với Java 7/26
BÀI 3: Java Server Page
- Sử dụng các thẻ trong trang JSP
- Sử dụng các biến ẩn trong trang JSP
3.1. Tạo ứng dụng xử lý và tương tác giữa các trang JSP
Yêu cầu: Tạo ra trang jsp nhập vào tên và xuất ra lời chào
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện:
Nhập
Xuất
Qui tắc xử lý
Thuật giải:
Hướng dẫn:
- Tạo ra dynamic web có tên jspwebapp
- Tạo ra 2 trang index.jsp và trang response.jsp
- Triển khai lên Tomcat server
Bài tập
Module 3: Lập trình Web với Java 8/26
3.2. Tương tác giữa trang JSP và Servlet
Yêu cầu: Xây dựng chức năng đăng nhập
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện:
Nhập
Xuất
Qui tắc xử lý
- Nhập thông tin tài khoản, mật khẩu và thực hiện xử lý kiểm tra thông tin đăng trên
Servlet tương ứng.
Bài tập
Module 3: Lập trình Web với Java 9/26
- Dữ liệu xác thực tài khoản và mật khẩu được đặc tả mặc định
- Trường hợp xác thực thành công thì tạo thuộc tính session hiển thị trên trang chủ,
ngược lại trở lại trang login hiển thị message không thành công và yêu cầu người
dùng nhập lại
Thuật giải:
Hướng dẫn:
- Tạo ra dynamic web project có tên btms
- Tạo ra trang login.jsp và trang home.jsp
- Tạo ra lớp hỗ trợ để định nghĩa các giá trị tài khoản, mật khẩu và có tên là ConfigUtils
- Tạo ra trang servlet để xử lý login có tên LoginSrv.java
- Triển khai lên Tomcat Server
Bài tập
Module 3: Lập trình Web với Java 10/26
BÀI 4: Servlet nâng cao
Sử dụng các cấu hình session, cookie, hidden field, event-listener và filter trong ứng dụng
web
4.1. Sử dụng Servlet Config và Servlet Context
Yêu cầu: Hiện thực lại bài 3.2 với thông tin tài khoản và mật khẩu trong config
Hướng dẫn sử dụng: người dùng truy cập, đăng nhập và thoát
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý
- Trường hợp xác thực thành công thì chuyển trang profile hiển thị các thông tin của
người dùng. các thông tin này được cấu hình trong context của Web.xml
Thuật giải:
Hướng dẫn: Sử dụng lại bài tập 3.2
- Cấu hình web.xml thêm các cấu hình config và context
- Định nghĩa lớp Entity thể hiện các thông tin của một tài khoản có tên Account
- Cập nhật lại lớp LoginSrv
Bài tập
Module 3: Lập trình Web với Java 11/26
- Tạo mới file profile.jsp và lấy dữ liệu session trong lớp Login Servlet gửi lên
- Triển khai lên Tomcat Server
4.2. Sử dụng Even-Listener để quản lý truy cập ứng dụng web
Yêu cầu: Đếm số lượng Session trong một ứng dụng khi có một session mới được tạo ra
hoặc một session bi hủy trong ứng dụng btms
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý
- Khi client gọi truy cập Web lần đầu tiên thì Server tiến hành ghi log thông tin session
được tạo ra
- Người dùng thoát (log out) trong trang home.jsp, profile.jsp để hủy một session
Thuật giải:
Hướng dẫn:
- Tạo các lớp listener có tên SessionCounter
- Cấu hình các lớp listener và time-out trong file cấu hình triển khai trong web.xml
- Tạo ra Logout Servlet (LogoutSrv) để hủy session
- Cấu hình lại các trang jsp (home.jsp, profile.jsp) để thực đăng xuất
4.3. Sử dụng Filter để lọc các yêu cầu gọi từ người client-side
Yêu cầu: Thực hiện chức năng Login Filter yêu cầu người dùng đăng nhập trước khi thực
hiện các thao tác khác trong ứng dụng btms
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý
Bài tập
Module 3: Lập trình Web với Java 12/26
- Kiểm tra người dùng đã đăng nhập chưa, nếu chưa đăng nhập thì chuyển trang
đăng nhập. Ngược lại, chuyển tới trang yêu cầu
Thuật giải:
Hướng dẫn:
- Tạo lớp Filter với LoginFilter
- Cấu hình filter trong web.xml với tất cả các request
- Triển khai
4.4. Sử dụng Filter cho request và response ecoding charater
Yêu cầu: Thêm chức năng cập nhật Profile cho ứng dụng btms
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý
- Đối với trang jsp chứa form nhập tiếng việt thì trong Servlet phải đặc tả encoding
cho request và response để nhận tiếng việt
Thuật giải:
Hướng dẫn:
Bài tập
Module 3: Lập trình Web với Java 13/26
- Tạo lớp Filter với EncodingChareter thiết lập request và response với encoding charater
UTF-8
- Cấu hình filter trong web.xml với tất cả các request
- Tạo trang servlet để cập nhật thông tin profile của tài khoản đó có tên ProfileSrv (cấu
hình thuộc tinh action của form trong trang profile.jsp chỉ đến Profile Servlet) và sử
dụng session để lưu lại thông tin cập nhật
- Triển khai
Bài tập
Module 3: Lập trình Web với Java 14/26
BÀI 5: JSP nâng cao
- Sử dụng khái niệm Custom Tag để định nghĩa ra những thẻ mới cho việc tối ưu hiển thị
dữ liệu
- Phân chia layout và sử dụng các thành phần chung (trang JSP tái sử dụng)
- Sử dụng Java Bean kết hợp với form
5.1. Tái sử dụng các trang JSP trong một ứng dụng web
Yêu cầu: Cập nhật lại các trang JSP trong btms project để sử dụng các thành phần JSP
tái sử dụng
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý
Thuật giải:
Hướng dẫn:
- Tạo ra các trang JSP tái sử dụng chung cho nhiều trang JSP gồm header.jsp, footer.jsp,
message.jsp, right.jsp, navigator.jsp,…
- Cập nhật lại các trang login.jsp, home.jsp và profile.jsp
5.2. Tạo Tag Handler hiện thực các giao diện
Yêu cầu: Tạo các lớp Tag handler hiện thực các thẻ xuất lời chào, cấu trúc if và cấu trúc
vòng lặp
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Bài tập
Module 3: Lập trình Web với Java 15/26
Nhập
Xuất
Qui tắc xử lý
Thuật giải:
Hướng dẫn:
- Tạo ra dynamic web project với với SimpleTag
- Tạo ra file TLD (tag lib descriptor) có tên CustomTag.tld với uri
- Tạo ra các lớp Tag Handler tương ứng với các tag định nghĩa trong CustomTag.tld
- Tạo ra trang index.html và các trang Jsp tương ứng để sử dụng các thẻ định nghĩa đó
- Triển khai
5.3. Tạo Tag Handler thừa kế các Tag Handler có sẵn
Yêu cầu: Tạo ra các trang Tag Handler xử thừa kế lớp TagSupport trong JSP
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Bài tập
Module 3: Lập trình Web với Java 16/26
Nhập
Xuất
Qui tắc xử lý
Thuật giải:
Hướng dẫn:
- Tạo ra dynamic web project với với AdvanceTag
- Tạo ra file TLD (tag lib descriptor) với SampleLib.tld
- Tạo ra các lớp Tag Handler tương ứng
- Tạo ra trang index.html và các trang Jsp tương ứng để sử dụng các thẻ định nghĩa đó
- Triển khai
5.4. Cách sử dụng JavaBean trong trang JSP
Yêu cầu: Tạo ra form đơn giản cho phép người dùng nhập và xuất thông tin của địa chỉ
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Bài tập
Module 3: Lập trình Web với Java 17/26
Nhập
Xuất
Qui tắc xử lý
Thuật giải:
Hướng dẫn:
− Tạo ra dynamic web project với tên AddressApp
− Tạo ra lớp Java Bean có tên Address
− Tạo ra các trang jsp gồm cho phép nhập và hiển thị dữ liệu về Address bean
− Triển khai
Bài tập
Module 3: Lập trình Web với Java 18/26
BÀI 6: EL & JSTL
Cách loại bỏ các source code java trong trang JSP của các ứng dụng JEE bằng cách sử
dụng ngỗn ngữ biểu thức (Expression Language) và tập thẻ thư viện chuẩn JSTL
6.1. Sử dụng JSTL Tag Core cập nhật lại các URL
Yêu cầu: Cập nhật lại các địa chỉ URL trong các trang JSP trong btms project bằng cách
sử dụng thẻ url trong JSTL core
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý:
Thuật giải:
Hướng dẫn:
- Import thư viện JSTL vào trong thư mục lib của btms project (thư viện jstl có trong thư
mục lib của apache tomcat nên đã tự động import cùng với server)
- Tạo mới trang jsp định nghĩa các thư viện JSTL trong thư mục common có tên là
taglibs.jsp
- Import trang taglibs.jsp vào các trang còn lại và cập nhập lại các url định nghĩa trong
các trang jsp đó
- Triển khai
6.2. Sử dụng JSTL Formatting Tag để nạp resource bundle vào trang JSP
Yêu cầu: Tạo file resource bundle và cập nhật lại các label trong các jsp dùng key trong
file resource bundle đó
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Bài tập
Module 3: Lập trình Web với Java 19/26
Xuất
Qui tắc xử lý
Thuật giải:
Hướng dẫn:
− Tạo file resource bundle (có thể định nghĩa file tiếng viết và file tiếng anh)
− Thêm định nghĩa JSTL formatting trong file taglibs.jsp trong common
− Đặc tả các resource bundle và cập nhật lại các lable trong các trang jsp
− Triển khai
Bài tập
Module 3: Lập trình Web với Java 20/26
BÀI 7: Mô hình MVC với JSP/Servlet
Triển khai ứng dụng kết hợp JSP/Servlet theo mô hình hoạt động của kiến trúc phần mềm
MVC
7.1. Xây dựng hệ thống quản lý bán vé xe
Yêu cầu: Mở rộng bài 3.2, xây dựng thêm các chức năng của hệ thống bán vé gồm:
- Quản lý danh sách các tuyến đường
- Quản lý danh sách xe (có trong bến)
- Quản lý danh sách lịch khởi hành theo từng ngày của từng tuyến xe
- Tạo lịch khởi hành (chuyến) theo từng ngày của từng tuyến xe
- Quản lý danh sách bán vé: còn vé và hết vé của các chuyến
- Đặt vé online hoặc điện thoại
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý
Thuật giải:
Hướng dẫn:
Bài tập
Module 3: Lập trình Web với Java 21/26
BÀI 8: Web service
Tạo ra các web service trong một ứng dụng Website
8.1. Tạo ra ứng dụng web service
Yêu cầu: Trong bài tập 3.2, hiện thực web service cho phép client gọi hàm đăng nhập và
lấy về danh sách tài khoản
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý
Thuật giải:
Hướng dẫn:
- Import thử viện jax-ws
- Hiện thực lớp Web Service gồm interface và lớp hiện thực
- Định nghĩa file cấu sun-jaxwx.xml và cấu hình trong file web.xml
8.2. Xây dựng thêm các Web service
Yêu cầu: Trong bài 7.1, xây dựng thêm các service cho phép người dùng tìm kiếm các
chuyến còn vé hoặc hết, đặt vé và thanh toán
Hướng dẫn sử dụng:
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý
Thuật giải:
Bài tập
Module 3: Lập trình Web với Java 22/26
Hướng dẫn:
Bài tập
Module 3: Lập trình Web với Java 23/26
BÀI 9: Bảo mật website
Sử dụng các cấu hình bảo mật trong một website
9.1. Xây dựng ứng dụng Web với xác thực Form Authentication
Yêu cầu: Xây dựng trang login form sử dụng cơ chế xác thực form
Hướng dẫn sử dụng: người dùng nhập vào tài khoản và mật khẩu để đăng nhập
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý
Thuật giải:
Hướng dẫn:
- Tạo các trang login và trang lỗi
- Cấu hình tài khoản trong tomcat-user.xml
- Cấu hình thông tin xác thực trong file cấu hình triển khai web.xml
9.2. Cấu hình HTTPS cho ứng dụng web
Yêu cầu: Cấu hình https cho Tomcat server
Hướng dẫn sử dụng:
Bài tập
Module 3: Lập trình Web với Java 24/26
Tóm tắt yêu cầu:
Thiết kế giao diện
Nhập
Xuất
Qui tắc xử lý
Thuật giải:
Hướng dẫn:
- Sử dụng java key tools để sinh ra key (private key và request key)
- Thực hiện ký chứng thực để sinh ra certificate
- Cấu hình private key và certificate vào trong cấu hình của Tomcat server
Bài tập
Module 3: Lập trình Web với Java 25/26
BÀI 10: Tổng kết
Tổng hợp lại kiến thức về phát triển website dùng JSP/Servlet và áp dụng trong mô hình
phát triển theo MVC
Tổng hợp các bài tập trong các chương và xây dựng thành website hoàn chỉnh
Bài tập
Module 3: Lập trình Web với Java 26/26
Mục lục
Các file đính kèm theo tài liệu này:
- 20140707bt_module_3_4796.pdf