偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

JSP引擎的工作原理

開(kāi)發(fā) 后端
本文介紹JSP引擎的工作原理,以及JSP運(yùn)行環(huán)境,JSP生命周期和JSP網(wǎng)絡(luò)應(yīng)用服務(wù)器框架等。

JSP運(yùn)行環(huán)境:

執(zhí)行JSP代碼需要在服務(wù)器上安裝JSP引擎,比較常見(jiàn)的引擎有WebLogic和Tomcat。把這些支持JSP的web服務(wù)器配置好后。就可以再客戶(hù)端通過(guò)瀏覽器來(lái)訪問(wèn)JSP頁(yè)面了。默認(rèn)端口一般是7001.

JSP生命周期:

JSP處理請(qǐng)求的方法就是把這些請(qǐng)求都統(tǒng)一看做Servlet。由于這個(gè)原因,JSP的很多功能和生命周期,都由Java Servlet技術(shù)標(biāo)準(zhǔn)定義的。這種限制,在動(dòng)態(tài)內(nèi)容方面更加明顯。所以學(xué)習(xí)JSP的時(shí)候,需要溫習(xí)Servlet的內(nèi)容和標(biāo)準(zhǔn)。

JSP網(wǎng)絡(luò)應(yīng)用服務(wù)器框架:

在符合J2EE規(guī)范的服務(wù)器構(gòu)建起來(lái)之后,就可以編寫(xiě)JSP頁(yè)面了,在HTML頁(yè)面中嵌入JSP腳本,該頁(yè)面就成為JSP頁(yè)面了。JSP腳本用特定的標(biāo)記括起來(lái),如<%...%>,或者<JSP>…</JSP>。JSP的工作流程如下:當(dāng)其讀到HTML的代碼的時(shí)候,就直接輸出到客戶(hù)端,而如果讀到嵌入JSP腳本的時(shí)候,就需要對(duì)這些腳本進(jìn)行另外的翻譯和處理,得到輸出之后再輸出到客戶(hù)端。

下面通過(guò)一個(gè)簡(jiǎn)單頁(yè)面編寫(xiě)來(lái)了解JSP網(wǎng)絡(luò)應(yīng)用的框架:

1.JSP客戶(hù)端交互

JSP的大部分工作就是與客戶(hù)端進(jìn)行交互??蛻?hù)端一般指的是瀏覽器,它們與置于服務(wù)器端得JSP頁(yè)面進(jìn)行交互。JSP腳本中所有的Java語(yǔ)句都是在服務(wù)器執(zhí)行,服務(wù)器接受客戶(hù)端提交的請(qǐng)求,通過(guò)一定的處理之后,將結(jié)果返回給客戶(hù)端,客戶(hù)端得到的僅僅是HTML代碼。下面是一個(gè)JSP的HelloWorld程序代碼:

  1. <html> 
  2. <head> 
  3. <title>HelloWorld for JSP</title> 
  4. </head> 
  5. <body> 
  6. <h1>HelloWord for JSP</h1> 
  7. <%out.println("<h3>Hello World!</h3>");%> 
  8. </body> 
  9. </html> 

2.交互過(guò)程的流程

在一般的客戶(hù)端和服務(wù)器端的交互中,是用HTTP協(xié)議,客戶(hù)端通過(guò)下面4個(gè)步驟也服務(wù)器段進(jìn)行交互:

(1)客戶(hù)端和服務(wù)器端建立連接

(2)發(fā)送客戶(hù)端請(qǐng)求

(3)服務(wù)器返回應(yīng)答給客戶(hù)

(4)客戶(hù)端關(guān)閉連接

所有的請(qǐng)求都是由客戶(hù)端主動(dòng)發(fā)出的,而服務(wù)器一直出于被動(dòng)的監(jiān)聽(tīng)狀態(tài)。用戶(hù)在瀏覽器鍵入要訪問(wèn)的地址,按回車(chē)鍵確認(rèn)后,瀏覽器開(kāi)始與服務(wù)器建立連接,從這時(shí)開(kāi)始,就開(kāi)始了一次交互過(guò)程。瀏覽器通過(guò)一段時(shí)間的等待后,從服務(wù)器得到響應(yīng),并且把相應(yīng)的信息以HTML方式呈現(xiàn)給用戶(hù)。用戶(hù)在瀏覽網(wǎng)站的過(guò)程中,實(shí)際上包含了很多這樣的交互應(yīng)答過(guò)程。在客戶(hù)端與JSP頁(yè)面的交互過(guò)程中,只有服務(wù)器接收請(qǐng)求和返回應(yīng)答的動(dòng)作可能不一樣,其他與上面過(guò)程基本一致?;厩闆r如下:

