Máy chủ Web cần một công cụ JSP, tức là một chương trình để xử lý các trang JSP. JSP container có trách nhiệm chặn các yêu cầu cho các trang JSP. Một container JSP hoạt động trên máy chủ Web để cung cấp môi trường chạy và các dịch vụ khác mà JSP cần.
Nội dung chính
Kiến trúc jsp
Sơ đồ sau cho thấy vị trí của JSP container và các tệp JSP trong một ứng dụng Web:
Quá trình xử lý một trang JSP
Các bước sau giải thích cách máy chủ web tạo trang Web bằng cách sử dụng và xử lý một trang JSP:
- Giống như trang bình thường, trình duyệt của bạn gửi một HTTP request đến máy chủ web.
- Máy chủ web nhận ra rằng yêu cầu HTTP là dành cho một trang JSP và chuyển 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ó sang một nội dung servlet. Chuyển đổi này rất đơn giản, trong đó tất cả các văn bản đượ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 sang mã Java. Mã này thực hiện hành vi 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 công cụ servlet.
- Một phần của máy chủ web được gọi là công cụ servlet nạp 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. Kết quả đầu ra được chuyển tiếp đến máy chủ web bằng servlet engine bên trong HTTP response.
- Máy chủ web chuyển tiếp phản hồi HTTP tới trình duyệt của bạn về nội dung HTML.
- Cuối cùng, trình duyệt web xử lý và hiển thị trang HTML tới người dùng.
Tất cả các bước nêu trên có thể được nhìn thấy trong sơ đồ sau đây:
Thông thường, JSP container kiểm tra xem liệu một servlet cho tệp JSP đã tồn tại và liệu ngày sửa đổi trên JSP cũ hơn servlet hay không. Nếu JSP lớn hơn servlet được tạo ra của nó, JSP container giả định rằng JSP không thay đổi và servlet được tạo ra vẫn phù hợp với nội dung của JSP. Điều này làm cho quá trình này hiệu quả hơn với các ngôn ngữ kịch bản khác (như PHP) và do đó nhanh hơn.
Vì vậy, nói cách khác, một trang JSP thực sự là một cách khác để viết một servlet mà không cần phải là một chương trình lập trình Java. Ngoại trừ giai đoạn dịch từ JSP sang Servlet, một trang JSP được xử lý chính xác như một servlet thông thường.