Đồ án tốt nghiệp - Phân tích thiết kế hệ thống - NGÔN NGỮ CÀI ĐẶT WEBSITE ppt

126 364 0
Đồ án tốt nghiệp - Phân tích thiết kế hệ thống - NGÔN NGỮ CÀI ĐẶT WEBSITE ppt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐỒ ÁN: NGÔN NGỮ CÀI ĐẶT WEBSITE Phần I GIỚI THIỆU VỀ NGÔN NGỮ CÀI ĐẶT Chương I CĂN BẢN VỀ JSP JavaServer Pages (JSP) là một kỹ thuật server-side do đó chúng ta không thể thực hiện bất kỳ hành động nào ở client. JSP cho phép chúng ta tách thành phần động của trang ra khỏi thành phần tĩnh HTML. Rất đơn giản, chúng ta chỉ cần viết một tài liệu HTML bình thường rồi sau đó bao quanh mã của thành phần động trong các tag đặc biệt, hầu hết các tag bắt đầu với <% và kết thúc với %>. Ví dụ, đây là một phần của trang JSP, có kết quả trả về là “Thanks for reading Van Dau book.” với URL là http://localhost:8100/thanhk.jsp?title=Van+Dau Thanks for reading <i><%=request.getParameter(“title”)%><i>book. Kỹ thuật JSP là một thành phần trong đại gia đình Java; nó sử dùng ngôn ngữ kịch bản dựa vào ngôn ngữ lập trình Java, và các trang JSP được biên dịch thành servlets. Từ đó chúng ta cũng nhận biết được, JSP thì không phụ thuộc bất kỳ nền (platform) nào. Nó đáp ứng được khuynh hướng của Sun MicroSystem là “write one, run anywhere”. Các trang JSP có thể gọi các thành phần JavaBeans, Enterprise JavaBeans (EJB) hoặc custom tags để thực hiện các xử lý trên server. Và như thế, kỹ thuật JSP là thành phần chủ chốt trong kiến trúc khả chuyển của Java cho những ứng dụng dựa vào Web. Như đã biết, JSPs sẽ biên dịch thành servlets nhưng JSP không thể thay thế servlet vì các lý do sau:  Một số tác vụ được giải quyết rất tốt bằng servlet. Ví dụ, các ứng dụng xuất ra dữ liệu nhị phân hoặc chỉ xác định nơi gởi trở lại cho người dùng (bằng cách dùng response.sendRedirect) được dùng servlet thì tốt nhất.  Một số tác vụ khác lại được giải quyết rất tốt bằng JSP như các tình huống mà cấu trúc nền tảng của trang HTML là cố định nhưng các giá trị trong nó lại thay đổi.  Còn các tác vụ còn lại cần sự kết hợp cả servlet và JSP. Ví dụ, trong yêu cầu gốc được trả lời bằng một servlet mà thực hiện mọi công việc, lưu trữ các kết quả trong các Beans và điều phối yêu cầu này đến một trong những trang JSP có thể hiển thị nó. Cả ba định hướng này đều có chổ đứng của nó. Chẳng có định hướng nào hổ trợ đầy đủ cho mọi ứng dụng . Trước khi đi vào chi tiết công nghệ JSP, chúng tôi có một vài so sánh các công nghệ được sử dụng trong ứng dụng với các công nghệ khác. I. So sánh JSP với các công nghệ khác. I.1. JSP với ASP ASP là công nghệ tương đương từ Microsoft. JSP có ba lợi thế so với ASP. - Phần động được viết bằng Java, chứ không phải bằng các ngôn ngữ script như VBScript, JavaScript. Vì thế nó mạnh mẽ hơn tốt hơn đối với các ứng dụng phức tạp cần các thành phần sử dụng lại. - JSP chạy được trên nhiều hệ điều hành và web servers khác nhau ngay cả với IIS của Microsoft (cần có plugins từ Webphere, JRun, ) - Hỗ trợ sự mở rộng tag với custom tag. I.2. JSP với PHP Lợi điểm của JSP với PHP cũng như với ASP. JSP được viết bằng Java mà chúng ta đã biết với các API mở rộng cho mạng, truy cập cơ sở dữ liệu, các đối tượng phân tán, … trong khi với PHP đòi hỏi chúng ta phải học cả một ngôn ngữ mới. II. Các thành phần script của JSP. Các thẻ bọc mã trong JSP cho phép chúng ta chèn mã vào servlet mã sẽ được phát sinh từ trang JSP. Có ba dạng sau: Biểu thức có dạng <%= expressions %>, được định giá trị và chèn vào luồng xuất của servlet. Scriptlet có dạng <% code %>, được chèn vào phương thức _jspService của servlet (được gọi là service). Khai báo có dạng <%! code %>, được chèn vào thân của lớp servlet, như là các field của lớp thông thường. T T e e m m p p l l a a t t e e t t e e x x t t Trong nhiều trường hợp, phần lớn các trang JSP chỉ bao gồm HTML tĩnh, được biết như là template text. Có hai ngoại lệ phụ cho quy tắc “template text được chuyển thẳng sang HTML tĩnh”. Đầu tiên, nếu chúng ta muốn có <% trong luồng xuất thì chúng ta cần phải đặt <\% trong template text. Thứ hai, nếu chúng ta muốn có chú thích trong JSP mà không có trong tài liệu kết quả, dùng: <% JSP comments %> Chú thích HTML có dạng: <! HTML comments > thì được chuyển qua tài liệu HTML thông thường. C C ú ú p p h h á á p p X X M M L L Trong JSP có rất nhiều element có cú pháp XML như jsp:useBean, jsp:include, jsp:setProperty, Tuy nhiên scripting elements lại có hai dạng cú pháp sau: JSP Syntax XML Syntax <% = Expressions %> <jsp:expression> Java code </jsp:expression> <% Scriptlets %> <jsp:scriptlet> Java code </jsp:scriptlet> <%! Declarations %> <jsp:declaration> Java code </jsp:declaration> II.1. Các biến được định nghĩa sẵn trong JSP Để đơn giản hoá mã trong các biểu thức hay scriptlets trong JSP, người ta cung cấp cho chúng ta chín đối tượng đã được định nghĩa trước, có người còn gọi là các đối tượng ngầm định. Do các khai báo trong JSP nằm ngoài phương thức _jspService (được gọi bởi service) nên các đối tượng này không cho phép các khai báo truy cập vào. request Biến này có kiểu là javax.servlet.http.HttpServletRequest, có phạm vi trong một yêu cầu (request). Nó cho phép chúng ta truy cập vào các tham số của request như loại request (GET, POST, …) và các incoming HTTP header (cookies). response Có kiểu là javax.servlet.http.HttpServletResponse, có phạm vi toàn trang (page). Chú ý rằng vì luồng xuất thì thường làm vật đệm cho nên việc gán mã tình trạng của HTTP và response header thì hợp lý trong JSP, mặc dù điều này thì không được phép trong servlet một khi đã có luồng xuất nào được gởi đến client. out Có kiểu javax.servlet.jsp.JspWriter và phạm vi trong một trang (page). Dùng để gởi các thông xuất đến client. Đối tượng out được dùng thường xuyên trong scriptlets, các biểu thức tự động được đưa vào luồng xuất nên hiếm khi cần tham chiếu đến đối tượng này. session Có phạm vi trong một phiên truyền (session) và kiểu tương ứng là javax.servlet.http.HttpSession. Gọi về các phiên truyền được tạo tự động vì thế biến này vẫn còn kết nối ngay cả chẳng có một tham chiếu incoming session nào. Một ngoại lệ là nếu chúng ta sử dụng thuộc tính session của page directive để tắc các phiên truyền, mà lại cố tham chiếu đến biến session thì sẽ gây ra các lỗi vào lúc trang JSP được dịch thành servlet. application Biến này có kiểu là javax.servlet.ServletContext, có phạm vi trong toàn ứng dụng (application). ServletContext lấy từ một đối tượng cấu hình servlet là getServletConfig().getContext(). Các trang JSP có thể lưu trữ dữ liệu persistent trong đối tượng ServletContext tốt hơn là trong các biến thể hiện. ServletContext có các phương thức setAttribute và setAttribute mà cho phép chúng ta lưu trữ dữ liệu config Biến này có phạm vi trang (page) và có kiểu tương ứng là javax.servlet.ServletConfig. pageContext Biến này có kiểu là javax.servlet.jsp.PageContext và có phạm vi là trang (page). pageContext cho phép một điểm truy cập duy nhất tới nhiều thuộc tính của trang và cung cấp một nơi thuận tiện để lưu trữ dữ liệu dùng chung. Biến pageContext lưu trữ giá trị của javax.servlet.jsp.PageContext cùng với trang hiện hành. Có thể xem chi tiết trong chương II về JavaBeans. page Biến này đồng nghĩa với this và điều này thì không hữu ích trong ngôn ngữ lập trình Java, có kiểu là java.lang.Object và có phạm vi trang (page). exception Trong một trang lỗi, chúng ta có thể truy cập vào đối tượng exception. Biến này có kiểu là java.lang.Throwable và phạm vị là trang (page). II.2. Biểu thức trong JSP Biểu thức trong JSP được dùng để chèn các giá trị trực tiếp vào luồng xuất. Nó có dạng sau: <%= Java expressions %> Biểu thức này được định trị, được chuyển thành chuỗi, và được chèn vào trong trang. Sự định trị diễn ra ở thời gian runtime (khi trang được yêu cầu) và do đó có đầy đủ quyền truy cập các thông tin của yêu cầu này. Ví dụ sau đây mô tả ngày/giờ mà trang được yêu cầu: Current time: <%= new java.util.Date() %> Trong Java mỗi câu lệnh đều có dấu ‘;’ kết thúc dòng. Tại sao biểu thức trong JSP lại không có dấu ‘;’? Vì biểu thức này được đưa vào luồng xuất chẳng hạn như PrintWriter. Với ví dụ trên có thể chuyển vào servlet như sau: PrintWriter out = response.getWriter(); out.println(“Current time:” + new java.util.Date()); Biểu thức như là giá trị trong elements khác. Biểu thức có thể được sử dụng trong các thuộc tính của các elements khác. Giá trị từ các biểu thức này sẽ được tính vào thời gian yêu cầu (request time). Các elements cho phép sử dụng biểu thức trong các thuộc tính của chúng là: Tên Element Tên thuộc tính jsp:setProperty name và value jsp:include Page jsp:forward Page jsp:param Value II.3. JSP scriptlets Scriptlets là những đoạn mã có chứa bất kỳ mã Java nào nằm giữa “<%” và “%>”. Nếu chúng ta muốn thực hiện thứ gì đó phức tạp hơn là chỉ chèn vào một biểu thức đơn giản thì JSP scriptlets cho phép chúng ta thêm bất kỳ đoạn mã Java nào vào trang JSP. Các scriptlets này được đưa vào phương thức _jspService (mà được gọi bởi service) của servlet. Có cú pháp: <% Java Code %> II.4. Khai báo trong JSP Một khai báo trong JSP cho phép chúng ta định nghĩa các phương thức hoặc các trường (biến) có phạm vi toàn trang. Khai báo sẽ được chèn vào [...]... khác Giá trị “false” là mật định cho thuộc tính này contentType Thuộc tính này gán Content-Type cho response header, mô tả kiểu MIME của tài liệu được gởi đến client Thuộc tính contentType có một trong hai dạng sau: Một số kiểu MIME-Type thường dùng: “text/html”, “text/xml”, “text/plain”, “image/gif”, “image/jpeg”... HttpServletRequest và HttpServletResponse để đọc và ghi kết xuất trả về trình khách Dọn dẹp Khi trang JSP đã thực thi xong, trình chủ Web server sẽ gọi phương thức jspDestroy () để giải phóng mã trang khỏi bộ nhớ Tương tự như trong servlet, chúng ta có thể cài đặt phương thức jspDestroy () thực hiện chức năng giảp phóng vùng nhớ hoặc đóng kết nối trả tài nguyên về cho hệ thống IV.4 Ưu và khuyết điểm của Servlet so... servlet nhị phân (file class) đã qua bước biên dịch mã không cần đến mã nguồn của servlet ban đầu Mặc khác, các servlet có thể tương tác liên hoàn, với nhau để tạo nên những kết xuất tùy biến và đa dạng trước khi trả kết quả về cho trình khách Servlet có thể phân rã các đơn thể của dự án và phát triển độc lập nhau như các thành phần riêng biệt để ráp lại trong một tổng thể chung Tuy nhiên, việc kết xuất... liệu và các dịch vụ khác Một số đặt tính của các custom tag là: - Chúng có thể được tuỳ biến thông qua các thuộc tính từ một trang đang gọi - Chúng được phép truy cập vào tất cả đối tượng có sẵn trong trang JSP - Chúng có thể thay đổi lời đáp mà được phát sinh bởi một trang đang gọi - Chúng có thể được lồng với nhau và cho phép các tương tác phức tạp trong một trang - Chúng có thể truyền thông với... lý ta nên sử dụng servlet Trường hợp với dự án lớn chúng ta nên kết hợp cả servlet và JSP Mô hình kết hợp tốt nhất giữa servlet và JSP thường được gọi là MCV (Model – View – Controler) trong đó servlet đóng vai trò trung tâm điều khiển (controler) đưa ra các quyết định xử lý JSP đóng vai trò thể hiện giao diện hay hiển thị dữ liệu đã xử lý Quy trình tính toán logic của ứng dụng được giao lại cho các... một ứng dụng và tăng hiệu xuất bằng cách khuyến khích phân chia công việc giữa các nhà phát triển thư viện và người sử dụng thư viện Các tag library của JSP được tạo bởi các nhà phát triển, là người thành thạo ngôn ngữ lập trình Java và là chuyên gia trong giao tiếp với cơ sở dữ liệu và các dịch vụ khác Các tag library được dùng bởi các nhà thiết kế ứng dụng web, là người có thể chỉ tập trung vào cách... quyết định giao diện cho kết xuất hoàn toàn phụ thuộc vào lập trình viên với hàng loạt các lệnh print () hay println () rất khó quản lý Quyết định sử dụng JSP, Servlet hay kết hợp cả hai là tuỳ vào từng dự án và mục đích của chương trình mà chúng ta muốn phát triển Thông thường đối với những dự án nhỏ, yêu cầu thời gian nhanh, JSP là lưa chọn thích hợp nhất Trường hợp với dự án cần sự độc lập và chỉ... phương thức này để khởi tạo các biến môi trường và giá trị ban đầu cần thiết cho quá trình thực thi servlet sẽ diễn ra tiếp theo Thường trong phương thức init () ta khởi tạo giá trị mảng, tạo sẵn kết nối với cơ sở dữ liệu, nạp các lớp thư viện cần thiết Ví dụ chúng ta có thể nạp trình điều khiển JDBC truy xuất cơ sở dữ liệu, tạo sẵn kết nối đến nguồn dữ liệu cho servlet trong phương thức init () như... phải cài đặt Khi trình chủ nạp servlet vào bộ nhớ, phương thức init () chỉ được gọi duy nhất một lần trong phương thức service () có thể được triệu gọi nhiều lần ứng với mỗi yêu cầu servlet phát sinh từ trình duyệt phía máy khách Bên trong phương thức service () chúng ta có thể sử dụng đối tượng tham số ServletRequest và ServletResponse để tiếp nhận dữ liệu từ trình khách chuyển lên và kết xuất kết... như khi nhà quản trị muốn dừng hệ thống, muốn Webserver khởi động lại để giải phóng rác trong bộ nhớ tăng hiệu suất thực hiện… Trước khi chấm dứt, Web server sẽ gọi đến phương thức hủy destroy () của servlet Đây là cơ hội để servlet thực hiện một số thao tác dọn dẹp cần thiết như lưu dữ liệu xuống đĩa, ghi nhớ trạng thái của servlet để phục vụ cho lần khởi động sau, đóng kết nối với cơ sở dữ liệu… Và . ĐỒ ÁN: NGÔN NGỮ CÀI ĐẶT WEBSITE Phần I GIỚI THIỆU VỀ NGÔN NGỮ CÀI ĐẶT Chương I CĂN BẢN VỀ JSP JavaServer Pages (JSP) là một kỹ thuật server-side do đó chúng. công nghệ JSP, chúng tôi có một vài so sánh các công nghệ được sử dụng trong ứng dụng với các công nghệ khác. I. So sánh JSP với các công nghệ khác. I.1. JSP với ASP ASP là công nghệ tương. <i><%=request.getParameter(“title”)%><i>book. Kỹ thuật JSP là một thành phần trong đại gia đình Java; nó sử dùng ngôn ngữ kịch bản dựa vào ngôn ngữ lập trình Java, và các trang JSP được biên dịch thành servlets. Từ đó chúng

Ngày đăng: 27/06/2014, 17:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan