Mô tả:
LẬP TRÌNH ỨNG DỤNG MẠNG
Sử dụng và triển khai các ứng dụng web
(Using and Deploying Web Applications)
GVHD : Th.s Nguyễn Quang Minh
Giới thiệu tổng quan
Ý
tưởng của các ứng dụng web
Mục
đích của ứng dụng Web
Cấu
trúc của một ứng dụng Web
Thiết
lập các ứng dụng web với Tomcat
Chia
sẻ dữ liệu giữa các ứng dụng Web
Ý tưởng của các ứng dụng web
Thư mục đơn hoặc tập tin (Single directory or file)
Servlets, JSP pages, HTML files, utility classes, beans,..... được đi kèm
với nhau trong một hệ thống phân cấp thư mục duy nhất hoặc một tập tin
Tiền tố URL phổ biến (Common URL prefix)
Khi Truy cập nội dung trong các ứng dụng web thì luôn luôn phải thông
qua một URL có một tiền tố phổ biến
Web.xml kiểm soát nhiều thứ
Nhiều khía cạnh của hành vi ứng dụng Web được kiểm soát thông qua
web.xml.
Mục đích của ứng dụng Web
Cách tổ chức (Organization)
Tập tin liên quan được nhóm lại với nhau trong một tập tin duy nhất hoặc thư mục hệ thống phân cấp.
(HTML files, JSP pages, servlets, beans, .....)
Tính linh động (Portability)
Tất cả các máy chủ đều hỗ trợ các ứng dụng web.
Có thể triển khai trên máy chủ mới bằng cách di chuyển một tập tin duy nhất.
Khả năng phân tách (Separation)
Mỗi ứng dụng web có những cái riêng của nó
•
ServletContext
•
Class loader
•
Sessions
•
URL prefix
•
Cấu trúc thư mục
Cấu trúc của một ứng dụng Web
JSP and regular Web content (HTML style sheets images etc ):
•
Servlets:
•
WEB-INF
Tag Library Descriptor files:
•
WEB-INF/lib.
web.xml:
•
Cùng một vị trí như servlets
JAR files:
•
Thư mục con của nó phải phù hợp với tên gói.
Utility classes:
•
Nội dung của web thông thường nằm trong thư mục chính hoặc thư mục con của nó.
WEB-INF hoặc thư mục con của nó
Files in WEB-INF notdirectly accessible to clients
•
Server can use RequestDispatcher to forward to pages in WEB-INF
Ví dụ:
Cài đặt Eclipse
Tải xuống
http://www.eclipse.org/downloads/
• Chọn "Eclipse IDE for Java EE Developers"
Cài đặt
Giải nén tập tin tải về
Tạo shortcut của eclipse.exe trên màn hình
Tích hợp Tomcat trong Eclipse
http://www.coreservlets.com/Apache-Tomcat-Tutorial/eclipse.html
Cấu hình Eclipse
Chắc chắn là Eclipse nhận diện được Tomcat
Click on Servers tab at bottom. R-click in window.
New, Server, Apache, Tomcat v6.0, Next, navigate to folder, Finish.
Ngăn chặn cảnh báo trình biên dịch không cần thiết
Window →Preferences →Java →Compiler →Errors/Warnings
• Change "Serializable class without ..." to "Ignore"
Tạo ứng dụng Web trong Eclipse
Tạo Project trống
File →New →Project →Web →Dynamic Web Project
Give it a name (e.g., test )
Accept all other defaults
Tạo shortcut
Nếu bạn đã tạo Dynamic Web Project gần đây trong workspace bạn có thể thao tác
như sau :
•
File →New →Dynamic Web Project
Thêm code vào projects
Vị trí
src – src
Unpackaged Java code
Packages strongly recommended
src/somePackage
Java code in somePackage package
WebContent
Web files (HTML, JavaScript, CSS, JSP, images, etc.)
WebContent/some-subdirectory
Web content in subdirectory
WebContent/WEB-INF
web.xml (will be discussed later)
Can also click on "Deployment Descriptor"
Chú ý:
Can cut/paste or drag/drop files into appropriate locations
Khởi động server trong eclipse
Khởi động Tomcat
Select "Servers" tab at bottom
R-click on Tomcat
Choose "Start"
Xác nhận server đã được khởi động
Open browser Open browser
Enter http://localhost/
-You should see blank directory listing
If you want pretty Tomcat welcome page, search for a folder called ROOT in your Eclipse
workspace.
Copy files from
C:\tomcat-dir\webapps\ROOT to that folder
Triển khai ứng dụng
Triển khai project
Select "Servers" tab at bottom
R-click on Tomcat
Choose "Add and Remove Projects"
Choose project
Press Add
Click "Finish"
Khởi động lại Server
R-click Tomcat at bottom
Restart
Kiểm tra các ứng dụng đã triển khai
Khởi động trình duyệt
Kiểm tra cơ sở URL
Eclipse also has built in browser – Eclipse also has built in browser, but I prefer to use Firefox or Internet Explorer
http://localhost/test/
Kiểm tra nội dung
http://localhost/test/Hello html – http://localhost/test/Hello.html (case sensitive!)
http://localhost/test/Hello.jsp
If you used subdirectories you used subd ecto es
• http://localhost/test/some-subdirectory/blah.html
Kiểm tra servlets
http://localhost/test/servlet/HelloServlet
http://localhost/test/servlet/coreservlets.HelloServlet2
• Note: custom URLs discussed in next section
Chia sẻ dữ liệu trong ứng dụng Web
Thất bại:
Sessions: Mỗi ứng dụng web đã thiết lập riêng của sessions
Standard ServletContext: Mỗi ứng dụng web có một tiêu chuẩn riêng biệt.
Static methods or fields: Mỗi ứng dụng web sử dụng một ClassLoader khác nhau
Thành công:
Explicit cookies: Cookie được chia sẻ bởi toàn bộ trang web (thậm chí toàn bộ tên miền cấp cao nhất
nếu đặt thích hợp)
ServletContext associated with a specific URL:
ServletContext myContext = getServletContext();
String url = "/someWebAppPrefix";
ServletContext otherContext =myContext.getContext(url);
Object someData = otherContext.getAttribute("someKey");
Truy cập dữ liệu của ứng dụng Web
Trường hợp 1:
SetSharedInfo run
ShowSharedInfo
from shareTest1
also run from shareTest1
Results:
Found: session data
Found: servlet context data from normal servlet context.
Found: servlet context data when explicitly requesting servlet context from
shareTest1
Found: all cookies
Truy cập dữ liệu của ứng dụng Web
Trường hợp 2:
SetSharedInfo
run from shareTest1 from shareTest1
ShowSharedInfo
run from shareTest2
Results
• Not found: session data
• Not found: servlet context data from context data from normal servlet context
• Found: servlet context data when explicitly requesting servlet context from
shareTest1
• Not found: cookies that had default path
• Found: cookies with /as path
- Xem thêm -