JSP: Các Module Web
Trong kiến trúc Java EE, các thành phần web và các tệp nội dung web tĩnh như hình ảnh được gọi là tài nguyên web . Một mô-đun web là đơn vị nhỏ nhất có khả năng triển khai và có thể sử dụng được của các tài nguyên web. Một mô đun web Java EE tương ứng với một ứng dụng web được định nghĩa trong đặc tả Java Servlet.
Ngoài các thành phần web và tài nguyên web, một mô-đun web có thể chứa các tệp khác:
-
Các lớp tiện ích phía máy chủ (hạt cơ sở dữ liệu, giỏ hàng, v.v ...). Thông thường các lớp này phù hợp với kiến trúc thành phần JavaBeans.
-
Lớp phía máy khách (applet và các lớp tiện ích).
Một module web có một cấu trúc cụ thể. Thư mục cấp cao nhất của một mô-đun web là tài liệu gốc của ứng dụng. Tài liệu gốc là nơi lưu trữ các trang JSP, các lớp và lưu trữ phía máy khách và các tài nguyên web tĩnh, chẳng hạn như hình ảnh.
Tài liệu gốc chứa một thư mục con có tên WEB-INF , chứa các tệp và thư mục sau:
-
Web.xml : Bộ mô tả triển khai ứng dụng web
-
Gắn thẻ mô tả thư viện thẻ (xem mô tả Thư viện Thẻ )
-
Các lớp : Một thư mục chứa các lớp phía máy chủ : servlet, các lớp tiện ích, và các thành phần JavaBeans
-
Tags : Một thư mục có chứa các tập tin thẻ, được triển khai của các thư viện thẻ (xem Tag File Location )
-
Lib : Một thư mục chứa các lưu trữ JAR của thư viện được gọi bởi các lớp phía máy chủ
Nếu module web của bạn không chứa bất kỳ thành phần servlet, filter, hoặc listener thì nó không cần descriptor triển khai ứng dụng web. Nói cách khác, nếu mô-đun web của bạn chỉ chứa các trang JSP và các tệp tĩnh thì bạn không bắt buộc phải đưa tệp web.xml . Các hello1 Ví dụ, đầu tiên thảo luận trong bao bì Modules Web , chỉ chứa các trang JSP và hình ảnh và do đó không bao gồm một bộ mô tả triển khai.
Bạn cũng có thể tạo các thư mục con riêng biệt cho ứng dụng (có nghĩa là các thư mục gói) trong thư mục gốc của tài liệu hoặc thư mục WEB-INF / classes / .
Một mô-đun web có thể được triển khai dưới dạng cấu trúc tệp không được đóng gói hoặc có thể được đóng gói trong tệp JAR được biết đến dưới dạng tệp lưu trữ web (WAR). Bởi vì nội dung và việc sử dụng các tệp tin WAR khác với tệp JAR, tên tệp tin WAR sử dụng đuôi .war . Mô đun web được mô tả là xách tay; Bạn có thể triển khai nó vào bất kỳ container web nào phù hợp với Đặc tả Servlet Java.
Để triển khai WAR trên Máy chủ ứng dụng, tệp cũng phải chứa một bộ mô tả triển khai thời gian chạy. Bộ mô tả triển khai thời gian chạy là một tệp XML có chứa thông tin như gốc ngữ cảnh của ứng dụng web và ánh xạ các tên di động của tài nguyên của ứng dụng với các tài nguyên của Máy chủ ứng dụng. Thời gian chạy ứng dụng web của Máy chủ ứng dụng DD được đặt tên là sun-web.xml và nằm trong thư mục WEB-INF cùng với ứng dụng web DD. Cấu trúc của một mô đun web có thể được triển khai trên Máy chủ ứng dụng được thể hiện trong hình 3-5 .
Cấu trúc các mô-đun Web
Bao bì Web Modules
Một mô-đun web phải được đóng gói vào một WAR trong các kịch bản triển khai nhất định và bất cứ khi nào bạn muốn phân phối mô-đun web. Bạn đóng gói một mô-đun web vào một WAR bằng cách thực hiện lệnh jar trong một thư mục được đặt trong định dạng của một mô-đun web, bằng cách sử dụng tiện ích Ant hoặc bằng cách sử dụng công cụ IDE của sự lựa chọn của bạn. Hướng dẫn này chỉ cho bạn cách sử dụng NetBeans IDE hoặc Ant để xây dựng, đóng gói và triển khai các ứng dụng mẫu.
Để xây dựng ứng dụng hello1 với NetBeans IDE, hãy thực hiện theo các hướng dẫn sau:
-
Chọn File → Open Project.
-
Trong hộp thoại Mở dự án, hãy điều hướng đến:
Tut-install / javaeetutorial5 / ví dụ / web /
-
Chọn thư mục hello1 .
-
Chọn hộp kiểm Mở thành dự án chính.
-
Nhấp vào Mở dự án.
-
Trong tab Các dự án, bấm chuột phải vào dự án hello1 và chọn Build.
Để xây dựng ứng dụng hello1 bằng tiện ích Ant, hãy làm theo các bước sau:
-
Trong cửa sổ terminal, vào Tut-install / javaeetutorial5 / example / web / hello1 / .
-
Gõ ant . Lệnh này sẽ sinh ra bất kỳ biên soạn cần thiết, sao chép các tập tin vàoTut-install / javaeetutorial5 / examples / web / hello1 / build / , tạo tệp tin WAR và sao chép nó vào thư mụcTut-install / javaeetutorial5 / example / web / hello1 / dist / thư mục.
Triển khai một tệp tin WAR
Bạn có thể triển khai một tệp tin WAR tới máy chủ ứng dụng theo một số cách:
-
Sao chép chiến tranh vào Thư mục domain-dir / autodeploy / .
-
Sử dụng Bảng Điều khiển dành cho Quản trị viên.
-
Bằng cách chạy asadmin hoặc ant để triển khai WAR.
-
Sử dụng NetBeans IDE.
Tất cả các phương pháp này được mô tả ngắn gọn trong chương này; Tuy nhiên, trong suốt hướng dẫn này, bạn sẽ sử dụng kiến trúc NetBeans IDE để đóng gói và triển khai.
Thiết lập Bối cảnh
Một context root xác định một ứng dụng web trong một máy chủ Java EE. Bạn chỉ định ngữ cảnh gốc khi bạn triển khai mô-đun web. Một ngữ cảnh gốc phải bắt đầu với một dấu gạch chéo ( / ) và kết thúc bằng một chuỗi.
Trong một mô đun web đã được đóng gói để triển khai trên Máy chủ ứng dụng, gốc ngữ cảnh được lưu trữ trong tệp tin sun-web.xml .
Để chỉnh sửa gốc ngữ cảnh, hãy thực hiện theo các bước sau:
-
Mở rộng cây dự án của bạn trong khung Dự án của NetBeans IDE.
-
Mở rộng các trang Web và các nút WEB-INF của dự án của bạn.
-
Nhấp đúp vào sun-web.xml .
-
Trong ngăn trình soạn thảo, hãy nhấp vào Chỉnh sửa dưới dạng XML.
-
Chỉnh sửa các gốc ngữ cảnh, được kèm theo bởi phần tử context-root .
Triển khai một Module Web Đóng gói
Nếu bạn đã triển khai ứng dụng hello1 , trước khi tiếp tục với phần này, không thể giải phóng ứng dụng bằng cách làm theo một trong các thủ tục được mô tả trong Undeploying Web Modules .
Triển khai bằng Bảng Điều khiển dành cho Quản trị viên
-
Mở rộng nút Ứng dụng.
-
Chọn nút Ứng dụng Web.
-
Nhấp vào nút Triển khai.
-
Chọn nút radio có nhãn "Tệp gói sẽ được tải lên Máy chủ ứng dụng".
-
Nhập đường dẫn đầy đủ vào tệp tin WAR (hoặc nhấp vào Duyệt để tìm nó), và sau đó nhấp vào nút OK.
-
Nhấp vào Tiếp theo.
-
Nhập tên ứng dụng.
-
Gõ gốc ngữ cảnh.
-
Chọn hộp Bật.
-
Nhấp vào nút Kết thúc.
Triển khai với asadmin
Để triển khai một WAR với asadmin , mở cửa sổ terminal hoặc dấu nhắc lệnh và thực hiện
Asadmin triển khai full-path-to-war file
Triển khai với Ant
Để triển khai WAR với công cụ Ant, mở cửa sổ terminal hoặc dấu nhắc lệnh trong thư mục nơi bạn xây dựng và đóng gói WAR, và thực hiện
Triển khai kiến
Triển khai với NetBeans IDE
Để triển khai một WAR với NetBeans IDE, hãy thực hiện theo các bước sau:
-
Chọn File → Open Project.
-
Trong hộp thoại Mở dự án, điều hướng đến dự án của bạn và mở nó.
-
Trong tab Dự án, nhấp chuột phải vào dự án và chọn Undeploy and Deploy.
Kiểm tra các module Web triển khai
Bây giờ module web được triển khai, bạn có thể xem nó bằng cách mở ứng dụng trong một trình duyệt web. Theo mặc định, ứng dụng được triển khai để lưu trữ localhost trên cổng 8080. Gốc bối cảnh của ứng dụng web là hello1 .
Để kiểm tra ứng dụng, hãy làm theo các bước sau:
-
Mở một trình duyệt web.
-
Nhập URL sau vào hộp địa chỉ web:
Http: // localhost: 8080 / hello1
-
Nhập tên của bạn và nhấp Gửi.
Ứng dụng phải hiển thị tên mà bạn đã gửi như trong Hình 3-3 và Hình 3-4 .
Mô-đun triển khai các mô-đun Web
Máy chủ ứng dụng cung cấp hai cách để xem các mô-đun web được triển khai: Bảng điều khiển dành cho Quản trị viên và lệnh asadmin .
Để sử dụng Bảng Điều khiển dành cho Quản trị viên:
-
Mở URL http: // localhost: 4848 / asadmin trong trình duyệt.
-
Mở rộng các nút Ứng dụng → Ứng dụng Web.
Sử dụng lệnh asadmin như sau:
Danh sách các thành phần asadmin
Đang cập nhật các mô-đun Web
Một chu kỳ phát triển lặp đi lặp lại điển hình bao gồm việc triển khai mô-đun web và sau đó thực hiện thay đổi đối với các thành phần ứng dụng. Để cập nhật một mô-đun web được triển khai, bạn phải làm như sau:
-
Biên dịch lại bất kỳ lớp sửa đổi nào.
-
Nếu bạn đã triển khai một module web đóng gói, hãy cập nhật bất kỳ thành phần đã sửa đổi nào trong WAR.
-
Tái lập lại module.
-
Tải lại URL trong máy khách.
Cập nhật một Module Web Đóng gói
Phần này mô tả cách cập nhật mô-đun web hello1 mà bạn đã đóng gói.
Trước tiên, thay đổi lời chào trong tệp Tut-install /javaeetutorial5/examples/web/hello1/web/index.jsp to
<H2> Xin chào, tôi tên là Duke. Bạn là gì? </ H2>
Để cập nhật dự án trong NetBeans IDE:
-
Nhấp chuột phải vào dự án và chọn Build.
-
Nhấp chuột phải vào dự án và chọn Undeploy and Deploy.
Để cập nhật dự án sử dụng công cụ Ant build:
-
Gõ ant để sao chép trang JSP đã sửa đổi vào thư mục xây dựng .
-
Gõ ant triển khai để triển khai tệp tin WAR.
Để xem mô-đun đã sửa đổi, hãy tải lại URL trong trình duyệt.
Bạn sẽ thấy màn hình trong dưới đây trong trình duyệt.
New Greeting
Dynamic Reloading
Nếu tải lại động được bật, bạn không phải triển khai lại ứng dụng hoặc mô-đun khi bạn thay đổi mã hoặc trình mô tả triển khai. Tất cả bạn phải làm là sao chép các tệp JSP hoặc tệp lớp đã thay đổi vào thư mục triển khai cho ứng dụng hoặc mô-đun. Thư mục triển khai cho một mô đun web có tên context-root làDomain-dir / applications / j2ee-modules / context-root. Máy chủ kiểm tra các thay đổi định kỳ và redeploys các ứng dụng, tự động và năng động, với những thay đổi.
Khả năng này rất hữu ích trong môi trường phát triển vì nó cho phép thay đổi mã được kiểm tra nhanh chóng. Tuy nhiên, tải lại động không phải là khuyến khích cho môi trường sản xuất bởi vì nó có thể làm suy giảm hiệu suất. Ngoài ra, bất cứ khi nào tải lại được thực hiện, các phiên tại thời điểm đó trở nên không hợp lệ và khách hàng phải khởi động lại phiên.
Để kích hoạt tính năng tải lại động, sử dụng Bảng Điều khiển dành cho Quản trị viên:
-
Chọn nút Máy chủ ứng dụng.
-
Chọn tab Nâng cao.
-
Kiểm tra hộp Tải lại Bật để bật tải lại động.
-
Nhập một số giây trong trường Reload Reload Interval để thiết lập khoảng thời gian mà các ứng dụng và mô đun được kiểm tra cho các thay đổi mã và tự động tải lại.
-
Nhấp vào nút Lưu.
Ngoài ra, để tải tệp tin servlet mới hoặc tải lại các thay đổi mô tả triển khai, bạn phải làm như sau:
-
Tạo một tệp rỗng có tên .reload ở thư mục gốc của mô-đun:
Domain-dir / applications / j2ee-modules / context-root /.reload
-
Cập nhật nhanh chóng tem thời gian của tệp .resload mỗi lần bạn thực hiện các thay đổi này. Trên UNIX, thực hiện
Liên lạc .reload
Đối với các trang JSP, các thay đổi được nạp lại tự động với tần suất đặt trong trường Reload Poll Interval. Để vô hiệu hoá tải lại động của các trang JSP, hãy đặt giá trị Trường Nạp lại Khoảng Tóm Lỗi là -1.
Undeploying Web Modules
Bạn có thể bỏ qua các mô đun web theo bốn cách: bạn có thể sử dụng NetBeans IDE, Bảng điều khiển dành cho Quản trị viên, lệnh asadmin hoặc công cụ Ant.
Để sử dụng NetBeans IDE:
-
Đảm bảo máy chủ ứng dụng đang chạy.
-
Trong cửa sổ Thời gian chạy, mở rộng trường hợp Máy chủ ứng dụng và nút chứa ứng dụng hoặc mô-đun.
-
Nhấp chuột phải vào ứng dụng hoặc mô-đun và chọn Undeploy.
Để sử dụng Bảng Điều khiển dành cho Quản trị viên:
-
Mở URL http: // localhost: 4848 / asadmin trong trình duyệt.
-
Mở rộng nút Ứng dụng.
-
Chọn Ứng dụng Web.
-
Nhấp vào hộp kiểm bên cạnh mô-đun bạn muốn vô hiệu.
-
Nhấn vào nút Undeploy.
Sử dụng lệnh asadmin như sau:
Asadmin undeployable ngữ cảnh-gốc
Để sử dụng công cụ Ant, hãy thực hiện lệnh sau trong thư mục nơi bạn xây dựng và đóng gói WAR:
Ant undeploy