(1)服務(wù)器在收到一個(gè)請(qǐng)求后首先要分析這個(gè)請(qǐng)求,如果請(qǐng)求的頁(yè)面只是一般的HTML頁(yè)面,服務(wù)器就直接讀出HTML頁(yè)面并返回給客戶(hù)端

(2)如果客戶(hù)端請(qǐng)求的是JSP頁(yè)面,服務(wù)器調(diào)用JSP引擎翻譯處理所請(qǐng)求的JSP頁(yè)面,并將翻譯和處理之后的HTML返回給客戶(hù)端

(3)如果遇到JavaBeans組件,JSP引擎將調(diào)用相應(yīng)的JavaBeans組件,得到JavaBeans的返回值,***返回給JSP頁(yè)面

3.JSP引擎的工作原理

當(dāng)一個(gè)JSP頁(yè)面***次被訪問(wèn)的時(shí)候,JSP引擎將執(zhí)行以下步驟:

(1)將JSP頁(yè)面翻譯成一個(gè)Servlet,這個(gè)Servlet是一個(gè)java文件,同時(shí)也是一個(gè)完整的java程序

(2)JSP引擎調(diào)用java編譯器對(duì)這個(gè)Servlet進(jìn)行編譯,得到可執(zhí)行文件class

(3)JSP引擎調(diào)用java虛擬機(jī)來(lái)解釋執(zhí)行class文件,生成向客戶(hù)端發(fā)送的應(yīng)答,然后發(fā)送給客戶(hù)端

以上三個(gè)步驟僅僅在JSP頁(yè)面***次被訪問(wèn)時(shí)才會(huì)執(zhí)行,以后的訪問(wèn)速度會(huì)因?yàn)閏lass文件已經(jīng)生成而大大提高。當(dāng)JSP引擎街道一個(gè)客戶(hù)端的訪問(wèn)請(qǐng)求時(shí),首先判斷請(qǐng)求的JSP頁(yè)面是否比對(duì)應(yīng)的Servlet新,如果新,對(duì)應(yīng)的JSP需要重新編譯。

4.對(duì)請(qǐng)求信息的處理

在大部分的交互過(guò)程中,一個(gè)JSP頁(yè)面首先對(duì)用戶(hù)提出的請(qǐng)求進(jìn)行分析,然后從請(qǐng)求中得到有用的數(shù)據(jù),比如接收用戶(hù)提交的數(shù)據(jù)或者請(qǐng)求的方法,然后進(jìn)行相應(yīng)的處理。而這就需要了解得到傳入?yún)?shù)的方法和得到用戶(hù)其他信息的方法。

(1)得到傳入?yún)?shù)的方法

在交互過(guò)程中,服務(wù)器必須從客戶(hù)端得到一些數(shù)據(jù),來(lái)幫助處理過(guò)程的進(jìn)行。這些數(shù)據(jù)包括用戶(hù)身份驗(yàn)證數(shù)據(jù)(如用戶(hù)名、密碼等)以及其他中要信息。而這些數(shù)據(jù)的載體,就是用戶(hù)提交的請(qǐng)求。請(qǐng)求的組成主要有兩部分,一是頭信息。頭信息包含了以下信息:請(qǐng)求的方法(GET和POST)、請(qǐng)求的URL和瀏覽器信息。其他信息包含了一些數(shù)據(jù)信息。

首先要了解的是GET方法發(fā)送請(qǐng)求時(shí),這種方法是客戶(hù)端用來(lái)向服務(wù)器段請(qǐng)求信息的,所以在請(qǐng)求中不包含信息體。用戶(hù)只能把請(qǐng)求的內(nèi)容作為參數(shù)附加在URL后面進(jìn)行發(fā)送,參數(shù)之間用“&”符號(hào)隔開(kāi),如代碼:一個(gè)典型的GET請(qǐng)求的表單get.html

  1. <html> 
  2. <head> 
  3. <title>Get</title> 
  4. </head> 
  5. <body> 
  6. <h1>Get Method</h1> 
  7. <form action = "submit.jsp" method = "GET"> 
  8.     username<input name = "uername" value = "aaa"><br> 
  9.     password<inpput type = password name = "password" value = "111111"><br> 
  10.     <input type = submit value = "submit"> 
  11. </form> 
  12. </body> 
  13. </html> 

