I. Khái niệm JSP:
- Là một công nghệ để phát triển các Webpage mà hỗ trợ nội dung động, giúp các lập trình viên chèn java code vào trong các HTML page bằng việc sử dụng các JSP tag đặc biệt, hầu hết bắt đầu với <% và kết thúc với %>.
- Một thành phần JavaServer Pages (JSP) là một loại Java Servlet, được thiết kế để thực hiện vai trò của một giao diện người dùng (User Interface) cho một ứng dụng Java Web. Lập trình viên Web viết JSPs như là các text file mà kết nối HTML code hoặc XHTML code, phần tử XHTML, và các JSP actions và câu lệnh JSP được nhúng.
- Sử dụng JSP, bạn có thể thu thập input từ người dùng thông qua các Webpage Form, trình bày các record từ một Database hoặc đăng ký quyền ưu tiên của người dùng, truy cập các thành phần JavaBeans, truyền điều khiển giữa các page và chia sẻ thông tin giữa các request, page,…
II. Tại sao sử dụng JSP?
- JavaServer Pages (JSP) thường hoạt động với cùng mục đích như các chương trình độc lập bởi sử dụng Common Gateway Interface (CGI). Nhưng JSP thường có một số lợi thế trong khi so sánh với CGI:
+ Hiệu năng tốt hơn đáng kể bởi vì JSP cho phép nhúng các phần tử động trong chính các HTML page thay vì phải có một CGI file riêng biệt.
+ JSP luôn luôn được biên dịch trước khi nó được xử lý bởi Server, không giống như CGI/Perl mà yêu cầu Server tải một trình thông dịch (Interpreter) và Target Script mỗi khi trang được yêu cầu.
+ JavaServer Pages (JSP) được xây dựng ở trên cùng của Java Servlet API, vì thế, giống Servlet, JSP cũng có quyền truy cập tới tất cả Enterprise Java APIs mạnh mẽ, bao gồm JDBC, EJB, JAXP,…
+ Các JSP page có thể được sử dụng để kết nối với Servlet mà xử lý Business logic, mô hình được hỗ trợ bởi Java Servlet.
- Cuối cùng, JSP là một phần toàn bộ của Java EE, một Platform đầy đủ cho các ứng dụng lớp Enterprise. Nghĩa là, JSP có thể hoạt động như là một phần trong các ứng dụng đơn giản nhất cũng như các ứng dụng phức tạp.
III. Lợi thế của JSP:
- So với Active Server Pages (ASP): Lợi thế của JSP có thể coi là gấp đôi. Đầu tiên, các phần động được viết bằng Java, không phải bằng Visual Basic hoặc ngôn ngữ MS khác, vì thế nó mạnh mẽ hơn và dễ dàng để sử dụng hơn. Thứ hai, nó thích hợp cho các Hệ điều hành khác, không chỉ là Microsoft Web Server.
- So với Pure Servlets: Nó tiện lợi hơn khi viết (và sửa đổi) HTML, vì có nhiều lệnh println hơn.
- So với Server-Side Includes (SSI): SSI chỉ dành cho các thể đơn giản, không dành cho các chương trình “thực” mà sử dụng Form Data, tạo kết nối Database.
- So với JavaScript: JavaScript có thể tạo HTML động trên Client nhưng lại tương tác khó khăn với Web Server để thực hiện các tác vụ phức tạp như truy cập Database và xử lý hình ảnh,…
- So với Static HTML: Tất nhiên, HTML thông thường không thể chứa thông tin động.
IV. Vòng đời:
Sơ đồ dưới đây cho thấy các giai đoạn khác nhau của vòng đời jsp. Nói rộng ra, các giai đoạn này có thể được phân loại thành ba:
1. Initializing:
- Khi một trình chứa web nhận được một jsp request (có thể là lần đầu tiên hoặc sau này), nó sẽ kiểm tra servlet của jsp instance. Nếu không có servlet instance có sẵn hoặc nếu nó là cũ hơn các jsp, sau đó, những trang web chứa tạo ra servlet instance sử dụng các giai đoạn sau: Translation, Compilation, Loading, Instantiation, Initialization.
- Translation: Chuyển trình chứa web (chuyển đổi) mã jsp thành một mã servlet. Điều này có nghĩa rằng jsp thực sự là một servlet. Sau giai đoạn này, không có jsp, tất cả mọi thứ là một servlet. Nhiệm vụ này sẽ tạo ra một trang jsp hoàn chỉnh, bằng cách xem xét tất cả các thành phần bao gồm. Trên đây, nội dung tĩnh và nội dung động được xử lý khác nhau. Các kết quả là một lớp java thay vì một trang html (mà chúng tôi đã viết). Đây là cách cấu trúc của một jsp biên soạn thành một lớp java sẽ được.
- Complication: Servlet tạo được biên dịch để xác nhận các cú pháp. Vì nó là một lớp java, biên dịch được thực hiện bằng lệnh java. Điều này sẽ tạo ra các byte code để được chạy trên JVM.
- Loading: Các byte code được tải bởi bộ tải lớp được sử dụng bằng trình chứa web. Đây là một quy trình chuẩn của việc sử dụng bất kỳ lớp java.
- Instantiation: Trong bước này, instance của lớp servlet được tạo ra để nó có thể phục vụ theo yêu cầu.
- Initialization: Khởi tạo được thực hiện bằng cách gọi phương thức jspInit(). Đây là một hoạt động thời gian khi bắt đầu quá trình khởi tạo. Khởi tạo sẽ làm cho các đối tượng ServletContext và ServletConfig có sẵn. Người ta có thể truy cập vào nhiều thuộc tính liên quan đến trình chứa web và các servlet chính nó. Sau khi khởi tạo servlet đã sẵn sàng để xử lý yêu cầu.
2. Request Processing: Toàn bộ quá trình khởi tạo được thực hiện làm cho các servlet có sẵn để xử lý các yêu cầu gửi đến. jspService() là phương pháp mà thực sự xử lý yêu cầu. Nó in các response trong html (bất kỳ khác) định dạng, sử dụng đối tượng 'out'.
3. Destruction:
- Bất cứ khi nào các máy chủ được tắt hoặc khi máy chủ cần bộ nhớ, máy chủ loại bỏ sự thể hiện của các servlet. Phương thức jspDestroy() có thể được gọi bởi các máy chủ sau khi khởi tạo và trước hoặc sau khi xử lý yêu cầu. Một khi đã phá hủy jsp cần phải được khởi tạo một lần nữa.
- Chỉ cần để tổng hợp, trình chứa web xử lý các yêu cầu đến một jsp bằng cách chuyển đổi nó thành một servlet và sau đó bằng cách sử dụng servlet này để tạo ra các phản ứng. Ngoài ra khi các máy chủ tắt, trình chứa này cần phải rõ ràng các instance.
Không có nhận xét nào:
Đăng nhận xét