Java Web技術的發展經曆了如下幾個階段:
l Servlet技術;l JSP技術;l 模型1:JSP+JavaBeanl 模型2:JSP+JavaBean+Servletl 架構l 可視化開發下面分別進行介紹。
Servlet技術階段Servlet是Java技術中最早的Web解決方案,Servlet與普通Java類的編寫非常類似。使用Servlet技術,頁面中的所有資訊需要通過輸出語句來產生。下面的代碼(部分代碼)產生的頁面的內容就是“HelloWorld!”。public void doGet(HttpServletRequest request,HttpServletResponse) throws IOException,ServletException{ response.setContentType("text/html;charset=gb2312"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title>Hello World!</title></head>"); out.println("<body>"); out.println("<p>Hello World!</p>"); out.println("</body></html>");}如果採用HTML語言直接產生相同功能的介面,將非常簡單。正因為此,Java推出了JSP技術,JSP可以有效解決Servlet產生頁面比較困難的問題。
JSP技術階段JSP技術的目標是快速開發網站,在網頁中嵌入Java程式碼完成網站。例如下面的代碼就是1個簡單的JSP例子:<html> <head><title>測試</title></head> <body> 第一階段<% String str = “test” ; out.println(str); %></body></html>如果希望進行一些處理,直接在介面中使用<% %>指令碼標識嵌入Java代碼。如果要開發具有大量網頁內容的網站效率比較高,可以先使用網頁編輯工具編寫網頁,然後在網頁中嵌入處理代碼即可。但是缺點是:網站的輸入輸出、處理、控制全部夾雜在一起,維護不方便。當網站中需要進行大量的處理代碼的時候,JSP檔案將很難維護,並且代碼也不容易共用。因為JSP在編寫網頁方面具有優勢,而編寫處理代碼存在很多問題,所以產生了模型1,把JSP中的處理代碼使用JavaBean來實現。
模型1:JSP+JavaBean階段JavaBean是使用Java語言編寫的組件,簡單的理解,可以認為JavaBean是比較特殊的Java類。JavaBean會把網站中處理過程進行封裝,這樣的結果就是在JSP檔案中僅僅是輸入輸出功能和控制功能,處理過程放在JavaBean中,然後在JSP中調用JavaBean的功能,JSP提供了若干標籤支援調用。下面的例子展示了這種模型。JavaBean檔案:package test;public class PrintMessage{ public String print() { return “使用JavaBean返回資訊”; }}分頁檔:<%@ page import=”test.*” %><jsp:useBean id=”printMessage” class=”test.PrintMessage” scope=”request”/><html> <head><title>測試</title></head> <body> 第一階段<% out.print(printMessage.print()); %></body></html>這種模型的優點是:業務處理由JavaBean完成,減少了頁面中的代碼。缺點是:頁面中仍然有用於控制的代碼。
模型2:JSP+JavaBean+Servlet階段在模型2中,把JSP中的控制功能提取出來使用Servlet實現。這樣,JavaBean強調的是功能,Servlet主要用於控制。從完成的功能來說,JSP和Servlet是相同的,但是JSP主要以標籤(HTML標籤和JSP標籤)為主,Servlet是Java代碼。JavaBean和Servlet都是Java代碼,但是Servlet能夠接收請求,使用者能夠直接存取,JavaBean不能接收請求,需要由JSP或者Servlet調用。這種模型的特點:JSP完成輸入和輸出,主要使用HTML標籤和JSP標籤。Servlet主要完成控制,接收請求,調用業務處理(JavaBean),根據調用的結果找到一個JSP頁面對使用者進行響應。JavaBean完成所有的處理過程。這種方式實際上是MVC模式的採用。MVC模式由3部分組成:M表示模型(類比現實事物),主要用於處理過程;V表示視圖,實際上就是輸入和輸出功能;C表示控制器,主要控製程序的流程。
架構階段隨著Java Web應用技術的發展,出現了大量的架構套件括Web層架構和持久層架構。Web層架構通常可以提供一些Web應用的通用功能,使用者在編寫應用的時候只需要關注自己比較特殊的東西即可。例如,Servlet作為控制器完成的功能包括:擷取使用者的輸入資訊;對資訊進行驗證、轉換;使用這些資訊調用商務邏輯(JavaBean的方法);然後選擇介面對使用者響應。如果把擷取的資訊設定成變數、要進行的驗證和轉換進行配置、要調用的方法進行配置、要響應的介面進行配置,這樣Servlet就可以通用了。在本書的第二部分對流行的Web層架構Struts2和JSF進行了介紹,並自己實現了1個簡單的架構。持久層架構,主要是解決資料庫訪問問題,同樣是把資料庫訪問中通用的內容提取出來,在編寫應用的時候只編寫特殊的東西。例如,要把使用者資訊和圖書資訊添加到資料庫中,採用JDBC技術,編寫的兩段代碼的區別是表名不同,列與屬性的對應關係不同。持久層架構就可以完成這個添加工程,使用者只需要提供表名並且提供列與屬性的對應關係。書中第二部分持久性部分將對持久層架構進行介紹。
可視化開發隨著整合式開發環境對於Web應用支援的增強,可視化Web應用開發(JSF技術)應該是未來的發展趨勢。這種方式的開發就像以前在C++Builder或者VB中開發應用一樣方便。 上一講:第七講 Servlet運行原理下一講:
第九講 Web應用配置李緒成 CSDN Blog:http://blog.csdn.net/javaeeteacher邀請您為好友:http://student.csdn.net/invite.php?u=124362&c=7be8ba2b6f3b6cc5