您好,登錄后才能下訂單哦!
本篇內容介紹了“JSP引擎的工作原理是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
JSP運行環境:
執行JSP代碼需要在服務器上安裝JSP引擎,比較常見的引擎有WebLogic和Tomcat。把這些支持JSP的web服務器配置好后。就可以再客戶端通過瀏覽器來訪問JSP頁面了。默認端口一般是7001.
JSP生命周期:
JSP處理請求的方法就是把這些請求都統一看做Servlet。由于這個原因,JSP的很多功能和生命周期,都由Java Servlet技術標準定義的。這種限制,在動態內容方面更加明顯。所以學習JSP的時候,需要溫習Servlet的內容和標準。
JSP網絡應用服務器框架:
在符合J2EE規范的服務器構建起來之后,就可以編寫JSP頁面了,在HTML頁面中嵌入JSP腳本,該頁面就成為JSP頁面了。JSP腳本用特定的標記括起來,如<%...%>,或者<JSP>…</JSP>。JSP的工作流程如下:當其讀到HTML的代碼的時候,就直接輸出到客戶端,而如果讀到嵌入JSP腳本的時候,就需要對這些腳本進行另外的翻譯和處理,得到輸出之后再輸出到客戶端。
下面通過一個簡單頁面編寫來了解JSP網絡應用的框架:
1.JSP客戶端交互
JSP的大部分工作就是與客戶端進行交互。客戶端一般指的是瀏覽器,它們與置于服務器端得JSP頁面進行交互。JSP腳本中所有的Java語句都是在服務器執行,服務器接受客戶端提交的請求,通過一定的處理之后,將結果返回給客戶端,客戶端得到的僅僅是HTML代碼。下面是一個JSP的HelloWorld程序代碼:
<html> <head> <title>HelloWorld for JSP</title> </head> <body> <h2>HelloWord for JSP</h2> <%out.println("<h4>Hello World!</h4>");%> </body> </html>
2.交互過程的流程
在一般的客戶端和服務器端的交互中,是用HTTP協議,客戶端通過下面4個步驟也服務器段進行交互:
(1)客戶端和服務器端建立連接
(2)發送客戶端請求
(3)服務器返回應答給客戶
(4)客戶端關閉連接
所有的請求都是由客戶端主動發出的,而服務器一直出于被動的監聽狀態。用戶在瀏覽器鍵入要訪問的地址,按回車鍵確認后,瀏覽器開始與服務器建立連接,從這時開始,就開始了一次交互過程。瀏覽器通過一段時間的等待后,從服務器得到響應,并且把相應的信息以HTML方式呈現給用戶。用戶在瀏覽網站的過程中,實際上包含了很多這樣的交互應答過程。在客戶端與JSP頁面的交互過程中,只有服務器接收請求和返回應答的動作可能不一樣,其他與上面過程基本一致。基本情況如下:
(1)服務器在收到一個請求后首先要分析這個請求,如果請求的頁面只是一般的HTML頁面,服務器就直接讀出HTML頁面并返回給客戶端
(2)如果客戶端請求的是JSP頁面,服務器調用JSP引擎翻譯處理所請求的JSP頁面,并將翻譯和處理之后的HTML返回給客戶端
(3)如果遇到JavaBeans組件,JSP引擎將調用相應的JavaBeans組件,得到JavaBeans的返回值,***返回給JSP頁面
3.JSP引擎的工作原理
當一個JSP頁面***次被訪問的時候,JSP引擎將執行以下步驟:
(1)將JSP頁面翻譯成一個Servlet,這個Servlet是一個java文件,同時也是一個完整的java程序
(2)JSP引擎調用java編譯器對這個Servlet進行編譯,得到可執行文件class
(3)JSP引擎調用java虛擬機來解釋執行class文件,生成向客戶端發送的應答,然后發送給客戶端
以上三個步驟僅僅在JSP頁面***次被訪問時才會執行,以后的訪問速度會因為class文件已經生成而大大提高。當JSP引擎街道一個客戶端的訪問請求時,首先判斷請求的JSP頁面是否比對應的Servlet新,如果新,對應的JSP需要重新編譯。
4.對請求信息的處理
在大部分的交互過程中,一個JSP頁面首先對用戶提出的請求進行分析,然后從請求中得到有用的數據,比如接收用戶提交的數據或者請求的方法,然后進行相應的處理。而這就需要了解得到傳入參數的方法和得到用戶其他信息的方法。
(1)得到傳入參數的方法
在交互過程中,服務器必須從客戶端得到一些數據,來幫助處理過程的進行。這些數據包括用戶身份驗證數據(如用戶名、密碼等)以及其他中要信息。而這些數據的載體,就是用戶提交的請求。請求的組成主要有兩部分,一是頭信息。頭信息包含了以下信息:請求的方法(GET和POST)、請求的URL和瀏覽器信息。其他信息包含了一些數據信息。
首先要了解的是GET方法發送請求時,這種方法是客戶端用來向服務器段請求信息的,所以在請求中不包含信息體。用戶只能把請求的內容作為參數附加在URL后面進行發送,參數之間用“&”符號隔開,如代碼:一個典型的GET請求的表單get.html
<html> <head> <title>Get</title> </head> <body> <h2>Get Method</h2> <form action = "submit.jsp" method = "GET"> username<input name = "uername" value = "aaa"><br> password<inpput type = password name = "password" value = "111111"><br> <input type = submit value = "submit"> </form> </body> </html>
(代碼中有一個表單,表單在定義的時候,定義了屬性method=“GET”,這表明表單提交的方法是GET。這個表單向服務器提交兩個參數,其中一個是username,缺省值為aaa,另外一個是password,其缺省值是111111。)
這個頁面只是得到了輸入數據,只有submit.JSP才能實現提交這個頁面的數據。這就是需要用到JSP了,代碼如下:submit.JSP
<html> <head> <title>submit</title> </head> <body> <h2>submit</h2> request method:<%=request.getMethod() %><br> user name:<%=request.getParameter("user") %><br> password:<%=request.getParameter("password") %><br> </body> </html>
在這個JSP頁面中是用了JSP的內置對象request的兩個方法,一個是getMethod,用來獲取當前請求的類型,另一個是getParameter,用來獲取指定參數的值。在get.html中單擊submit按鈕,就可以顯示表單請求方法,用戶名以及密碼等信息。
(2)得到其他信息的方法
得到非用戶輸入的其他參數信息,就需要用到其他的方法。如下所示是一個得到客戶端信息的簡單程序。根據這個程序我們可以初步了解如何得到客戶端信息的大致思路。代碼如下:
<html> <head> <title>得到消息</title> </head> <body> <h2>請求中所包含的URL</h2><br> <%=request.getQueryString()%><br> </body> </html>
“JSP引擎的工作原理是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。