JSP - Kiến trúc
Máy chủ web cần một công cụ JSP, tức là một bộ chứa để xử lý các trang JSP. Vùng chứa JSP chịu trách nhiệm chặn các yêu cầu đối với các trang JSP. Hướng dẫn này sử dụng Apache có bộ chứa JSP tích hợp để hỗ trợ phát triển các trang JSP.
Bộ chứa JSP hoạt động với máy chủ Web để cung cấp môi trường thời gian chạy và các dịch vụ khác mà JSP cần. Nó biết cách hiểu các phần tử đặc biệt là một phần của JSP.
Sơ đồ sau đây cho thấy vị trí của JSP container và các tệp JSP trong một ứng dụng Web.
Xử lý JSP
Các bước sau giải thích cách máy chủ web tạo Trang web bằng JSP:
Như với một trang bình thường, trình duyệt của bạn sẽ gửi một yêu cầu HTTP đến máy chủ web.
Máy chủ web nhận ra rằng yêu cầu HTTP dành cho một trang JSP và chuyển tiếp nó tới một công cụ JSP. Điều này được thực hiện bằng cách sử dụng URL hoặc trang JSP kết thúc bằng.jsp thay vì .html.
Công cụ JSP tải trang JSP từ đĩa và chuyển nó thành nội dung servlet. Việc chuyển đổi này rất đơn giản, trong đó tất cả văn bản mẫu được chuyển đổi thành các câu lệnh println () và tất cả các phần tử JSP được chuyển đổi thành mã Java. Mã này thực hiện hành vi động tương ứng của trang.
Công cụ JSP biên dịch servlet thành một lớp thực thi và chuyển tiếp yêu cầu ban đầu đến một động cơ servlet.
Một phần của máy chủ web được gọi là công cụ servlet tải lớp Servlet và thực thi nó. Trong quá trình thực thi, servlet tạo ra một đầu ra ở định dạng HTML. Đầu ra được chuyển đến máy chủ web bởi công cụ servlet bên trong một phản hồi HTTP.
Máy chủ web chuyển tiếp phản hồi HTTP tới trình duyệt của bạn dưới dạng nội dung HTML tĩnh.
Cuối cùng, trình duyệt web xử lý trang HTML được tạo động bên trong phản hồi HTTP chính xác như thể nó là một trang tĩnh.
Tất cả các bước được đề cập ở trên có thể được nhìn thấy trong sơ đồ sau:
Thông thường, JSP engine sẽ kiểm tra xem liệu một servlet cho tệp JSP đã tồn tại hay chưa và liệu ngày sửa đổi trên JSP có cũ hơn servlet hay không. Nếu JSP cũ hơn servlet được tạo của nó, JSP container giả định rằng JSP không thay đổi và servlet được tạo vẫn khớp với nội dung của JSP. Điều này làm cho quá trình hiệu quả hơn so với các ngôn ngữ kịch bản khác (chẳng hạn như PHP) và do đó nhanh hơn.
Vì vậy, theo một cách nào đó, một trang JSP thực sự chỉ là một cách khác để viết một servlet mà không cần phải là một wiz lập trình Java. Ngoại trừ giai đoạn dịch, một trang JSP được xử lý giống hệt như một servlet thông thường.