Trước đây, các ứng dụng web sử dụng công nghệ JSP thường thực hiện theo một trong hai kiến trúc: mô hình 1 (model 1) và mô hình 2 (model 2).
Mô hình 1:
Trong kiến trúc này, các trang JSP sẽ có nhiệm vụ xử lý mọi yêu cầu từ phía người dùng (client). Người dùng ởđây có thể là các trình duyệt hoặc các lời gọi từ xa thông qua một giao thức như là XML-RPC hay SOAP. Sau đó, các trang JSP này
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
sẽ thực hiện các yêu cầu đó như là kiểm tra dữ liệu nhập, thực hiện truy xuất dữ liệu, định dạng dữ liệu trả về, … bằng cách tạo ra các JavaBean để thực hiện. Cuối cùng, các trang JSP này cũng sẽ chịu trách nhiệm hiển thị kết quả cho phía người dùng. Mô hình này có thểđược biểu diễn thông qua hình sau:
Hình 3-1 Kiến trúc mô hình 1
Giải thích:
1) Yêu cầu từ phía người dùng cuối từ trình duyệt tới trang JSP để xử lý.
2) Trang JSP sẽ thực hiện kiểm tra dữ liệu nhâp, kiểm tra ràng buộc bằng cách tạo ra các JavaBean. Trang JSP đồng thời cũng thực hiện chuyển hướng (forward) tới cho trang JSP đích.
3) Các lớp Java này sẽ thực hiện việc truy xuất CSDL và nhận kết quả trả về cho trang JSP.
4) Đối tượng response được trả về cho trình duyệt để hiển thị.
Khuyết điểm của mô hình này đó là các trang JSP phải làm mọi công việc từ nhận yêu cầu đến xử lý yêu cầu rồi hiển thị kết quả. Xây dựng bằng cách này sẽ không thể thực hiện được mục tiêu dễ bảo trì, tái sử dụng và mở rộng – Một yêu cầu tất yếu đối với việc xây dựng phần mềm hướng đối tượng. Do đó mô hình này không còn được sử dụng trong các ứng dụng thực tế.
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
Mô hình 2:
Trong mô hình 2, vấn đềđã được giải quyết. Trong mô hình này, các yêu cầu từ phía người dùng sẽ không còn được gởi trực tiếp xuống cho các trang JSP để xử lý mà thay vào đó, các lớp java sẽ thực hiện nhận yêu cầu từ phía người dùng, tạo ra các JavaBean khác để thực hiện các yêu cầu (như kiểm tra dữ liệu, ràng buộc, truy xuất CSDL, …). Cuối cùng, các lớp java này sẽ chuyển kết quả về cho các trang JSP. Công nghệ này được gọi là công nghệ Servlet.
Với công nghệ này, việc phân chia trách nhiệm được thực hiện một cách rõ ràng. Các trang JSP sẽ hiển thị kết quả cho người dùng, các lớp java – còn được gọi là các controller servlet – sẽ nhận yêu cầu từ người dùng và tạo ra các JavaBean xử lý các yêu cầu đó. Các lớp JavaBean này tới lượt nó sẽ xử lý các yêu cầu, thực hiện các thao tác đọc/ghi dữ liệu và trả kết quả cho controller servlet. Controller servlet sẽ nhận kết quả và chuyển về cho trang JSP để hiển thị. Hình 3-2 mô tả kiến trúc này:
Hình 3-2 Kiến trúc mô hình 2
Giải thích:
1) Yêu cầu từ phía người dùng cuối từ browser tới. Controller servlet sẽ nhận yêu cầu
2) Controller servlet sẽ thực hiện kiểm tra dữ liệu nhâp, kiểm tra ràng buộc và chuyển đổi định dạng bằng cách tạo ra các JavaBean. Các lớp này sẽ thực hiện việc đọc/ghi dữ liệu.
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
3) Controller servlet xác định trang JSP nào là trang JSP đích chứa thông tin kết quả.
4) Các JavaBean sau khi nhận kết quả sẽ chuyển sang cho trang JSP để hiển thị. 5) Đối tượng response được trả về cho trình duyệt để hiển thị.
Vì mô hình này phân chia trách nhiệm cho các đối tượng một cách rõ ràng nên nó đã khắc phục được các khuyết điểm của mô hình 1. Các mô hình mới sau này cũng được phát triển theo hướng này.