版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章什么是JSP
什么是JSP
JSP(JavaServerPages)是基于Java语言的一种Web应用开发技术。利用这一技术可以建立安全、跨平
台、易维护的Web应用程序ss
网络应用中最常见的模式是B/S模式(Browser/Sever即浏览器/服务器)
B/S模式中即需要获取信息的用户使用浏览器向服务器发出请求,服务器对此做出响应,将有关信息发送给
用户的浏览器
JSP引擎与Tomcat服务器
JSP的核心内容之一就是编写JSP页面,JSP页面是Web应用程序的重要组成部分之一。
简单Web应用程序可能只有一个JSP页面。
复杂的Web应用程序可能由许多JSP页面、Javabcan和servlet组成。当用户请求Web服务器上的JSP页面时,
JSP引擎负责运行JSP,并将运行结果返回给用户。
1.2.I安并配■相应的环境文・
1.2.2.安装与启动Tgcat服务器
1H设JDK的安装目录是:D:\Jdkl.7.
apoche-toacatY.0.3.zip的安装
添加如下系统环境变■
将下0的np®ch»-to»c«t8.0.3.zip解压到破
变・名:变■值
JavaHose3D:\Jdkl.7含某个分区,比如鲜R到口:\,“压缗后稗出现如
变■名,Path变■值,D:\jdkl.7\bin图1.3所示的目■结构.
启动:执行安装椎目录中bin文件夹中日
,tutup,bat来启动TOBCAQ・务■.如图L4鼾示.
2.apache-tomcat-8.0.3.exe的安装
apache-tomcat-8.0.3.exe文件是针对MS-Window的Tomcat服务器,安装后形成的目录结构和
apache-tomcat-8.0.3.zip安装的基本相同。
单击下载的apache-tomcat-8.0.3.exe,将出现“安装向导”界面,单击其中的Next按钮,接受授权协议后,
将出现选择“安装方式”的界面。在“安装方式”界面中选择Norma、Minimun.Custom和Full之一,然后按着
安装向导的提示进行安装即可。
3.酒试Tomcat鹿务器4,配置Toocai第务着端口
在浏览器的地址栏中输入:
用记力本打开盯开胺务器安装目求中conf文
件下的主配置文件server."1.
找到出现】
<Co«in»etorpoftC08(rprolocoH-HTTP/l.1"
8nMeIKXlTlMMtLMOOO”
ndir»ctPort«-M43-/>
的部分.桥族中的portrow”也改为新的出口号.并电
就启动T3cat|l务器印可.
如果Tgat服务器所住的计,机没有启动占用80端
口号的穴直刈络程序.也可以将Tcoca1版务部的端口号
设置为如,这样用户在访MTgcal*务器时可以甘略有
口%例如:httpJH/
1.3.2
<2>webappsbtfiWebill*Q
必须再♦写好的JSP页面文件保存到Tomcat眼务•
Tomst,*■也*日录的webawnH录下的“何tTB
的整个1・鲁目)中,只有这样,远程的宫户才可以通
录■可以作为-4W«b■各H兼.
地岗血闲慎Tomcat服务■上的切页画・■么Cl©曜沟一个Ub■善日量.
⑴am承,to*WJSPKSXH«*Mpi«ii.ftF
・VTomcM*«D:\ap^MtomcM-■务N景中.国幺应与在词©■■的・城尼中•AJ-u・务■
a。」,事2Tomc■务H量的的【?0*、・口号、2■芬IljtllJSPiiiil的8字.
D:^»cheHo«nc«t-4.0.3>webapp*lRoo<.bttt://IZ7.0.0.Jop
用户♦忒8怫*”口及中的jSPfiiii.可以在■■■■人
[■cat■善■的】NgJt.■liqWJSPH■由幺字■■・W・日
录中。■的」“更・立名于尾—l・l
http:/H92.168一1.100:t0M/owmp4«1_1Jsp
*h*tp:^:SO0O/exampl«1_14*P
1.3.2呢b-旁目最氟而“加牙自最
(3)新ifWeb祖务口录】
可以把Tomcat眼方器所在计日机的某个口录(tvvebappsF
的『II永)设置成一个・eb服务目录.并为BWeb服务H录加定虚
拟目录.呷的藏Web服务H聚的实际仅汽・用户“健通过出肛H
录访向掰eb服务H录中的JSP奥・•
北过Wh'TomcatH务必女&II景FconfZ:f|夫中的secver.xml
工件索出再新的WCto收务II业.
假设夔将D:\MyBook\zhang以及C:\wangf1为W的服务H水.
n先用记串入“开conf工件夬中的主配苴文件server.xml.投气出
现</Host>的康分,然后在</Host>的曲面加入1
ContextMyBochUhAng-(tobug-'Veloibto>〜》•A
<Cont»itp«th»-lclou<rdocBM^XVwang"debug,**(Frv«oAdabls-tmr注
主配・文科server.xml施改后,必■■新:TomcatiR务5.
如唳example1_1.jsp保〃到D:\MyBook\zhang或C:\wang中在浏
宽各地址卡中温入,http:/H:808arapptefex4n^>le1_1.>p
4http^:S080/doucVexMnple1_1j*p.
1.3.2,•!,”后■KH^M>aO9B»
6)*itWeb疆)HI录;
MlUrTomcat*务A标在itW机的某个目力(IIwebapps
nrii^)片内CMD,务ii录推电・
报口址.即❸/W曲♦务H较的15付。•用户只能划114肛H
录访问Web”务II4中的JSP贝胸.
通过Hk+Tomcatll芬瑞安,11手卜conf也件火中的server.xml1.3.2WH«HB«
文件来改置所的伙
以我0/D:\Mye8kKhang以及C:\wdngn力Web收务H求.
而先川id%木打开8~匕竹天中的主Ad曼文Rger.xmL投外出■房内录卜衲白录务为33«*勇11*卜伪・时36■房
理</Host:>的舰分.警与件《欣威>的二曲!11人:目录.
r
3CS*M^D*eec**ah・^T1i>II4巳餐&务日初:曲”的■B口及加wle・
aaa
<C«VKM1p«tMveloud-buL。',•loadaMe«trut'/>1.jspft#MD14M日承的f目录
♦配上义(Iwve-xmHX/m/喂新启动务器・
1aM件.在■宣■的战结「中
W'llexamplel_l.)sp仪〃丸D:\My6ook\zhang!<IC:\wang中,々翔♦入hHM27.OA18OQWH70*0n*11#P
重B触:亡中0人IMtp^1l7.ft0.1:tO»a>8pf>l«rexampl«1JR.MQattHilJSPKiii.
AhM9JH27A91:80Mrdoudi«x»mol«1_1.Mo.
常见动态网页技术:JSP,PHP,ASP(.net)
ASPActiveServerPage
JSPJavaServerPages(一种动态网页技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java
程序片段(Scriptlet)和JSP标记片ag),就构成了JSP网页片jsp)(>)
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客
户。程序片段可以操作数据库、重新定向网页以及发送email等等,这就是建立动态网站所需要的功能。
所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以
实现无Plugin,无ActiveX,无JavaApplet,甚至无Frame
JSP动态网页技术优势
业务逻辑和显示分离
多平台支持及高可移植性
开发便利
安全
较高的效率与性能
较低的开发和运营成本
使用JSP进行开发,需要具备以下的运行环境:
Web浏览器
JDK开发工具包
数据库
Web服务器
第二章JSP页面
JSP页面可由5种元素组合而成:
①普通的HTML标记符;
②JSP标记,如指令标记、动作标记;
③变量和方法的声明;
④Java程序片;
⑤Java表达式;
JSP页面的运行原理:
把JSP页面中普通的HTML标记符号,交给客户的浏览器执行显示。
JSP标记、数据和方法声明、Java程序片由Tomcat服务器负责执行,将需要显示的结果发送给客户的浏览器。
Java表达式由Tomcat服务器负责计算,将结果转化为字符串,交给客户的浏览器负责显示。
1.在JSP页面的标记符
"<%!”和“%>”有效范围和标识符的位置无关
之间声明的变量称作JSP页面的成员变量(变量类型可以是java允许的任何数据类型)。
之间声明方法。该方法在整个JSP页面有效
■在“v%r和”之间插入Java程序片•
■程序片中声明的变量称为JSP页面的局部变量.
■多个客户请求一个JSP页面时,Java程序片将被执行多
次,分别在不同的线程中执行.例2Y,例2・5
“<炉”和“%〉”之间可以是一个Java表达式«
表达式的值由服务器负责计算,并将计算结果用字符中形式发送到客户端显示
例子6计算一达式的值,页面效果如图2.6•
example2_6Jsp
<%@pagecontentType«wt«xt/html;charset«GB2312"%>
<HTML><BODYbgcolor*cyan><FONTsiz»»3>
<%doublex=0.9,y=3;
3
<P>5加«%。*%>)除以<%*伊>等T<%=Matii.sin(x)^%>
<px%«y%>的平方是:<%«Math.pow(yr2)%>
<%319;
尸32;
%>
黍以等F<%»x-y%>
<P>的平方根等于<%«Math.sqrt(y)%>
<PX%xy%>大于<%、%>吗?<%=y>
</FONT></BODYXHTML>
SH诂R戏这支《・・
1.HTML注释格式:
<!—注释内容一)
2.JSP注释格式:
<%—注释内容一一%》
2.6.1page指令
page指令阴未定义假个JSP贞曲的一些耳忖和这些凤性的伊・
page指令ItH.“J.I指定如下属性的依8川所内「.、门(>0<1、
language^Motion.buffer、auotFlush、IsThreadSafe.pigeEncoding.
国件值用单刷号或双喟号括起来•可以用一个“8c指令指定多个
属性的值,也可以使阳名个同.指令分别为瓢个倜性指定值.
page指令的作阳对整个JSP贞囱“效.,"C书写的位置无关,习惯
把.乂。指令写在JSP页面的最前面•
Mto:
<%@page・性1・“■性1的值”属性2・"■性2的值”……%>
就
<%«pageM性1「・性1的«T%>
<%@page属的件2的值”%>
page"性n・~属性n的值.%>
定义JSP页面使用的脚本语言,该属性的值目前只能取"java"。
例如:
<%@pagelanguage=*java*%>
注;JSP页面默认有如上page指令。
Import引入Java运行环境提供的包中的类
例如:
<$@pageimport="java.io."java.util.Date”用>
注:JSP页面默认import属性已经有wjava.lang.*"、“javax.servlet.*"等值。
contentType属性值确定JSP页面响应的MIME(MultipurposeInternetMailExtention)类型和JSP页面字符
的编码。
例如:
<%@pagecontent!ype=/"text/html;charset=GB2312w%>
<%©pagecontentType=〃application/msword"%>
注:不允许两次使用page指令给contentType属性指定不同均属性值.
session属性
用于设置是否需要使用内置的session对象。session的属性值可以是true或false。session属性默认的属性
值是true。
buffer属性
buffer属性用来指定out设置的缓冲区的大小或不使用缓冲区。
<%@pagebuffer="24kb”%>
buffer属性的默认值是8kbo
buffer属性可以取值“none”,设置out不使用缓冲区。
autoFlush属性:
指定。ut的缓冲区被填满时,缓冲区是否自动刷新。
注:autoFlush属性的默认值是true。
isThreadSafe属性:
用来设置JSP页面是否可多线程访问。注:isThreadSafe属性的默认值是true。
info属性
的属性值是一个字符串,其目的是为JSP页面准备一个常用且可能需要经常修改的字符串
例如:
<%@pageinfo="wearestudents"%>
注:可以在JSP页面中使用方法:
getServletlnfoO;
获取info属性的属性值。
2.6.2include指令标记
include指令标记的作用是在JSP页面出现谟指令的
位置处,静态插入一个文件.其语法格式如下।
<%@Includefile・文件的URL-%>
注:如・连文件相。*中.■么“4件的
URL"箕是If2字,
如*il大仰AJSPH・防©打重灼一个fll兼中,比S
fileDirni*1>.国么•文件晌URV就是”价147文伸的抬字・.
Hi伸G■人.“毫当・jsFnm他■人的文件合件或■个1的JSFJCIB.
底「jsrj疆畀,这个斯・X兴U『做fVnlc«te*Mtyou
例2・9,2-10
■JI
<%pagecontentType=wtext/html;charset=gb2312w%>
<html><body>
<%@includefile=whello,txt"%>
</body></html>
include动作标记
语法格式:
<jsp:includepage=”文件曰勺URL"/>
或
<jsp:includepage="文件的URL"〉
param子标记
</jsp:include>
include动作标记告诉JSP页面动态加我一个文件。
注:include动作标记是在JSP页面运行时才处理文件,被处理的文件在逻辑和语法上独立于当前JSP页面。
例/11中的example2J1Jsp页面动态加载两个文fh
imageCar.htmlfllcar.txt0我们把example2_11Jsp页面保存Web服
务目录ch2中.example2_11.jsp|ft|要动态加it的imageCar.html
文件,以及imageCar.html文件所使用的图像文flcar.jpg均保存在
ch2,l,:example2_11.j5p?Ji面要动态加栽的car.txt文件保存在
ch2的子目录MyfiI。中.
在浏览器的地址栏输入
:8080/ch2/example2_11.jsp
访问Qxamplo211.jsp页面的效果如图2.10.
param动作标记forward动作标记plugin动作标记useBean动作标记
第三章
第四章内置对象
内置对象有:resquest、response、session、out、application
request对象可以获取用户提交的信息。request对象获取用户提交信息的最常用的方法是getParameter(String
s).
一般格式是:
<FORMmethod=getIpostaction-提交信息的目的地页面”)
提交手段
</FORM>
例如用户提交信息表单:
<FORMaction=〃tom.jsp〃method=post>
<INPUTtype="text"name="boy"value="ok”>
<INPUTTYPE="submit"value:"送出"name="submit”)
</FORM>
tom.jsp页面可以使用内置request对象获得用户提交的信息
request.getParameter("boy");
当用request对象获取用户提交的汉字字符时,会出现乱码问题,所以对含有汉字字符的信息必须进行特
兴的处理
Stringstr=request.getParameter(*girK);
byteb[]=str.getBytes(*150-8859-1*);
str=newString(b);
例3对例子1按上述办法做了改动,并将按钮上的字变成汉字.
文本W.J默息拈;“苹果:aDDle、12斤,5$”。
example4_3.jsp
<%@pagecontentType=Htext/html;charset=GB2312"%>
<HTML><BODYbgcolor=greenxFONTsizes1>
<FORMaction-Napple.jspMmethod=postnamesforin>
<INPUTtype=**text-name=Mboy"valued革果:apple.12斤,5$**>
<INPUTTYPE«Msubmirvalue=Mft交"name=-submrt^
</FORM>
</FONT></BODY></l<%@pagecontentTyp«*Mtext/html;charset"GB2312M%>
<MHML><BODY>
获取文本框提交的信息,
<%StringtextContenEraquest.getParameter("boy");
byteb[]stextContent.getBytes(nSO-8859-1*);
textContentsnewString(b);
%>
<%»textContent%>
<BR>荻取按钮的名字;
<%StringbuttonName=request.getParameterf*submitM);
bytec[]sbuttonName.getBytes(MISO-8859*1M);
buttonNamesnewString(c);
%>
<%®buttonName%>
</BODY></HTML>
getProtocol():获取请求使用的通信协议,如http/1.1等。
getScrvletPathO:获取请求的JSP页面所在的目录。
getContentLength():获取HTTP请求的长度。
getMethodO:获取表单提交信息的方式,如POST或GET。
getHeader(Strings):获取请求中头的值。
getHeaderNames():获取头名字的一个枚举。
getHeaders(Strings):获取头的全部值的一个枚举。
getRemoteAddrO:获取客户的IP地址。
getRemoteHostO:获取客户机的名>;(如果获取不到,就获取IP地址).
getServerName():获取服务器的名称。
getSorverPort():获取服务器H勺端口号。
getParameterNcimes():获取表单提交的信息体部分中name参数值的一个枚举.
例5
例5中.阳―过exaEple4_5jsp中的衣单箱二用形的三边的K•
振文给geljsp使用Tag标记』用Tag史flCompunrtag,并将
角彩三边的K惬也通由Comput❷rtag.Computertag文件负责计W三角
形的面根.并将计算结果返而唐;9°t.jsp页面.example4_5.jspfdgetjsp
的效果如图4.4(1),4.4(2),
it®<!,♦〃ttT0@1皿内
ax;!>11»:»I甘,
fi44(nsa<hw〃E7,imv*/”,>.
讪3耻牌
897«.W2$15T2WTfTt
E44(2)JM*文京,
HTML是HypertextMarkedLanguage的缩写,即超文本标记语言。
<Inputtype="输入对象的GUI类型"name="名字”>
服务器通过属性name指定的名字来获取“输入对象的GUI类型”中提交的数据。“输入对象的GUI类型”可以
是:text(文本框)、checkbox(检查框)、submit(提交键)等。
文本框text:
<Inputtype="text"name="me〃value=〃hi"size="9〃align="left"maxlength=〃30”>
单选框radio:
<Inputtype="radio“name="rad〃value="red"align="top"checked="java”>
复选框checkbox:
(Inputtype=,,checkbox,/name="ch"value=,,pink,/align="top"checkedijava”>
口令上匡password:〈Inputtype="password“name="me"size="12"maxlength=“30”〉
除.藏hidden:〈Inputtype=/,hidden,zname="h"value="123”>
提交键submit"Inputtype="submit“name="me"value:“确定"size="12">
重置键:reset:<Inputtype="reset”>
处理HTML标记_<Select>、〈Option)格式
1)下拉列表
(Selectname="shulie”>
<Optionvalue="cat">你选了小猫
<0ptionvalue="dog”>你选了小狗
•••
</Select>
(2)滚动列表:在Select中指定size属性的值就变成滚动列表,size的值是滚动列表的可见行的个数。
<Selectnajne=*shulie*size=2>
<Optionvalue="1”>计算1到n的连续和
<Optionvalue="2"》计算1到n的平方和
■■■
</Select>
<TextArea>标记在表单中指定一个能输入多行文本的文本区域。
基本格式为:
<TextAreaname=*ilovethisgame*Rows="4"Cols="20"X/TextArea>
表格由<table>、</table>标记定义。一般格式:
<table>
<trwidth/该行的宽度”>
<thwidth="单元格的宽度”>单元格中的数据</th>
•••
<tdWidth="单元格的宽度〃>单元格中的数据<九(1>
</tr>
•••
</table>
其中<tr>…</tr>定义表格的一个行,<m>或<1€1>标记定义这一行中的表格单元,二者的区
别是:<th>定义的单元加重显示,<td>称做普通单元,不加重显示。一行中的加重单元和普通单元可以
交替出现,也可以全是加重单元或普通单元。
<tableborder=l>中增加选项border可指明该表格是否带有边框。
使用01^>或。切86>标记都可以显示一副图象,标记的基本格式为
<imgsrc="图像文件的URL〃>描述文字</加8>
<imagesrc二〃图像文件的URL〃>描述文字〈/image)
播放音乐和视频
<embedsrc=”音乐或视频文件的URL”>描述文字</&1111)。(1>
<embed>标记中经常使用的属性及取值如下:
autostart属性的值用来指定音乐或视频文件传送完毕后是否立刻播放,autostart取值"true”或
“false”,该属性的默认值是false。
loop属性的取值为正整数,该属性的值用来指定音乐或视频文件重复播放的次数。
动态响应contentType属性
由于page指令只能为contentType属性指定一个值来决定响应的MIME类型。
如果想动态地改变这个属性的值来响应用户,就需要使用response对象的
setContentType(Strings)方法来改变contentType的属性值。
publicvoidsetContentType(Strings)方法动态设置响应的MIME类型,参数s可取:
text/html>text/plain>image/gif、image/x-xbitmap
image/jpeg、image/pjpeg^app1ication/x-shockwave-f1ash>
application/vnd.ms-powerpoint>application/vnd.ms-excel>
application/msword。
例10中,当用户单击按钮,选择将当前页面保存为一个Word文档
时,JSP页面动态地改变contentType属性的值为叩plication/msword。这
时,用户的浏览器会提示用户用MS・Word程序来显示或保存当前贞而。
example41O.jsp
<%@pagecontentType=wtext/html;charset=GB2312**%>
<HTML>
<BODYbgcolor«cyan><FONTsize^l>
<P)我正在学习response对象的
<BR>setContentType方法
<P>将当前页面保存为word文料吗?
<FORMaction=****method=*get*nameMonn>
<INPUTTYPE»wsubmirvalue=wyesMname=-submit->
</FORM>
<%Stringstrsrequest.getParameter(M$ubfnitM);
if(str=null)
if(str.equals(MyesM))
response.setContentType(Mapplication/msword;charset^GB2312w);
%>
</FONT></BODY></HTML>
response对象可以使用方法:
addHeader(Stringhead,Stringvalue);
或使用方法:
setHeader(Stringhead,Stringvalue);
动态添加新的响应头和头的值,并将这些头发送给用户的浏览器。如果添加的头已经存在,则先前的
头被覆盖。
例4-12
例12中.response对飨赤加一个响应央rMresh.其头值是5.那么
用户收到这个头之5tH♦屈将再次刷新谟页面.导致/网页柘5秒刷
新一次.
•xample4_12.jsp
<%@pagecontentType*Mtext/html;charset*GB2312M%>
<%@pageimport»"java.util.**%>
<HTMLxBODYbgcotorscyanxFONT$殴户4>
<P>现在的时同是:<BR>
<%out.printlr»C**n«wDate());
response.setHeaderf'RefreshTS-);
%>
</FONT></BODYXHTML>
用户的重定向。
在某些情况下,JSP引擎在响应用户时,可能需要将用户重新引导至另一个页面。
例如,如果用户输入的表单信息不完整,就会再次被引导到该表单的输入页面。
使用response对象的sendRedirect(URLurl)方法实现用户的重定向。
例13
例13中,用户在example4_13.jsp页面填写衣单提交给verify.jsp贝
ifd.如果填写的良单不先。就会被田新定向fijexampie4_13.jsp页前
•xampl«4_13,jsp
pagecontentTypesNtext/html;charsetsGQ2312*a%>
<HTML><BOOY>
<8R>
<FORMactionsMv«rify.jspNmethod=MQet~nam«sform>
<INPUTTYPE-text"n>me»*boy->
<INPUTTYPE--»ubmit-v«lu^-Ent»r">
</FORM>verHy.jsp.jsp
</BOOYXHTMLpagecontentType-^texVhtmlxharwfGBZSIZ"%>
<HTMLxBODY>
<%Stringstr*null;
•tr*"";
bytebQ««tr.g»tByt«s(MISO*8859-1*);
str«newString(b1;
由集Hequals(i))
response.s«ndRadir»ct("«xampl«4
■l8(
outpdmr欧境悠来到本M页I•);
out.print(str);
}
%>
</BOOYXHTML>
response的状态行
当JSP引擎对用户请求进行响应时,它发送的首行称做状态行。
状态行包括3位数字的状态代码和对状态代码的描述(称做原因短语)。
表4r状态代码表部分内容
M413t鼎如
秋公代玛RIWM
101,■”正在舟摄阳用
ga户可以g
修家成功且我■务■上抬屐了■由贯募・
・我己n受=没Vtt
必・累罐。」
■尸切无1UI不最发■■号・«)•
・双成。,
*闲户必橐HR瞰r
a■善■恨行了0•累•
a■率的望惠・+”火我加
np皆■己)M效久修场招锋位・•
■加饰位・•,
A”空E以&另件一个URL
*a方式■求不可!»♦
既■索必倭■!1代覆亲啾必
400.■«・■津■谡•
40U■季川・HTTP认*,
・■了曹京施再绝・务•
session对象
内置session(会话)对象记录有关连接的信息.由Tomcat服务器负责创建。
当一个用户首次访问Web服务目录中的某个JSP页面时,JSP引擎为其产生一个session对象。为用户产生的
session对象调用相应的方法可以存储用户在访问各个页面期间提交的各种信息
例445中,用户在服务器的Web服务目录54中的三个页面
first.jsp.second和third.jsp之间进行连接.三个页面的session对
象是完全相同的。其中,first.jsp存底在ch4中,second.jsp存放在
ch4的子口录two中,thirdJsp存放住ch4的子目录three中。用户
首先访问first.jsp页面,从这个页面再连接到second.jsp页面,然
后从second.jsp再连接到third.jsp页面。first.jsp、second和
third.jsp的效果图如图4.11(a).4.11(b).4.11(c)
0MP//U7AG
■ri(■>mamax,”—
pSIha*pyn7741Oii^OBO/cK4A»»eM/V»U*d^«pCThttp//17rdO.L«OeQ/c«t4/«M«/Mcond2
f^ttracaniLJapB・您/8tHp■・
third.db宏财—Ion时"的1MB・
3M5iATTT32ABeme321B226891C€AST3M5IA?7732A5CMC321Bn»8916«AST
注情例Hdra.JW)更面•
懦•利flr・J声诉.
乐R去thlx遥Jn,电面1
・4”《cliap«lQtw4MMMB”B4ii<>>NC-R酎MMM»D♦
session对象与URL重写
如果用户端不支持Cookie,那么用户在不同网页之间的session对象可能是互不相同的,因为如果服务器无
法将Id存放到用户端,就不能建立session对象和用户的一一对应关系。
可以通过URL重写来实现session对象的惟一性。所谓URL重写,就是当用户从一个页面重新链接到另一个
页面时,通过向这个新的URL添加参数,把session对象的Id传带过去,这样就可以保障用户在该网站各个页面
中的session对象是完全相同的。可以使用response对象调用encodeURL()或encodeRedirectURL()方法实现URL
重写.
4.3.3session对象存储数据
session对象使用下列方法处理数据:
|1)publicvoidsetAttribute(Stringkey.Objectobj)
sessigjH象可以司用谟方法将参敌Object指定的对象obj添和到session对*中.
并为添加的对象指定了一个索引关■字.如果近加的网个对象的关他字相同.咐先
前添加的对效裱清除.
<2)publicObjectgetAttibutefStringkey)
佚取"”ion对象含有的关值字是key的对欧.由于任何对象■可以库加到
-ion对象中,因此用该方法取同对望时.应强制特化为泉来的类型.
<3)publicEnumerationgetAttrlbuteNames()
8e”ion对建调用该方法产生一个枚率对象.该枚学对决使用nextEleBetsOjl
历”“ion中的各个对望所对应的关■字.
(4)publiclonggetCreationTime()
se”ion对饮,用该方法可以获取该对象创建的时间.单位是♦卧.
(5)publicvoidremov«Attribute(Stringname)
session对象•用该方法杵搏关■才key对应的对氯
例4-17
例17
例17中涉及3个负面exmple4_17Jsp.shop.jspfiiaccount.jsp,
我们使用session对象存储顾客的姓名和购买的桶品。
exmple4_17.jsp,shop.jsp和account.jsp的效果图如图4.12(1).
4.12(2)・4.12(3).
4.3.5session对象的生存期限
一个用户在某个web■,务目录的session对象的生存期限
■依X于session对象是否调用in、sdidateO方法使得session无赦
■依狱于session对配达到了设置的最长的•发呆.状态时间
■依X于服务器是否被关闭.
童断谀X8个Web-务日最下的session对束妁最长.发呆.时间,打开
Tomcat安装目录conf目录T的文件wcb.xml,找到
<sessKX)-conf»g>
<session-timeout>30</session-timeout>
</sessKX>config>
将其中的却修改内所矣京的僮即可•如及时间修改为黄转发呆时问不交限
制.
session对象可以住即下列方法疾取或遗置和生存时间有关妁佶息:
•publiclonggetCreationTime()iUywion包或的时傅.单住是无8.
•publiclonggetLastAcx^ssedTimeC)队JCXM40n及后一次的M问
•publicintgetMaxlnactivelnterval()仄奴auim的.夏MMM(4U<
秒)•
•publicvoidsetMaxlnactJvelnterval(intinterval)葭直小、”好狭长的"哀米"M
同
•publicbooleanisNew()川断*c、、ion£5七一个好电的纣拿
•invaldateO位430n尢段.
例4T9中,session对象使用setMaxInactivelnterval(intinterval)方法设置最长的“发呆”状态时间为10
秒。用户可以通过刷新页面检查是否达到了最长的“发呆”时间,如果两次刷新之间的间隔超过10秒,用户先前
的session将被取消,用户将获得一个新的session对象。
使用session设置时间间隔例4-20
out对象
out对象是一个输出流,用来向用户端输出数据。
out对象可调用如下的方法用于各种数据的输出,
■out.print(Boolean),out.printin(Boolean)用于输出一个布尔值。
■out.print(char),out.println(char)输出一个字符。
■out.print(double),out.printin(double)输出一个双精度的浮点数。
■out.print(float),out.printin(float)用于输出一个单精度的浮点数。
■out.print(long),out.printin(long)输出一个长整型数据。
■out.print(String),out.printin(String)输出一个字符串对象的内容。
■out.newLineO输出一个换行符。
■out.flush()输出缓冲区里的内容。
■out.close0关闭流。
application对象
任何客户在所访问的服务目录的各个页面浏览时,application对象都是同一个.
application对象的常用方法
⑴publicvoidsetAttribute(Stringkey,Objectobj)
application对象可以调用该方法将参数Object指定的对象obj添加到application对象中,并为添加的对
象指定了一个索引关键字,如果添加的两个对象的关键字相同,则先前添加对象被清除。
(2)publicObjectgetAttibue(Stringkey)
获取application对象含有的关键字是key的对象。由于任何对象都可以添加到application对象中,因此用
该方法取回对象时,应强制转化为原来的类型。
(3)publicEnumerationgetAttributeNames()
application对象调用该方法产生一个枚举对象,该枚举对象使用nextElemets()遍历application中的各个
对象所对应的关键字。
⑷publicvoidremoveAttribue(Stringkey)
从当前application对象中删除关键字是key的对象。
(5)publicStringgetServletlnfoO
application对象可以调用该方法获取Servlet编译器的当前版本的信息。
例23
例23中•用户通过suMil.jsp页
面K»J«cssaKcPane.jsp页面提交姓名、
阳宫标15物用二内容・
•PNSHgePtine.j*p页面获取这些内容
后•用同步方法将这些内容添加到-
个向*中.然后带这个向后再添加到
application对象中.当用户单击杳
Ci用,,板时,shovMessage.jsp版面(WBWT1
仇黄显示所有用户的府3内容,现从C・•・・♦]
application时象中取出向*,然Q■«!!(!>・?・"时
遍历向眼中存储的信口.
IM««恒①(fff111Ml'MBm4rfet网
041)(2>■保。■■的幅・
第五章JSP中的文件操作
JSP通过Java的输入输出流来实现文件的读写操作
图5.1调用Tag文件〃
File构造方法
■File(Stringfilename);
■File(StringdirectoryPath,Stringfilename);
■File(Filef,Stringfilename);
5.1.1佚*文M的,住例子I中,爨的使则File美的或方法,我取K金文11的信息.
samp4»5」呻
File,曼的对公主♦阳哀荻取更件本用的■线信电.pagecorWtTypeaato«l**T<ctiarWGS23,2>X>
例如文件所在的目录.文件的长度、文件金耳&阳等,«%Qpage«nparts")av.ior»
不涉及对文件的读耳操作・<HTMLx»OOYegcolor«cy«r>><FOMT3o*«2>
,publicStringg«Mam^>——<%FM«n-nvw
,puM»cbootoanc^nR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 623 QYF14-20气动清淤排污泵
- 户外拓展训练免责协议书
- 合同的商定2024年
- 2024重庆市建筑安全员知识题库附答案
- 关于2024高考语文应试技巧
- 2024年团队销售培训心得体会
- 2024年企业员工绩效考核方案范文5篇
- 2024年企业战略管理措施
- 城市轨道交通应急处理教案28-项目八-恶劣天气与自然灾害应急处理-任务3 地震应急处理
- 国际基础与金融 16
- 婚内离婚协议电子版(2025年版)
- T-ZNZ 302-2024 绿色食品结球甘蓝生产技术规范
- Unit 6 Earth First Using Language Dealing with Global Warming 说课稿-2024-2025学年高中英语外研版(2019)必修第二册
- 复盘四步法及画布
- 波音公司质量管理综述
- 幼儿园大班成语故事《水中捞月》课件
- 2023年重庆理工大学应届生招聘科研助理考试真题
- (幻灯片)湘教版七年级下册地理复习课件
- 中医养生中的药膳食疗的课件
- 介绍辽宁阜新的PPT模板
- 剑桥少儿英语预备级下册B-Unit16复习进程课件
评论
0/150
提交评论