日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

新手的JSP學(xué)習(xí)心得之(一)_JSP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:解析Hibernate+Struts結(jié)合開發(fā)
隨著Java技術(shù)的逐漸成熟與完善,作為建立企業(yè)級(jí)應(yīng)用的標(biāo)準(zhǔn)平臺(tái),J2EE平臺(tái)得到了長足的發(fā)展。借助于J2EE規(guī)范中包含的多項(xiàng)技術(shù):Enterprise JavaBean(EJB)、Java Servlets(Servlet)、Java Server Pages( JSP )、Java Message Service(JMS)等,開發(fā)出了許多應(yīng)用

一、JSP工作原理 

在一個(gè)JSP文件第一次被請(qǐng)求時(shí),JSP引擎把該JSP文件轉(zhuǎn)換成為一個(gè)servlet。而這個(gè)引擎本身也是一個(gè)servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。 JSP引擎先把該JSP文件轉(zhuǎn)換成一個(gè)Java源文件,在轉(zhuǎn)換時(shí)如果發(fā)現(xiàn)jsp文件有任何語法錯(cuò)誤,轉(zhuǎn)換過程將中斷,并向服務(wù)端和客戶端輸出出錯(cuò)信息;如果轉(zhuǎn)換成功, JSP引擎用javac把該Java源文件編譯成相應(yīng)class文件。然后創(chuàng)建一個(gè)該SERVLET實(shí)例,該SERVLETjspInit()方法被執(zhí)行,jspInit()方法在servlet生命周期中只被執(zhí)行一次。然后jspService()方法被調(diào)用來處理客戶端請(qǐng)求。對(duì)每一個(gè)請(qǐng)求,JSP引擎創(chuàng)建一個(gè)新線程來處理該請(qǐng)求。如果有多個(gè)客戶端同時(shí)請(qǐng)求該JSP文件,則JSP引擎會(huì)創(chuàng)建多個(gè)線程。每個(gè)客戶端請(qǐng)求對(duì)應(yīng)一個(gè)線程。以多線程方式執(zhí)行可大大降低對(duì)系統(tǒng)資源需求,提高系統(tǒng)并發(fā)量及響應(yīng)時(shí)間.但應(yīng)該注意多線程編程限制,由于該servlet始終駐于內(nèi)存,所以響應(yīng)是非�?�。 如果.jsp文件被修改了,服務(wù)器將根據(jù)設(shè)置決定是否對(duì)該文件重新編譯,如果需要重新編譯,則將編譯結(jié)果取代內(nèi)存中servlet,并繼續(xù)上述處理過程。 雖然JSP效率很高,但在第一次調(diào)用時(shí)由于需要轉(zhuǎn)換和編譯而有一些輕微延遲。 此外,如果在任何時(shí)候如果由于系統(tǒng)資源不足原因,JSP引擎將以某種不確定方式將servlet從內(nèi)存中移去。當(dāng)這種情況發(fā)生時(shí)jspDestroy()方法首先被調(diào)用, 然后servlet實(shí)例便被標(biāo)記加入"垃圾收集"處理。 jspInit()及jspDestory()格式如下:可在jspInit()中進(jìn)行一些初始化工作,如建立與數(shù)據(jù)庫連接,或建立網(wǎng)絡(luò)連接,從配置文件中取一些參數(shù)等,在jspDestory()中釋放相應(yīng)資源。 
<%! 
public void jspInit() 

System.out.println("jspinit"); 
} %> 

<%! 
public void jspDestory() 

System.out.println("jspDestory"); 

%> 
二、服務(wù)端輸出緩沖區(qū) 

缺省情況下:服務(wù)端要輸出到客戶端內(nèi)容,不直接寫到客戶端,而是先寫到一個(gè)輸出緩沖區(qū)中.只有在下面三中情況下,才會(huì)把該緩沖區(qū)內(nèi)容輸出到客戶端上: 
該JSP網(wǎng)頁已完成信息輸出 
輸出緩沖區(qū)已滿 
JSP中調(diào)用了out.flush()或response.flushbuffer() 
輸出緩沖區(qū)大小可以用:<%@page buffer="none"|"nkb"%>或response.setBufferSize()設(shè)置,如下: 設(shè)置輸出緩沖區(qū)大小為1KB。<%@page buffer="1kb"%>或response.setBufferSize(1); 
設(shè)置輸出緩沖區(qū)大小為0,即不緩沖。<%@page buffer="none" %>或response.setBufferSize(0); 
用response.getBufferSize()或out.getBufferSize()可取輸出緩沖區(qū)大小,單位為字節(jié). 用response.isCommitted()可檢查看服務(wù)端是否已將數(shù)據(jù)輸出到客戶端. 如果返回值是TRUE則已將數(shù)據(jù)輸出到客戶端,是FALSE則還沒有. 
三、服務(wù)端輸出重定向

有以下3種方法可以做到輸出重定向: 
RESPONSE.SETREDERECT("URL") 該方法通過修改HTTP協(xié)議HEADER部分,對(duì)瀏覽器下達(dá)重定向指令,使瀏覽器顯示重定向網(wǎng)頁內(nèi)容. response.sendRedirect("http://localhost:7001/index.html"); 
下面方法也能改變HTTP HEADER屬性,它原理和 1 是一樣. 
<% 
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); 
String newLocn="/index.html"; 
response.setHeader("Location",newLocn); 
% > 
采用<jsp:forword> 該方法是利用服務(wù)器端先將數(shù)據(jù)輸出到緩沖區(qū)機(jī)制,在把緩沖區(qū)內(nèi)容發(fā)送到客戶端之前,原來不發(fā)送,改為發(fā)送該頁面內(nèi)容,如果在<jsp:forword>之前有很多輸出,前面輸出已使緩沖區(qū)滿,將自動(dòng)輸出到客戶端,那么該語句將不起作用,這一點(diǎn)應(yīng)該特別注意. 如下面例子中(1)會(huì)輸出index.html內(nèi)容,2 不會(huì)輸出index.html內(nèi)容,而是輸出out.println("@@@@@@@@@@@@@@@@@"); 中內(nèi)容,并且在服務(wù)端會(huì)拋出:java.lang.IllegalStateException: Response already committed 異常,但客戶端沒有任何錯(cuò)誤輸出。 </jsp:forword></jsp:forword> 

分享:解析Struts配置教程
Struts框架是目前流行的JSP開發(fā)框架,本文就其進(jìn)行了基礎(chǔ)講解。 首先下載Struts軟件包,到http://struts.apache.org/下載Struts,Struts各版本的差異很大,這里已Struts1.2.9版本為例,解壓縮包內(nèi)容如下: 1、在tomcat安裝目錄下的webapps目錄中建立一個(gè)webj

共2頁上一頁12下一頁
來源:模板無憂//所屬分類:JSP教程/更新時(shí)間:2010-03-11
相關(guān)JSP教程