jsp和servlet和struts2

                                      jsp和servlet和struts2

jsp依賴於servlet

jsp:一種動態網頁技術,全稱JavaServer Pages,是由Sun Microsystems公司主導創建的一種動態網頁技術標準。JSP部署於網絡服務器上,可以響應客戶端發送的請求,並根據請求內容動態地生成HTML、XML或其他格式文檔的Web網頁,然後返回給請求者。由於它運行在服務器端,所以它是服務器語言。在mvc中充當視圖部分。

例如:當客戶端發出請求訪問http;//......index.jsp時,1.服務器會找到服務器端對應的jsp文件,2.把它先翻譯成java文件,再編譯成字節碼文件,3.然後執行該文件,把執行的結果(生成html文件)頁面返回到客戶端顯示。注意:1,2,3,都是在服務器端執行的。

而jsp文件是通過在html中嵌入java腳本文件來響應頁面動態請求的。

後來人們覺得把顯示業務邏輯代碼和Bean模式代碼以及視圖放在一起,太繁雜和不方便。所以創造出來model1,後來又創造出來MVC模式,MVC模式中把服務器執行的東西分爲三部分。視圖部分,bean模型部分和邏輯控制部分(主要來處理數據,生成新的數據。)通過他們三個之間的相互作用,來生成最終結果,來回復客戶端的請求。

到這裏我產生了一個疑問,那我們平時說到前端,後臺怎麼劃分?因爲現在視圖也是放在後臺,所以前端與這裏的視圖部分,有什麼區別?它的前端難道是指服務器的jsp文件?還是指最終生成的結果。

servlet:Java Servlet 是運行在帶有支持 Java Servlet 規範的解釋器的 web 服務器上的 Java 類。就是指在服務器端,只要該服務器有Java Servlet 規範的解釋器,那麼服務器端存在的java代碼就都可以被稱作servlet。

servlet的任務:

  • 讀取客戶端(瀏覽器)發送的顯式的數據。這包括網頁上的 HTML 表單,或者也可以是來自 applet 或自定義的 HTTP 客戶端程序的表單。
  • 讀取客戶端(瀏覽器)發送的隱式的 HTTP 請求數據。這包括 cookies、媒體類型和瀏覽器能理解的壓縮格式等等。
  • 處理數據並生成結果。這個過程可能需要訪問數據庫,執行 RMI 或 CORBA 調用,調用 Web 服務,或者直接計算得出對應的響應。
  • 發送顯式的數據(即文檔)到客戶端(瀏覽器)。該文檔的格式可以是多種多樣的,包括文本文件(HTML 或 XML)、二進制文件(GIF 圖像)、Excel 等。
  • 發送隱式的 HTTP 響應到客戶端(瀏覽器)。這包括告訴瀏覽器或其他客戶端被返回的文檔類型(例如 HTML),設置 cookies 和緩存參數,以及其他類似的任務。 

jsp(不是單純只服務器端的那個jsp文件)相當於在servlet之上增加了一個過程(jsp文件變爲servlet到過程)所以我們說jsp依賴於servlet。

struts2:一個MVC開發框架,用來簡化網站開發的代碼冗餘和複雜性。它只是一個框架。它不會改變網站的組成。它只不過是封裝了MVC中的一些冗餘代碼。它的實質依舊是客戶端發出請求,服務器接收後,提交給相應的組件,然後進行數據處理,最後生成用來答覆客戶請求的html文件。只不過struts2當服務器接收到請求後,先發給核心過濾器),然後到struts.xml文件中匹配相應的actin,執行後返回action的返回值(字符串)再匹配struts.xml配置文件找出相應的匹配頁面。

struts2不依賴於servlet。它實現了與servlet的解耦。但是我們在struts2中依然可以調用servlet。struts2提供了自己的方法,來實現servlet的功能,正是由於這個功能才實現了與servlet的解耦。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章