Thứ Ba, 4 tháng 10, 2016

JSP và Servlet

JSP(Java server page):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, …
*Ưu và nhược điểm của JSP
a. Ưu điểm.- Cho phép chúng ta thiết kế giao diện web dễ dàng hơn.- Jsp có thể cho phép chúng ta tạo nên những trang web động.- Có thể viết một nơi và chạy bất cứ nơi nào.
b. Nhược điểm- Nhìn chung thì việc thiết kế giao diện bằng JSP vẫn còn nhiều khó khăn.- Tiêu tốn dung lượng lưu trữ phía server gấp đôi.- Lần đầu tiên truy cập vào trang JSP sẽ mất nhiều thời gian chờ.
 Các thành phần của trang JSP.
a. Thẻ RootThẻ này sẽ chứa các thuộc tính, thông tin của trang  jsp.
b. Comment- Cũng như trang html, trong jsp cũng cho phép chúng ta có thể comment. Để comment chúng ta dùng kí hiệu này:    <!  your comment  -->
c. Declaration.- Chúng ta có thể khai báo biến hoặc phương thức của java ngay trong trang jsp như một trang ngôn ngữ kịch bản. Nhưng nếu như khai báo quá nhiều trong trang thì sẽ bị nhầm lẫn giữa code jsp và code java. Cú pháp khai báo là <%! your code %>
d. Expression- Một JSP Expression được sử dụng để chèn một giá trị vào trong trang jsv một cách trực tiếp.- Thẻ biểu thức JSP được sử dụng để đánh giá một biểu thức và định hướng các output đến một trình duyệt web phù hợp.Cú pháp khai báo là: <%= your code %>

e. Scriptlet Tag : - Scriptlet Tag cho phép bạn viết mã java trong trang JSP. Cú pháp của Scriptlet Tag như sau :   <% <i> mã java </ i>%>
f. Directive Elements:- Một JSP directive cung cấp thông tin đặc biệt cũng như các phương tiện của trang jsp.- Directive Elements gồm có 3 thẻ như hình dưới:


- JSP cung cấp  Standard Tag(Action Element)  để sử dụng trong các trang JSP của bạn. Các thẻ được sử dụng để loại bỏ hoặc loại bỏ mã scriptlet từ trang JSP của bạn bởi vì scriplet mã được về mặt kỹ thuật không được khuyến cáo hiện nay.
- Standard tags bắt đầu với tiền tố jsp <code>: </ code>. Có rất nhiều JSP Standard Action tag được sử dụng để thực hiện một số nhiệm vụ cụ thể.
- Sau đây là một số JSP Standard Action Tag thường dùng:

                       

Cách sử dụng jsp:dùng jsp làm view trong ứng dụng mvc pattern(jsp có thể làm vẫn có thể làm được các nhiêm vụ khác nhưng để thuận tiện cho việc debug hay tái sử dụng các đoạn mã thì người ta thường dùng làm view còn servlet sẽ làm controller.)


II.Java Servlets: là các chương trình chạy trên một Web server hoặc một Application server và thực hiện như là một tầng trung gian giữa một Yêu cầu từ một trình duyệt web hoặc HTTP client với các Database hoặc các ứng dụng trên HTTP server.
Sử dụng Servlets, bạn có thể thu thập Input từ người sử dụng thông qua các form trên trang web, hiển thị các bản ghi (record) từ một Database hoặc từ nguồn khác, và tạo các trang web động.
Java Servlets thường có chung mục đích: là các chương trình độc lập bởi việc sử dụng Common Gateway Interface (CGI). Nhưng so với CGI, thì Servlets có các lợi thế sau:
  • Hiệu năng tốt hơn đáng kể.
  • Servlets thực thi bên trong không gian địa chỉ của một Web server, không cần thiết phải tạo một tiến trình riêng biệt để xử lý mỗi yêu cầu từ Client.
  • Servlets là độc lập trên nền tảng bởi vì chúng được viết bằng Java.
  • Bởi vì viết bằng Java (mà Java cung cấp tình bảo mật cao trên Server) nên Servlets là đáng tin cậy.
  • Tính năng đầy đủ của thư viện của các lớp trong Java là luôn luôn có sẵn cho Servlets. Nó có thể giao tiếp với Applet, Database hoặc phần mềm khác thông qua các Socket và kỹ thuật RMI mà bạn đã từng thấy.
