天天看點

JSP與Servlet之間的互動,傳值

一.Servlet

首先要明白一點,servlet需要容器的支援才能夠運作,如Tomcat、jetty

達到servlet的請求,需要ServletRequest對象和ServletResponse對象去處理

servlet在伺服器中的運作:1.加載到記憶體->2.初始化(init()) - > 3.調用(service(){doGet/doPost}) - 4.銷毀(destroy())。其中(1)(2)(4)在 Servlet的整個生命周期中隻會被執行一次

如果在web.xml中對servlet配置了load-on-startup,那麼就是在容器加載時就将Servlet初始化,否則是接受第一次請求時再加載

在web.xml檔案中, Servlet可以通過<serlvet>元素和<servlet-mapping>元素指定通過url的方式通路這些Servlet

servlet工作原理:

JSP與Servlet之間的互動,傳值

 二.JSP

JSP(JavaServlet Page)其實就是servlet。是從Servlet繼承而來。隻不過它在Servlet當中又添加/修改了一些方法,作了新的封裝

工作原理:

JSP與Servlet之間的互動,傳值

流程圖解釋:

浏覽器請求JSP頁面,伺服器用JSP 引擎将其解析成Servlet類的Java源代碼檔案,也就是*_jsp.java,再由Java編譯器編譯成一個位元組碼檔案,也就是*_jsp.class,并裝載到 jvm解釋執行。剩下的就等同于 Servlet的處理過程了

*_jsp.java檔案就是servlet.java檔案,包括 _jspInit()、_jspDestroy()、_jspService(request,response)三個方法,類比于servlet中init()、destroy()、service(request,response)三個方法

三.各自扮演的角色

現在JSP用來做頁面視圖的展現,servlet用于邏輯控制。在MVC 架構模式中,就 JSP 和 Servlet而言,C通常由 Servlet充當,V通常由 JSP來充當