(代碼中有一個(gè)表單,表單在定義的時(shí)候,定義了屬性method=“GET”,這表明表單提交的方法是GET。這個(gè)表單向服務(wù)器提交兩個(gè)參數(shù),其中一個(gè)是username,缺省值為aaa,另外一個(gè)是password,其缺省值是111111。)

這個(gè)頁(yè)面只是得到了輸入數(shù)據(jù),只有submit.JSP才能實(shí)現(xiàn)提交這個(gè)頁(yè)面的數(shù)據(jù)。這就是需要用到JSP了,代碼如下:submit.JSP

  1. <html> 
  2. <head> 
  3. <title>submit</title> 
  4. </head> 
  5. <body> 
  6. <h1>submit</h1> 
  7. request method:<%=request.getMethod() %><br> 
  8. user name:<%=request.getParameter("user") %><br> 
  9. password:<%=request.getParameter("password") %><br> 
  10. </body> 
  11. </html> 

在這個(gè)JSP頁(yè)面中是用了JSP的內(nèi)置對(duì)象request的兩個(gè)方法,一個(gè)是getMethod,用來(lái)獲取當(dāng)前請(qǐng)求的類(lèi)型,另一個(gè)是getParameter,用來(lái)獲取指定參數(shù)的值。在get.html中單擊submit按鈕,就可以顯示表單請(qǐng)求方法,用戶(hù)名以及密碼等信息。

(2)得到其他信息的方法

得到非用戶(hù)輸入的其他參數(shù)信息,就需要用到其他的方法。如下所示是一個(gè)得到客戶(hù)端信息的簡(jiǎn)單程序。根據(jù)這個(gè)程序我們可以初步了解如何得到客戶(hù)端信息的大致思路。代碼如下:

  1. <html> 
  2. <head> 
  3. <title>得到消息</title> 
  4. </head> 
  5. <body> 
  6.     <h1>請(qǐng)求中所包含的URL</h1><br> 
  7.     <%=request.getQueryString()%><br> 
  8. </body> 
  9. </html> 

【編輯推薦】

  1. 詳解JSP中調(diào)用JavaBean
  2. JSP開(kāi)發(fā)環(huán)境的搭建
  3. 解決JSP開(kāi)發(fā)Web程序中文顯示三種方法
  4. 開(kāi)發(fā)JSP HTTP服務(wù)器
  5. JSP、ASP和PHP安全編程
責(zé)任編輯:佚名 來(lái)源: 百度博客
相關(guān)推薦

2016-12-26 13:41:19

大數(shù)據(jù)搜索引擎工作原理

2010-08-30 08:55:56

JavaScript引

2020-10-30 09:00:00

JavaScriptJavaScript引前端

2009-07-03 17:41:47

JavaBean Se

2009-06-30 10:33:00

JSP JavaBeaServlet

2011-06-28 18:26:59

SEO搜索引擎

2009-07-03 17:48:34

JSP頁(yè)面翻譯

2025-09-04 01:33:00

Flowable工作流引擎

2010-08-02 16:14:54

2013-06-04 13:53:30

OSPF路由協(xié)議OSPF協(xié)議OSPF

2019-08-20 14:01:22

HTTPSSSL協(xié)議

2010-05-05 16:47:57

Unix Tripwi

2009-08-27 17:13:20

DHCP的工作原理

2020-05-19 09:11:20

機(jī)器學(xué)習(xí)技術(shù)數(shù)據(jù)

2009-06-18 13:31:03

Spring工作原理

2009-08-14 13:19:23

2023-11-22 08:35:34

存儲(chǔ)引擎bitcask

2021-10-14 11:34:05

技術(shù)工作流引擎

2015-07-14 09:26:28

微型工作流引擎設(shè)計(jì)

2009-09-23 15:37:52

Hibernate 原
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)