Cấu trúc của Servlets
Cấu trúc Servlets
Nhiệm vụ của Servlets
Sơ đồ dưới đây minh họa cấu trúc của Servlets trong một ứng dụng web:
Servlets thực hiện các tác vụ chủ yếu sau:
  • Đọc dữ liệu hiển thị (explicit) được gửi bởi Client (hoặc trình duyệt) bao gồm một HTML Form trên một trang web hoặc nó cũng có thể từ một Applet hoặc một chương trình Custom từ HTTP Client.
  • Đọc dữ liệu yêu cầu HTTP ẩn (implicit) được gửi bởi Client (hoặc trình duyệt) bao gồm cookie, các loại media.
  • Xử lý dữ liệu và cho ra kết quả. Tiến trình này có thể yêu cầu Database, đang thực thi một triệu hồi tới RMI hoặc CORBA, triệu hồi một Web Service, hoặc tính toán phản hồi một cách trực tiếp.
  • Gửi dữ liệu hiển thị (ví dụ: tài liệu) tới các Client (hoặc trình duyệt). Tài liệu này có thể được gửi theo nhiều định dạng khác nhau, gồm text (HTML hoặc XML), nhị phân (hình ảnh GIF), Excel, .v.v.
  • Gửi phản hồi HTTP ẩn tới các Client (hoặc trình duyệt), thông báo cho trình duyệt hoặc Client về kiểu của tài liệu được trả về (ví dụ: HTML), thiết lập các Cookie và Caching các tham số, cùng các tác vụ khác.
Ưu và nhược điểm của servlet:
* Ưu điểm- Có độ bảo mật cao.- Có hiệu năng và khả năng mở rộng cao.- Truy cập được tất cả Java API- Có nhiều tools bên phía Third - Party và JavaServlet được nhiều Webserver hỗ trợ.- Độc lập Platform và Server- Hầu hết các server đều cho phép load lại Servlet khi có thay đổi
* Nhược điểm- Là một công nghệ đã cũ nên có rất nhiều hạn chế và khó khăn khi làm việc với giao diện.
Cách sử dụng:như đã nói ở trên servlet thường được dùng làm controller trong mô hình MVC pattern



III:Vì sao cần có JSP và Servlet trong 1 ứng dụng java?

- Về cơ bản jsp và servlet có thể thay thế nhau và làm được hầu hết các nhiệm vụ giống nhau vậy tại sao không dùng 1 thằng thôi mà lại phải dùng cả 2 thằng?


  1. Đơn giản vì Servlet không cho phép nhúng trực tiếp mã HTML/CSS/XML vào trong Class của nó. Mặc dù ta vẫn có thể làm việc đó bằng cách sử dụng phương thức println(); tuy nhiên làm như vậy rất thiếu muối và không ai muốn làm thế để đốt thời gian và công sức cả(nếu bạn có nhiều thời gian có thể thử hại não lắm đấy.Không khuyến khích vì có thể tẩu hỏa nhập ma ^_^), cho nên nó tạo ra JSP để giải quyết việc này<br/>
  2. JSP cũng có thể nhúng được mã Java thì còn cần Servlet làm gì?JSP tuy có ưu điểm là nhúng được mã Java vào trong nó nhưng khi một ứng dụng Web được mở rộng thêm thì JSP trở nên rối rắm, khó quán lí và bảo mật kém hơn - khi 1 số mã JSP có thể bị đọc bởi Client.<br/>
  3. Trên thực tế JSP xuất hiện trước Servlet nên việc Servlet sinh ra để khắc phục nhược điểm của JSP mới là ý chính. Tuy nhiên người ta cũng không khai tử JSP mà giữ lại những ưu điểm của nó cho việc phát triển ứng dụng Web 1 cách linh hoạt :D






Không có nhận xét nào:

Đăng nhận xét