版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、JSP示例(Hello.jsp),, 你好 , 你好 你好 ,,,JSP執(zhí)行過程,,*.jsp,*.java,*.class,servlet,,servlet 分析器,JSP執(zhí)行過程,,三、JSP編程基礎(chǔ),Java特性及入門基礎(chǔ)HTML簡(jiǎn)介3. JavaScript簡(jiǎn)介,3.2 HTML簡(jiǎn)介,HTML頁面的基本結(jié)構(gòu) 01.html使用鏈接標(biāo)記
2、 link-.html使用字體標(biāo)記 font.htmlform標(biāo)記的使用table標(biāo)記的使用,HTML表單,Web運(yùn)行原理HTML表單的概念表單元素介紹HTML表單的客戶端確認(rèn)服務(wù)器端的確認(rèn),Web運(yùn)行原理,客戶端同Web服務(wù)器之間的協(xié)議為httpHTTP為超文本傳輸協(xié)議HTPP協(xié)議為“請(qǐng)求和響應(yīng)”協(xié)議客戶端請(qǐng)求包括:請(qǐng)求行、頭、信息體客戶端請(qǐng)求的方法GET、POST
3、、HEADDELETE、TRACE、PUT提交表單的方法: GET、POST,Web運(yùn)行原理,服務(wù)器接收到請(qǐng)求后,返回HTTP響應(yīng)每個(gè)響應(yīng):狀態(tài)行、頭、信息體常見狀態(tài)404 所請(qǐng)求的文件不存在500 服務(wù)器程序出錯(cuò)200 OK 成功信息體用于瀏覽器顯示,HTML表單,表單是具有輸入域、文本域的頁面用于客戶端同服務(wù)器端交互用戶在客戶端填寫表單,然后“提交”表單中的信息發(fā)送到服務(wù)器服務(wù)器返回處理情況,HTML表
4、單標(biāo)記,表單主標(biāo)記 表單中的標(biāo)記 是表單開始標(biāo)記,結(jié)束,表單的例子,表單 用戶登錄 用戶名: 密碼: ,運(yùn)行結(jié)果,form標(biāo)記,描述表單的特性,語法method表單傳輸方法GET方法POST方法action為表單處理方式,通常為一個(gè)URLenctype為編碼方式,標(biāo)記,表單中輸入信息的區(qū)域?qū)傩?/p>
5、type 類型name 名稱id 標(biāo)識(shí)maxlength 最大字符數(shù)size 輸入域?qū)挾葀alue 域的初始值button 按鈕 用javascript響應(yīng),的類型,text 文本passwowrd 口令方式checkbox 多選框 name相同radio 單選按鈕 name相同image 圖片hidden 隱藏表單 發(fā)送數(shù)據(jù)submit 提交按鈕 向服務(wù)器提
6、交表單reset 復(fù)位按鈕 將表單充置為初始狀態(tài),文本框:TEXTAREA,多行文本域: 參數(shù)COLS:寬度ROWS:高度NAME:名稱CPU PIV 1500Memory 512M ,下拉框:SELECT,定義列表框: 參數(shù)MULTIPLE 可同時(shí)選取多行NAME 名稱SIZE 可見項(xiàng)目數(shù)每個(gè)項(xiàng)目用option標(biāo)記屬性SELECTED出現(xiàn)在option表示選中,select的例子,
7、 北京 天津 上海 重慶 ,表單提交,提交方式:submit類型按鈕提交表單通過普通按鈕的javascript函數(shù)傳輸方法依據(jù)中的method推薦使用POST傳輸編碼依據(jù)中的enctype處理方式依據(jù)中的action ,表單清除,reset按鈕重置表單為初始值 ,綜合例子,表單 用戶注冊(cè)用戶名: 密
8、碼: 你喜歡: 足球 籃球, 性別: 男 女 你的計(jì)算機(jī)CPU PIV 1500Memory 512M 你計(jì)算機(jī)的操作系統(tǒng), 你所在地: 北京 天津 上海 重慶 ,運(yùn)行結(jié)果,表單的確認(rèn),客
9、戶端確認(rèn)減少服務(wù)器負(fù)載縮短用戶等待時(shí)間兼容性難服務(wù)器端確認(rèn)統(tǒng)一確認(rèn)兼容性強(qiáng)服務(wù)器負(fù)載重,客戶端確認(rèn),采用javascript進(jìn)行確認(rèn)常用函數(shù)isBetweenisDateisTimeisDigitisEmailisEmptyisIntisReal,客戶端確認(rèn)例子,客戶端確認(rèn) 用戶登錄 用戶名: 密碼:
10、 ,function checkform(frm){var flag=true;if(frm.name.value==""){ alert("姓名不能為空,請(qǐng)輸入值!"); frm.name.focus(); flag=false; }return flag;},運(yùn)行結(jié)果,JSP與客戶機(jī)的交互,從表單中獲得參數(shù)返回
11、參數(shù)表單的服務(wù)器端確認(rèn),從表單中獲得參數(shù),JSP通過request內(nèi)置對(duì)象獲取表單信息用不同的方法獲取不同種類的信息獲取參數(shù)的主要方法:getParameter() 獲取參數(shù)的值getParameterNames() 獲取所有參數(shù)名的枚舉getParameterValues() 獲取一個(gè)參數(shù)的多個(gè)值,getParameter(),可以獲得文本框、文本區(qū)域、單選、多選的值表單中各元素的NAME屬性是它的唯一標(biāo)識(shí),用
12、它獲取參數(shù)。例如: request.getParameter("User");,向客戶端輸出,使用內(nèi)置對(duì)象out out.println(“用戶名:" +User+"");使用“”使用內(nèi)置對(duì)象applicatioin 位訪問者! ……,表單的服務(wù)器端確認(rèn),在客戶端不能用JSP進(jìn)行確認(rèn)分工:數(shù)據(jù)處理在服務(wù)器端實(shí)效性:客戶端得到
13、服務(wù)器確認(rèn)后表明數(shù)據(jù)已經(jīng)到達(dá)服務(wù)器客戶端兼容性好缺點(diǎn):增加服務(wù)器負(fù)載和用戶等待時(shí)間,服務(wù)器端確認(rèn)方法,采用Java類對(duì)表單數(shù)據(jù)進(jìn)行檢查采用JSP進(jìn)行確認(rèn),服務(wù)器端確認(rèn)的例子,服務(wù)器端確認(rèn) 用戶登錄 用戶名: 密碼: ,loginAction.jsp,確認(rèn)JSP");out.println("密碼:"+pwd+&qu
14、ot;");}else{%>,用戶名不能為空 用戶登錄 用戶名:"> 密碼:"> ,運(yùn)行結(jié)果(TOMCAT),(未輸入姓名)直接提交,輸入用戶名,輸入用戶名后提交,3.3 JavaScript簡(jiǎn)介,JavaScript是腳本語言,用來實(shí)現(xiàn)客戶端的特效,客戶端用
15、戶信息輸入的驗(yàn)證等。myjsp/02/formcheck.htm,四、 服務(wù)器配置,Tomcat應(yīng)用服務(wù)器Resin應(yīng)用服務(wù)器,五、 JSP語法,JSP的腳本語句JSP的編譯指示語句JSP的動(dòng)作語句,JSP文件結(jié)構(gòu)及主要標(biāo)簽,... 其他 HTML 語言 其他 HTML 語言 ,JSP示例(Hello_Date.jsp),, 你好,今天是 號(hào), 星期 ,
16、import java.util.*;response.setContentType("text/html; charset=gb2312");out = pageContext.getOut();out.write(“\r\n\r\n\r\n \r\n你好,今天是\r\n"); Date today=new Date();out.print(
17、today.getDate());out.write("號(hào),星期");out.print(today.getDay());out.write(" \r\n \r\n\r\n ");,,JSP文件,servlet文件,JSP語法概述,JSP原始代碼中包含了JSP元素和Template(模板) data兩類 Template data指的是JSP引擎不處理的部分,即標(biāo)記以外的部分,例如代碼中
18、的HTML的內(nèi)容等 ,這些數(shù)據(jù)會(huì)直接傳送到客戶端的瀏覽器JSP元素則是指將由JSP引擎直接處理的部分,這一部分必須符合JSP語法,否則會(huì)導(dǎo)致編譯錯(cuò)誤。,jsp例子(hi.jsp),Hi-JSP實(shí)驗(yàn) ,,,Template data,JSP元素,JSP語法,JSP語法分為三種不同的類型 編譯器指令(DIRECTIVE) 例如: 腳本語法(SCRI
19、PTING) 動(dòng)作語法(ACTION) 例如: ,,JSP中的腳本語句,腳本語句包括“HTML注釋”:“隱藏注釋”:“聲明”: “表達(dá)式” “腳本段” ,JSP的編譯指示語句,編譯器指令包括“include”指令, “page”指令和“taglib”指令它們包含在“”卷標(biāo)里。,JSP的動(dòng)作語句,動(dòng)作語法包括 ,,, ,,。,HTML注釋,JSP 語法格式如下: ] --> 或 ] -->
20、這種注釋發(fā)送到客戶端,但不直接顯示,在源代碼中可以查看到,JSP指令仍被編譯執(zhí)行。,HTML注釋(teach\4-1.jsp),HTML>HTML注釋顯示出來的文字!,HTML注釋(4-2.jsp),要多加練習(xí) 被訪問 -->在源文件中包括當(dāng)前時(shí)間。 ,隱藏注釋,JSP 語法格式如下: JSP編譯器不對(duì)之間的語句進(jìn)行編譯,不發(fā)送到客戶端,在瀏覽器中的”查看源代碼”中看不到。
21、,隱藏注釋 (4-3.jsp), A Comment Test A Test of Comments ,聲明,JSP 語法格式如下: ,4-4.jsp,表達(dá)式,用于在頁面上輸出信息,語法格式如下: ,表達(dá)式(4-5.jsp), test , a=b=c=,4-5.jsp執(zhí)行結(jié)果,Scriptlet腳本段,JSP 語法格式如下:,
22、");break; case 1: out.println("You select condition 1!"+""); break; case 2:out.println("You select condition 2!"+""); break; de
23、fault:out.println("Your select not in 0,1,2“); }%> ,4-6.jsp,include包含指令,include指令:向當(dāng)前頁中插入一個(gè)靜態(tài)文件或動(dòng)態(tài)文件。JSP 語法格式如下: 或, test The current date and time are
24、 //curDate.jsp ,Page指令,“Page”指令用于定義JSP文件中的全局屬性。 JSP 語法格式如下:<%@ page [ language="java" ] [ extends="package.class" ] [import="{package.class | package.*},..." ]
25、[ session="true | false" ] [ buffer="none | 8kb | sizekb" ],Page指令,[ autoFlush="true | false" ] [ isThreadSafe="true | false" ] [ info="text" ] [ e
26、rrorPage="relativeURL" ] [ contentType="mimeType [;charset=characterSet]" | "text/html; charset=ISO-8859-1" ] [ isErrorPage="true | false" ] %>,page指令詳說,“”指令作用于整個(gè)J
27、SP頁面,同樣包括靜態(tài)的包含文件。但是“”指令不能作用于動(dòng)態(tài)的包含文件,比如 “”。可以在一個(gè)頁面中用上多個(gè)“”指令,但是其中的屬性只能用一次,不過也有例外,那就是import屬性。因?yàn)閕mport屬性和Java中的import語句類似(參照J(rèn)ava Language,import語句引入得是Java語言中的類),所以此屬性就能多用幾次。無論把“”指令放在JSP的文件的哪個(gè)地方,它的作用范圍都是整個(gè)JSP頁面。不過,為了JSP程序的
28、可讀性,以及好的編程習(xí)慣,最好還是把它放在JSP文件的頂部。,page指令(4-9.jsp), testTest for using 'Page'.,taglib指令,JSP語法 用于引入定制標(biāo)簽庫,taglib指令,屬性1.uri="URIToTagLibrary" Uniform Resource Identifier (URI)根據(jù)標(biāo)簽的前綴對(duì)自定義的標(biāo)
29、簽進(jìn)行唯一的命名,URI可以是以下的內(nèi)容:Uniform Resource Locator (URL), 由 RFC 2396 定義, 可以從以下位置查看 (http://www.hut.fi/u /jkorpela/rfc/2396/full.html)。 Uniform Resource Name (URN), 由 RFC 2396定義 一個(gè)相對(duì)或絕對(duì)的路徑 可以是標(biāo)簽庫描述文件,2.prefix=&q
30、uot;tagPrefix" 表示標(biāo)簽在JSP中的名稱。在自定義標(biāo)簽之前的前綴,比如,在中的public,如果這里不寫public,那么這就是不合法的。請(qǐng)不要用jsp, jspx, java, javax, servlet, sun, 和sunw做為你的前綴,這些已被Sun公司聲明保留。,Tablib示例, test ,,JSP語法格式如下:1."} />
31、 2."} > }" /> [] (可以有多個(gè) [] … ]標(biāo)記。),1、page="{relativeURL | }" 這里是一個(gè)表達(dá)式或是一個(gè)字符串用于說明你將要定向的文件或URL。這個(gè)文件可以是JSP,程序段,或者其它能夠處理request對(duì)象的文件(如asp,cgi,php)。 2.}" /> 向一個(gè)動(dòng)態(tài)文件發(fā)送一
32、個(gè)或多個(gè)參數(shù),如果想傳遞多個(gè)參數(shù),可以在一個(gè)JSP文件中使用多個(gè)“”;“name”指定參數(shù)名,“value”指定參數(shù)值。3. “”標(biāo)簽從一個(gè)JSP文件向另一個(gè)文件傳遞一個(gè)包含用戶請(qǐng)求的request對(duì)象?!啊睒?biāo)簽以后的代碼將不執(zhí)行。,例子,test,forwardTo.jsp,,(teach/jsp4/forward.html, testforward1.jsp),,包含一個(gè)靜態(tài)或動(dòng)態(tài)
33、文件,JSP 語法格式如下:1.}" flush="true" /> 2.}" flush="true" >}" /> [] (“[]”指可以有多個(gè)“”標(biāo)記)注意:在JSP頁面被請(qǐng)求時(shí)才將指定文件的內(nèi)容插入到服務(wù)器的 響應(yīng)輸出中。,的屬性,1.page="{relativeURL
34、 | }" 參數(shù)為一相對(duì)路徑,或者是代表相對(duì)路徑的表達(dá)式。 2.flush="true" 這里必須使用flush=“true”,不能使用false值。而缺省值為false 。3. }"/> “”用來傳遞一個(gè)或多個(gè)參數(shù)到指定的動(dòng)態(tài)文件,能在一個(gè)頁面中使用多個(gè)“”來傳遞多個(gè)參數(shù),, 例子(peixun2.10.jsp),peixun.2.10.jsp
35、 ,included.jsp,");%>,運(yùn)行結(jié)果,,使用“”插入一個(gè)applet或Bean,必要的話還要下載一個(gè)Java插件用于執(zhí)行它。JSP 語法格式如下:<jsp:plugin type="bean | applet" code="classFileName" codebase="classFileDirectoryN
36、ame",[ name="instanceName" ] [ archive="URIToArchive, ..." ] [ align="bottom | top | middle | left | right"] [ height="displayPixels" ] [ width="displayPixels" ]
37、 [ hspace="leftRightPixels" ] [ vspace="topBottomPixels" ] [ jreversion="JREVersionNumber | 1.1" ] [ nspluginurl="URLToPlugin" ] [ iepluginurl="URLToPlugin" ] >,[
38、 [ }" /> ] ] [ text message for user ] ,例子, Unable to load applet
39、160; ,,創(chuàng)建一個(gè)JavaBean實(shí)例并指定它的名字和作用范圍。 JSP 語法格式如下: ,屬性以及用法,1.id="beanInstanceName" 在所定義的范圍中確認(rèn)Bean的變量,使之能在后面的程序中使用此變量名來分辨不同的Bean ,這個(gè)變量名對(duì)大小寫敏感,必須符合所使用的腳本語言的規(guī)定,這個(gè)規(guī)定在Java Language 規(guī)范已經(jīng)寫明。如果Bean已經(jīng)在別的“”
40、標(biāo)記中創(chuàng)建,則當(dāng)使用這個(gè)已經(jīng)創(chuàng)建過Bean時(shí),id的值必須與原來的那個(gè)id值一致;否則則意味著創(chuàng)建了同一個(gè)類的兩個(gè)不同的對(duì)象。,2.scope="page|request|session|application" Bean存在的范圍以及id變量名的有效范圍。缺省值是page,以下是詳細(xì)說明: page - 能在包含“”元素的JSP文件以及此文件中的所有靜態(tài)包含文件中使用這個(gè)Bean,直到頁面執(zhí)行完畢向客戶端
41、發(fā)回響應(yīng)或轉(zhuǎn)到另一個(gè)文件為止。request - 在任何執(zhí)行相同請(qǐng)求的Jsp文件中使用這個(gè)Bean,直到頁面執(zhí)行完畢向客戶端發(fā)回響應(yīng)或轉(zhuǎn)到另一個(gè)文件為止。能夠使用Request對(duì)象訪問這個(gè)Bean,比如request.getAttribute(beanInstanceName)。 session - 從創(chuàng)建Bean開始,就能在任何使用相同session的jsp文件中使用這個(gè)Bean。這個(gè)Bean存在于整個(gè)Session生存周期內(nèi),任
42、何在分享此Session的Jsp文件都能使用同一Bean。注意在創(chuàng)建這個(gè)Bean的Jsp文件中“”指令中必須指定“session=”true“”。application - 從創(chuàng)建Bean開始,就能在任何使用相同application的Jsp文件中使用Bean。這個(gè)Bean存在于整個(gè)application生存周期內(nèi),任何在分享此application的Jsp文件都能使用同一Bean.,3.class="package.cla
43、ss" 使用new關(guān)鍵字以及class構(gòu)造器從一個(gè)class中實(shí)例化一個(gè)bean。這個(gè)class不能是抽象的,必須有一個(gè)公用的,沒有參數(shù)的構(gòu)造器。這個(gè)package的名字區(qū)別大小寫。 4.type="package.class" 如果這個(gè)Bean已經(jīng)在指定的范圍中存在,那么賦予這個(gè)Bean一個(gè)的數(shù)據(jù)類型 。如果使用type屬性的同時(shí)沒有使用class或beanName,Bean將不
44、會(huì)被實(shí)例化。注意package和class的名稱區(qū)分大小寫。,,JSP 語法格式如下: 1.name="beanInstanceName" bean的名字,由指定。 2.property="propertyName" 所指定的Bean的屬性名。,例子,//聲明引用的beantest Calendar of ,,設(shè)置Be
45、an的屬性值. JSP 語法格式如下:}" />,屬性,1.name="beanInstanceName" 表示已經(jīng)在“”中創(chuàng)建的Bean實(shí)例的名字。2.property="*" 儲(chǔ)存用戶在jsp輸入的所有值,用于匹配Bean中的屬性。3.property="propertyName" [ param="parameterNa
46、me" ] 用一個(gè)參數(shù)值來指定Bean中的一個(gè)屬性值,一般情況下是從request對(duì)象中獲得的。其中property指定Bean的屬性名,param指定request中的參數(shù)名。4.property="propertyName" value="{string | }" 使用指定的值來設(shè)定Bean屬性。這個(gè)值可以是字符串,也可以是表達(dá)式。如果這個(gè)字符串,那么它就會(huì)被轉(zhuǎn)換成Bean屬性
47、的類型。如果是一個(gè)表達(dá)式,那么它的類型就必須和將要設(shè)定的屬性值的類型一致。 如果參數(shù)值為空值,那么對(duì)應(yīng)的屬性值也不會(huì)被設(shè)定。此外,不能在同一個(gè)“”中同時(shí)使用param和value參數(shù) 。,package myBean;public class Student { private long classNo; private String name; private int age; private boolean sexy;
48、 public Student() {//構(gòu)造函數(shù) classNo=970431; name="ZZZl"; age=34; sexy=true; } public long getClassNo() { return classNo; } public void setClassNo(long no) { this.classN
49、o=no; },例://建立javaBean: myBean.Student,例子,public String getName() { return name; } public void setName(String name) { this.name=name; } public int getAge() { return age; } public void set
50、Age(int age) { this.age=age; } public boolean getSexy() { return sexy; } public void setSexy(boolean sexy) { this.sexy=sexy; }}, ,,第一次運(yùn)行結(jié)果,以后運(yùn)行結(jié)果,第一行發(fā)生變化,測(cè)試ses
51、sion作用域, , ,運(yùn)行結(jié)果,3.4 JSP內(nèi)置對(duì)象,JSP 有以下九種內(nèi)置對(duì)象,包括:request,請(qǐng)求對(duì)象response,響應(yīng)對(duì)象pageContext,頁面上下文對(duì)象session,會(huì)話對(duì)象application,應(yīng)用程序?qū)ο髈ut,輸出對(duì)象config,配置對(duì)象page,頁面對(duì)象exception,例外對(duì)象,綜述,有幾種對(duì)象和ASP的內(nèi)
52、置對(duì)象差不多,功能也類似,這是因?yàn)檫@些內(nèi)置對(duì)象的構(gòu)建基礎(chǔ)是標(biāo)準(zhǔn)化的HTTP協(xié)議。從本質(zhì)上講,JSP的這些內(nèi)置對(duì)象其實(shí)都是由特定的Java類所產(chǎn)生的,在服務(wù)器運(yùn)行時(shí)根據(jù)情況自動(dòng)生成,表3.1給出了他們的對(duì)應(yīng)關(guān)系。需要注意的問題是對(duì)象名的寫法,包括這些對(duì)象方法的調(diào)用都要注意大小寫。,JSP內(nèi)置對(duì)象映射表,,request和response,“request” 對(duì)象代表的是來自客戶端的請(qǐng)求,例如我們?cè)贔ORM表單中填寫的信息等,是最常用的對(duì)象
53、。關(guān)于它的方法使用較多的是getParameter、getParameterNames和getParameterValues,通過調(diào)用這幾個(gè)方法來獲取請(qǐng)求對(duì)象中所包含的參數(shù)的值“response” 對(duì)象代表的是對(duì)客戶端的響應(yīng),也就是說可以通過“response”對(duì)象來組織發(fā)送到客戶端的數(shù)據(jù)。發(fā)送文字時(shí)直接使用“out” 對(duì)象即可。 response.sendRedirect(“URL”); response.setCo
54、ntentType(”text/html”);,request getParameter示例,, 姓名 ,,request對(duì)象示例(Hello_req.jsp), 你好, , 今天是 號(hào),星期 ,輸出結(jié)果,/teach/jsp6/login.html -> jsp6/jsp/login.jsp, 你好,獨(dú)孤求敗, 今天
55、是 9號(hào),星期1 ,,request對(duì)象其他方法,1.getAttribute原型:public java.lang.Object getAttribute(java.lang.String name)說明:以對(duì)象的形式返回特定名稱的屬性值。參數(shù):name 一個(gè)標(biāo)示屬性名的字符串返回值:一個(gè)包含屬性值的對(duì)象,當(dāng)屬性不存在是為空。 2. getContentLength、getServerPort()、getServe
56、rName()、getProtocol、getRemoteAddr、getHeaderNames、getMethod()、getServletPath、isRequestedSessionIdValid /teach/jsp6/form.html,out對(duì)象,“out” 對(duì)象代表了向客戶端發(fā)送數(shù)據(jù)的對(duì)象,與“response” 對(duì)象不同,通過“out” 對(duì)象發(fā)送的內(nèi)容將是瀏覽器需要顯示的內(nèi)容,是文本形式的,可以通過“o
57、ut” 對(duì)象直接向客戶端寫一個(gè)由程序動(dòng)態(tài)生成HTML文件。常用的方法除了pirnt和println之外,還包括clear、clearBuffer、flush、getBufferSize和getRemaining,這是因?yàn)椤皁ut” 對(duì)象內(nèi)部包含了一個(gè)緩沖區(qū),所以需要一些對(duì)緩沖區(qū)進(jìn)行操作的方法。testBuffer.jsp ; testSystem.jsp,session對(duì)象,“session” 對(duì)象代表服務(wù)器與客戶端所建立的會(huì)話,當(dāng)
58、需要在不同的JSP頁面中保留客戶信息的情況下使用,比如在線購物、客戶軌跡跟蹤等?!皊ession” 對(duì)象建立在cookie的基礎(chǔ)上,所以使用時(shí)應(yīng)注意判斷一下客戶端是否打開了cookie。常用的方法包括getId、 getValue、 getValueNames和putValue等。,session對(duì)象,概要HTTP是無狀態(tài)(stateless)協(xié)議;Web服務(wù)器對(duì)每一個(gè)客戶端請(qǐng)求都沒有歷史記憶;Session用來保存客戶端狀態(tài)信息
59、;由Web服務(wù)器寫入;存于客戶端;客戶端的每次訪問都把上次的session記錄傳遞給Web服務(wù)器;Web服務(wù)器讀取客戶端提交的session來獲取客戶端的狀態(tài)信息;,session對(duì)象示例(Form表單—Logon_session.html),, 姓名 ,,session對(duì)象示例Logon_session.jsp,, 你的名字""已經(jīng)寫入session
60、 check ,,session對(duì)象示例(Check_session.jsp),, 您還未登錄 ""已經(jīng)登錄 ,,,session使用示例,/teach/jsp6/testsession.html ->testsession1.jsp->testsession2.jsp->testsession3.jsp,cookie對(duì)象,,用來保存少量的信息,/m
61、yjsp/06/VisitTimes.jsp,顯示登陸次數(shù)");out.println("alert('歡迎首次光臨!')");out.println("");}else {out.println("");out.println("alert('您已經(jīng)光臨了" + Counter + "
62、; 次')");out.println("");}%>,application對(duì)象,application對(duì)象負(fù)責(zé)提供應(yīng)用程序在服務(wù)器中運(yùn)行時(shí)的一些全局信息,常用的方法有l(wèi)og()、getMajorVersion()、getMinorVersion()、getMimeType()、getRealPath()、getResouce()、getResourceAsStream()、ge
63、tRequestDispatcher()等。session用來保存用戶的個(gè)人信息,application是保存所有用戶的公共信息。application.setAttribute(“counter”,”0”);,application對(duì)象實(shí)現(xiàn)網(wǎng)頁計(jì)數(shù)器,網(wǎng)頁計(jì)數(shù)器您是第位訪問者!,運(yùn)行結(jié)果(第一次訪問),,刷新一次,application使用示例,留言板例子: teach/jsp6/board1.jsp->
64、board2.jsp->board3.jsp,pageContext,“pageContext” 對(duì)象直譯時(shí)可以稱作“頁面上下文”對(duì)象,代表的是當(dāng)前頁面運(yùn)行的一些屬性,常用的方法包括findAttribute、getAttribute、getAttributesScope和getAttributeNamesInScope,一般情況下“pageContext” 對(duì)象用的不是很多,只有在項(xiàng)目所面臨的情況比較復(fù)雜的情況下,才會(huì)利用到頁面
65、屬性來輔助處理。getServletConfig、getSession、getServletContext、 getOut、getRequest等。 teach/jsp6/testpagecontext.jsp,config、 page、 exception,“config” 對(duì)象提供一些配置信息,常用的方法有g(shù)etInitParameter和getInitParameterNames,以獲得Servlet初始化時(shí)的參
66、數(shù)。使用getServletContext()來代替application對(duì)象。teach/jsp6/testconfig.jsp“page” 對(duì)象代表了正在運(yùn)行的由JSP文件產(chǎn)生的類對(duì)象。 testpage.jsp“exception” 對(duì)象則代表了JSP文件運(yùn)行時(shí)所產(chǎn)生的例外對(duì)象,此對(duì)象不能在一般JSP文件中直接使用,而只能在使用了“”的JSP文件中使用 testexception.jsp,exception對(duì)象示例,
67、test4.10.jsp,exception對(duì)象示例,error.jsp");out.println("exception.getMessage()="+exception.getMessage());%>,JSP內(nèi)置對(duì)象小結(jié),介紹了JSP的幾種內(nèi)置對(duì)象。熟練使用這些內(nèi)置對(duì)象是開發(fā)JSP應(yīng)用程序的基本要求,尤其是對(duì)于request、session和application對(duì)
68、象更是必須要掌握的。會(huì)使用對(duì)象所具有的方法,能熟練使用每一種對(duì)象的幾種常用方法。,JSP的漢字問題的原理,客戶端和服務(wù)器用gb2312HTTP傳輸編碼用ISO8859_1服務(wù)器需要指示客戶端文檔的編碼方式,JSP的漢字問題出現(xiàn)環(huán)節(jié),客戶端顯示文檔時(shí)的編碼方式(由服務(wù)器中的JSP、Servlet指明)客戶端發(fā)送漢字時(shí)自動(dòng)轉(zhuǎn)換為iso8859_1服務(wù)器中采用gb2312對(duì)漢字編碼,接收到客戶端漢字需要轉(zhuǎn)換為gb2312服務(wù)器端將
69、JSP轉(zhuǎn)換為Servlet時(shí)自動(dòng)將漢字轉(zhuǎn)換為iso8859_1服務(wù)器端應(yīng)該告訴客戶端漢字的編碼方式,JSP漢字問題,JSP文件的漢字問題表單處理的漢字問題Servlet的漢字問題JDBC的漢字問題,JSP文件的漢字問題,JSP中的漢字字符串在服務(wù)器端用gb2312在編譯為Servlet時(shí)自動(dòng)轉(zhuǎn)換為iso8859_1漢字在傳輸中是正確的在沒有特別指示下,瀏覽器中無法正確顯示在HTML中指示瀏覽器文檔的編碼在JSP中指示
70、JSP引擎文檔的編碼每個(gè)要顯示漢字的JSP文檔都應(yīng)該包含該語句,JSP文件的漢字問題(JSPhanzi.jsp),JSP中的漢字問題 ,JSP中的漢字問題 你好,,,JSP中增加編碼指示后,JSP中的漢字問題 ,JSP中的漢字問題 你好,,,表單處理中的漢字問題,表單處理涉及到客戶端和服務(wù)器的完整交互過程在客戶端和服務(wù)器是gb2312,傳輸用ISO8859_1在服務(wù)器
71、端接收到客戶端數(shù)據(jù)時(shí)需要轉(zhuǎn)換為gb2312后進(jìn)行處理,方法name=new String(name.getBytes("ISO8859_1"), "gb2312");服務(wù)器端指示客戶端漢字的顯示編碼,表單處理的漢字問題(hanzi.jsp),表單處理的漢字問題 用戶登錄 用戶名: ,表單處理的漢字問題 用戶登錄 用戶名: ,,,處理過程,
72、表單中漢字的處理 ");%>,表單中漢字的處理 用戶名:????,,,處理過程(修改后),表單中漢字的處理 ");%>,表單中漢字的處理 用戶名:測(cè)試,,,Servlet的漢字問題,1. 某個(gè)頁面提交中文內(nèi)容給Servlet,Servlet要對(duì)提交的內(nèi)容進(jìn)行轉(zhuǎn)碼工作才能正確接收數(shù)據(jù),通常在servlet中增加以下代碼來解決問題: ht
73、tpServlerRequest.setCharacterEncoding(“GB2312”); 2. Servlet寫中文內(nèi)容到某個(gè)頁面, servlet中增加以下代碼: httpServlerResponse.setContentType("text/html; charset=gbk" );protected void doGet(HttpServletRequest request, H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于J2EE的可重用軟件架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2EE架構(gòu)軟件測(cè)試的研究與應(yīng)用.pdf
- 基于J2EE架構(gòu)團(tuán)購網(wǎng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于MVC的J2EE架構(gòu)研究與設(shè)計(jì).pdf
- 基于J2EE的EAM系統(tǒng)軟件架構(gòu)的研究.pdf
- 基于J2EE架構(gòu)的軟件總線中權(quán)限管理的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2EE架構(gòu)的社交網(wǎng)站的設(shè)計(jì)與開發(fā).pdf
- 基于J2EE架構(gòu)的VMI系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于j2ee架構(gòu)的網(wǎng)上商城設(shè)計(jì)與實(shí)現(xiàn)
- 基于J2EE架構(gòu)網(wǎng)上書店的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2EE中間件的軟件體系架構(gòu)的研究.pdf
- 基于J2EE架構(gòu)的協(xié)同辦公系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2EE架構(gòu)質(zhì)監(jiān)OA系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2EE架構(gòu)的網(wǎng)上閱卷系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2EE架構(gòu)的手機(jī)書院的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2EE架構(gòu)的學(xué)生管理系統(tǒng).pdf
- 基于J2EE架構(gòu)的OA系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2EE架構(gòu)的教材管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于J2EE的企業(yè)應(yīng)用體系架構(gòu)的研究與設(shè)計(jì).pdf
- 基于J2EE架構(gòu)的移動(dòng)銀行平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn).pdf
評(píng)論
0/150
提交評(píng)論