第三章_第二讲_JSP编程.ppt

上传人:s****8 文档编号:68958977 上传时间:2022-12-30 格式:PPT 页数:140 大小:2MB
返回 下载 相关 举报
第三章_第二讲_JSP编程.ppt_第1页
第1页 / 共140页
第三章_第二讲_JSP编程.ppt_第2页
第2页 / 共140页
点击查看更多>>
资源描述

《第三章_第二讲_JSP编程.ppt》由会员分享,可在线阅读,更多相关《第三章_第二讲_JSP编程.ppt(140页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1JSPJSP编程编程21JSP工作原理2JSP脚本元素3JSP指令元素4JSP动作组件5JSP内置对象3JSP初识JSP(JavaServerPages)是一种实现普通静态HTML和动态HTML混合编码的技术。n它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段和JSP标记(tag),从而形成JSP文件(*.jsp)nWeb服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能nJSP是在服务器端执行的,通常返回给客户

2、端的就是一个HTML文本,因此客户端只要有浏览器就能浏览4JSP工作原理pJSP页面文件被转译转译 成一个Servlet类(.java文件)p.java文件被编译编译 生成字节码文件执行5JSP示例 你好你好,今天是今天是 号,号,星期星期 import java.util.*;response.setContentType(text/html;charset=gb2312);out=pageContext.getOut();out.write(“rnrnrn rn你好你好,今天是今天是rn);Date today=new Date();out.print(today.getDate();ou

3、t.write(号,星期号,星期);out.print(today.getDay();out.write(rn rnrn);JSP文件Servlet文件http:/localhost:8080/Test/Test.jspTomcatwork Test.java.class6uJSP页面转换后的class,都从HttpJspBase继承u函数Serviceu直接转成Java代码放到Service函数里面uHTML代码直接被写到writer回馈给用户u对应为response.setContentType()的语句up认识认识JSP转换后的转换后的.java文件文件7JSP特点n内容的生成和显示进行

4、分离p网页设计人员和Java程序员的工作关系不再那么紧密n可移植性(一次编写、各处运行)nJSP具有广泛的平台适用性nJSP连接多种数据库n简单、容易入门n81JSP工作原理2JSP脚本元素3JSP指令元素4JSP动作组件5JSP内置对象9脚本元素n脚本元素:在和之间,添加以的Java代码 包括:p“注释”p“表达式”p“声明”p“脚本段”/“代码段”10脚本元素注释 nHTML注释:这种注释发送到客户端,但不直接显示,在源代码中可以查看到。nJSP隐藏注释:不发送到客户端。nJava注释方式:/单行注释 /*/11%for(inti=1;iH你好/H程序程序1:expression.jsp(

5、添加注释后)(添加注释后)12脚本元素表达式l输出表达式的计算结果l语法:表达式中的变量必须是已声明过的变量表达式中的变量必须是已声明过的变量l与之间不能有空格空格且表达式后面不需不需要分号要分号13%for(inti=1;iH你好/H程序1:expression.jsp(表达式)14脚本元素声明JSP声明语法格式如下:nn任何内容必须是合法的Java语句,因此变变量量声声明总是用分号来结束明总是用分号来结束例如:15声明n声明的类型:p变量声明u声明的变量成了JSP页面被转换和编译后的Servlet类的实例变量u语法:u16声明n方法声明p方法将编译成的Servlet类的方法p可以由页面上所

6、有脚本元素访问u17 您是第您是第 个访问本站的客户。个访问本站的客户。程序2:statement_vary.jsp表达式表达式变量声明变量声明18p使用方式声明的变量是类成员变量:u变量的内存空间直到服务器关闭才释放服务器关闭才释放u当多个客户请求一个JSP页面时,JSP引擎为每个客户启动一个线程u线程由JSP引擎服务器来管理,线程共享共享JSP页页面的成员变量面的成员变量,因此任何一个用户对JSP页面成成员变量操作的结果,都会影响到其他用户员变量操作的结果,都会影响到其他用户19脚本元素程序段 nJSP脚本段语法格式如下:20%condition=1;switch(condition)ca

7、se 0:out.println(You must select condition 0!+);break;case 1:out.println(You must select condition 1!+);break;default:out.println(Your select not in 0,1,select again!+);%21%!、%=和%之间的区别 n变量声明%!后面必须带分号n表达式可以包含任何语言表达式,并不以分号结束n代码段中,如果语言要求语句以分号结束,则必须提供分号22nn nnnJSPDeclarationsn%!nintcount=0;/声明在声明在内的变量内的

8、变量 n voidmethod()n%n%ninti=0;/声明在声明在内的变量内的变量 n%nncount:ni:nn变量声明变量声明和和区别区别23n原先声明在内的变量和方法是一个类内的变量和方法也就是成员变量和成员方法成员变量和成员方法。n声明在内的变量是一个方法的变量也就是局部变局部变量量。n成员变量会被多个对象共享,而局部变量单独对象访问。变量声明和区别241JSP工作原理2JSP脚本元素3JSP指令元素4JSP动作组件5JSP内置对象25JSP指令是从JSP向Web容器发送的消息,它们不产生任何可见的输出,告诉JSP引擎对JSP页面处理。注意:指令的作用范围仅限于包含指令本身的JS

9、P页面。JSP的指令格式为:26nJSP指令包括page、include和taglibppage用于定义JSP文件中的全局属性。pinclude把内容分割成更多的可管理元素ptaglib用来创建自定义标记27page指令npage指令用于定义JSP文件中的全局属性JSP语法格式如下:%pagelanguage=“java”/声明脚本语言的种类,默认import=“package.class|package.*,.”/需要导入Java包与Java语言中的import关键字意义一样 默认情况下会导入:java.lang.*、javax.servlet.*、javax.servlet.jsp.*、j

10、avax.servlet.http.*28session=“true|false”/决定JSP网页是否可以使用session对象 buffer=“none|8kb|sizekb”/设置JSP网页的缓冲区,如果属性值为none,不缓冲,输出直接通过ServletResponse的printWriter输出29autoFlush=true|falsep设置如果buffer溢出,是否自动刷新p该属性的默认值为true,表示当缓冲区满时,到客户端的输出将会自动刷新p若该属性为false,则当缓冲区满时,出现缓冲区溢出异常p当buffer=none,autoFlush属性值不能设置为false。因为bu

11、tter=none时,表明没有设置缓冲区,因而JSP页面的jspWriter本身将会自动刷新新缓冲区自动刷新新缓冲区。isThreadSafe=“true|false”p设置Jsp文件是否能多线程使用,处理多个用户的请求 p默认值true,在运行JSP页面时,可能会同时接受多个客户的请求。当该属性取值为false时,一个JSP处理器将会逐个的接受客户的请求。30info=“text”p在该属性中定义了一个任意的字符串,用来说明JSP页面中待说明的信息pServlet.getServletInfo()方法查到该信息的详细情况errorPage=relativeURLp该属性用于表示当发生异常错误

12、时调用的JSP页面isErrorPage=“true|false”p设置此页是否为出错页谁呀?谁呀?%String s=getServletInfo();out.print(+s);%31contentTypepppcontentType指定了服务器响应的 HTTP内容类型(MIME类型)、charset 指定了JSP页面回应时页面回应时的字符编码方式p默认默认contentType=text/html,charset=ISO-8859-1MIME类型:类型:p(MultipurposeInternetMailExtensions)多用途互联网邮件扩展类型p设定某种扩展名的文件用一种应用程序来

13、打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开p常见的MIME类型(通用型):p超文本标记语言文本.htmltext/htmlpxml文档.xmltext/xmlp普通文本.txttext/plainppageEncoding pppageEncoding指明了JSP页页面面本本身身的编码格式,跟页面显示的编码没有关系p默认默认contentType=text/html,charset=ISO-8859-132JSP要经过两次的要经过两次的“编码编码”:pjsp编编译译成成Servlet(.java)文文件件,根据pageEncoding的设定读取jsp,翻译成

14、统一的UTF-8JAVA源码(即.java)pServlet文文件件(.java)到到Java字字节节码码文文件件(.class),从UTF-8到UTF-8。在这一阶段中,不论JSP编写时候用的是什什么么编编码码方方案案,JAVAC用UTF-8的encoding读取java源码,编译成UTF-8编码的二进制码(即.class)。这一过程是由JVM的内在规范决定的,不受外界控制p从从服服务务器器到到浏浏览览器器,这在一过程中用到的指令是contentType。服务器载入和执行由第二阶段生成出来JAVA二进制码,输出的结果,就是在客户端可见到的结果,在输出过程中,由contentType属性中的c

15、harset来指定,将UTF8形式的二进制码以charset的编码形式来输出容器根据容器根据pageEncoding的设定将的设定将JSP转化转化为内部使用的为内部使用的Unicode,而页面显而页面显示的时候将内部的示的时候将内部的Unicode转换为转换为contentType指定的编码后显示页面指定的编码后显示页面内容内容33ncontentType-charset、pageEncoding相互影响和作用域,以及先后作用顺序 JSP页面本身的页面本身的字符编码字符编码p如果pageEncoding属性存在,那么JSP页面本身的页面本身的字符编码字符编码方式就由pageEncoding决定

16、p否则就由contentType属性中的charset决定,如果charset也不存在,JSP页面的字符编码方式就采用默认的ISO-8859-1JSP页页面面回回应应时时的的字字符符编编码码方方式式需需要要通通过过contentType-charset设定pTomcat中如果在jsp中设定了pageEncoding,则contentType也跟着设定成相同的编码了总结:通常在总结:通常在JSP页面设定页面设定即可即可34对于page指令,需要说明的是:p可以在一个页面中引用多个多个指令,但是其中的属性只能用一次属性只能用一次,不过也有例外,那就是import属性属性。因为import属性和Ja

17、va中的import语句类似(import语句引入的是Java语言中的类),所以此属性就能多用几次。p无论把指令放在JSP的文件的哪个地方,它的作用范围作用范围 都是整个都是整个JSP页面页面。不过,为了JSP程序的可读性,及好的编程习惯,最好还是把它放在JSP文件的顶部。35include指令向向JSPJSP页面内某处页面内某处静态静态静态静态插入一个文件,这个文件插入一个文件,这个文件 可以是可以是HTMLHTML文件、文件、JSPJSP文件或其他文本文件。文件或其他文本文件。JSP JSP 语法格式语法格式语法格式语法格式:36注意注意37include示例示例程序4:include.j

18、sp在当前页面中加入在当前页面中加入copyright.html源代码然后源代码然后再编译整个文件再编译整个文件 使用使用include指令把指令把一个页面分成不同的部分一个页面分成不同的部分,最后合成一个完整的文件,有助于实现最后合成一个完整的文件,有助于实现jsp页页面的面的模块化模块化 示例示例138GantryHTMLAlltherightsarereservedcopyright.htmlcopyright.html39include示例示例示例示例240您是第您是第 个访问本站的客户。个访问本站的客户。copyright.jsp4142431JSP工作原理2JSP脚本元素3JSP指

19、令元素4JSP动作组件5JSP内置对象44JSP动作组件动态插入文件、调用动态插入文件、调用JavaBean等等动作元素动作元素45常见的常见的JSP动作组件共有以下几种:动作组件共有以下几种:在页面被请求的时候引入一个文件。:把请求转到一个新的页面。:在动作组件中引入参数信息。:插入一个applet或Bean。:设置JavaBean的属性。:输出某个JavaBean的属性。:寻找或者实例化一个JavaBean。JSP动作组件46includeinclude动作组件动作组件把指定文件插入正在生成的页把指定文件插入正在生成的页面。面。其语法如下:其语法如下:jsp:include page=/f

20、lushflush属性:属性:flush=true,在缓存累积了一定数据时,服务器会先提供一部分数据给浏览器,并等待后续内容。在简单页面中,该属性不纳入考虑,而在页面包含大量数据时,为缩短客户端延迟,可将一部分内容先行输出。jsp:include jsp:include47程序5:includeaction.jspinclude示例示例48copyright.jsp您是第您是第 个访问本站的客户。个访问本站的客户。copyright.jsp49 include include动作组件动作组件 指令元素 动作指令前者:,读入指定页面的内容并和原来的页面融合到一起,合成一个文件后被jsp容器将它转

21、化成servlet(.java文件)后者:jsp:include动作指令引入页面时,实际只是引用了插入文件被转化并被编译后产生的servlet类文件(.class文件).插入文件是作为一个单独的文件在执行后才被.jsp文件运行时调用运行后,一个新的.java文件和.class文件50 include include动作组件动作组件 主要有两个方面的不同:一:执行时间上:是在翻译阶段执行在请求处理阶段执行.二:引入内容的不同:引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.引入执行页面或servlet所生成的应答文本.51forwardforward动作组

22、件动作组件:控制从一个页面传到另一个:控制从一个页面传到另一个页面页面(在向目标文件转发过程中,可以向目标(在向目标文件转发过程中,可以向目标文件传送参数和值文件传送参数和值)其语法如下:其语法如下:jsp:forward page=/jsp:forwardjsp:forward52程序6:forward.jsp当前推荐图书清单当前推荐图书清单:0.5)%53国画国画梅次故事梅次故事朝夕之间朝夕之间1.jsp1.jsp54J2EE编程技术编程技术 J2EE服务器端高级编程服务器端高级编程JSP高级编程高级编程2.jsp2.jsp55param动作组件:用于传递参数信息,必须配合或或动作组件一起

23、使用。语法如下:当该组件与一起使用时,可以将param组件中的值传递到include动作组件要加载的文件中去。jsp:param 56加载文件效果:加载文件效果:示例示例157%Stringstart=request.getParameter(start);/获取值。获取值。Stringend=request.getParameter(end);/获取值。获取值。ints=Integer.parseInt(start);inte=Integer.parseInt(end);intsum=0;for(inti=s;i从从到到的连续和是:的连续和是:add.jsp58向向jsp:forward传递

24、参数示例:传递参数示例:向向jsp:forward传递参数示例:传递参数示例:示例示例259欢迎您!欢迎您!welcome.jsp60nPlugin动作组件:用于在浏览器中播放或显示一个对象(典型的就是applet和Bean),必要的话还要下载Java插件用于执行它。n在页面中使用普通的HTML标记可以让客户下载运行一个javaapplet小应用程序,但并不是所有的客户的浏览器都支持javaapple小程序。使用plugin动作标签可以保证客户端能执行小应用程序 jsp:plugin61 JSP语法格式如下:/用户使用InternetExplorer浏览器时需下载JRE插件的URL64jsp:

25、paramname=parameterNamevalue=parameterValue|/+/传递给applet或Bean的参数和值。为了传递多个参数和值,可以在jsp:params元素中使用多个标签.Applets取得参数是通过取得参数是通过java.applet.Applet.getParameter方法方法 textmessageforuser/如果plugin插件不能使用时,显示给用户的信息 65importjava.applet.Applet;importjava.awt.Color;importjava.awt.Graphics;publicclassCircleextendsAp

26、pletpublicvoidpaint(Graphicsg)g.setColor(newColor(255,0,255);g.fillArc(0,0,50,50,0,360);Applet示例示例1(与(与JSP同目录下建立一个同目录下建立一个Circle.class)66PlugintagOBJECTorEMBEDnotsupportedbybrowser.程序9:plugin.jsp67importjava.applet.Applet;importjava.awt.Graphics;publicclassshowextendsAppletStringname;publicvoidinit(

27、)name=getParameter(name);publicvoidpaint(Graphicsg)g.drawString(Thisshowsthe+name+aparameter,60,25);Applet示例示例268用用plugin加载加载Applet用用plugin加载加载Applet程序10:plugin.jsp69程序10:plugin.jsp701JSP工作原理2JSP脚本元素3JSP指令元素4JSP动作组件5JSP内置对象71JSP内置对象JSPJSP提供了某些内置对象,开发者不用事先声明就可提供了某些内置对象,开发者不用事先声明就可以使用标准的变量来访问这些对象以使用标准

28、的变量来访问这些对象request:包含客户端所有传送到服务器上的请求信息response 用于服务器端向客户端发送响应信息out 用来传送响应的输出session 一次连接请求期间的会话application 指服务器上正在执行的程序page 指JSP网页本身pageContext 用来对网页属性进行管理config 提供一些配置信息Exception 用来捕获jsp执行时抛出的异常72n从本质上讲,JSP的这些内置对象其实都是由特定的Java类所产生的,在服务器运行时根据情况自动生成,所以如果具备较好的Java基础,可以参考相应的类说明。7374nrequest对象p代表客客户户端端的的请

29、请求求,封封装装了用户提交的信息,该对象调用相应的方法可以获获取取封装的信息。通过该对象能了解客户的需求,做出响应p当客户端请求一个JSP页面时,JSPJSP容容器器会会创创建建一一个个requestrequest对对象象。可以通过request对象的相关方法来获取这些客户端信息(例如请求的方式、参数、客户端IP地址等)75requestrequest对象是对象是HttpServletRequestHttpServletRequest类的实例,包含方法:类的实例,包含方法:1.objectgetAttribute(Stringname)返回名称为name的对象2.EnumerationgetA

30、ttributeNames()返回可用属性名的枚举3.StringgetCharacterEncoding()返回字符编码方式4.intgetContentLength()返回请求体的长度(以字节数)5.StringgetContentType()得到请求体的MIME类型766.ServletInputStreamgetInputStream()得到请求体中一行的二进制流7.String getParameter(String name)返回返回name指定参数的参数值指定参数的参数值 8.EnumerationgetParameterNames()返回可用参数名的枚举9.StringgetP

31、arameterValues(Stringname)返回包含参数name的所有值的数组7710.StringgetProtocol()返回请求用的协议类型及版本号11.StringgetScheme()返回当前页面使用的协议,例如http12.StringgetServerName()返回接受请求的服务器主机名13.intgetServerPort()返回服务器接受此请求所用的端口号14.StringgetRemoteAddr()返回发送此请求的客户端IP地址15.StringgetRemoteHost()返回发送此请求的客户端主机名16.void setAttribute(String ke

32、y,Object obj)设置属性的属性值设置属性的属性值 参数参数name与与form表单中的表单中的name属性对应,或者与提交属性对应,或者与提交链接链接的参数名对应,如果参数值不存在,则返回的参数名对应,如果参数值不存在,则返回null值,该方法值,该方法的返回值类型是的返回值类型是String。request对对象象通通过过getParameter()方方法法来来获获取取用用户户提提交交的的数数据据获取请求参数的使用格式如下:获取请求参数的使用格式如下:获取请求参数获取请求参数String getParameter(String name)Stringname=request.get

33、Parameter(“name”)p在进行请求转发请求转发操作时,把一些数据带到转发后的带到转发后的页面处理。p可以使用request对象的对象的setAttribute()方法将数据设置在request范围内存取。p设置转发数据的方法使用格式如下:setAttribute(Stringkey,Objectobj)设置属性request.setAttribute(String key,Object obj)u参数key为String类型的键名。在转发后的页面取数据时,通过这个键名来获取数据键名来获取数据uObject obj为key的值,代表需要保存在request范围内的数据p在reques

34、t作用域中,获取转发数据获取转发数据的方法:Object object=request.getAttribute(Object object=request.getAttribute(“keykey”)prequest.getParameter()方法是获取获取Http提交过来的数据提交过来的数据(客客户端重定向户端重定向点击了链接或提交按扭时传值用),即用于在使用表单表单(form)或或url重定向重定向传值时接收数据用String getParameter(String name)String getParameter(String name)与与与与object setobject se

35、t/getAttribute(String getAttribute(String name)name)区别区别区别区别p例如1.jsp和2.jsp之间为链接关系,1.jsp中有以下代码:超链接超链接或者:请输入用户姓名:在2.jsp中通过request.getParameter(username)方法来获得请求参数username:p用上面getParameter()得到的值如果下次不提交或保存起来的话,下次重定向后就没啦?psetAttribute是服务器把对象放在页面所对应的一块内存中,当该页面服务器转发转发到另一个页面时,服务器会把这块内存拷贝另一个页面所对应的内存中String ge

36、tParameter(String name)String getParameter(String name)与与与与object object getAttribute(String name)getAttribute(String name)区别区别区别区别String getParameter(String name)String getParameter(String name)与与与与object set/getAttribute(String object set/getAttribute(String name)name)区别区别区别区别p例如2.jsp和3.jsp之间为转发关系

37、。2.jsp希望向3.jsp传递当前的用户名字,如何传递这一数据呢?先在2.jsp中调用setAttribute()方法:在3.jsp中通过getAttribute()方法获得用户名字:prequest.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据prequest.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。这两个方法能够设置Object类型的共享数据。String getP

38、arameter(String name)String getParameter(String name)与与与与object object getAttribute(String name)getAttribute(String name)区别区别区别区别p一个是从前台获取数据的p比如前台有个表单提交到当前servlet,然后表单中有文本框name属性为usernamep在后台你写 request.getParameter(username);就可以获得文本框里的值 p如果从servlet里传参数到一个页面可以用request.setAttribute(“name”,username);再下

39、一个页面(只能下一个页面)可以用request.getaAttributr(name)接受,就可以获得数值了String getParameter(String name)String getParameter(String name)与与与与object object getAttribute(String name)getAttribute(String name)区别区别区别区别85nnnnn客户使用的协议是:nn获取接受客户提交信息的页面:nn接受客户提交信息长度:nn客户提交信息的方式:nl获取客户的IP地址:lll86nnnnJSPnnnn用户名:用户名:nnnn87lll获获取文

40、本框提交的信息:取文本框提交的信息:llll获获取按取按钮钮的名字:的名字:lll从从Jsp页面页面传递参数到页面页面传递参数到Servlet显示中文乱码显示中文乱码方式一:方式一:request.setCharacterEncodingp是指提交内容的编码,指定后可以通过是指提交内容的编码,指定后可以通过getParameter()直接直接获得正确的字符串,如果不指定,默认时获得正确的字符串,如果不指定,默认时(getParameter)会以)会以iso8859-1编码处理,因此需要进一编码处理,因此需要进一步处理步处理piso-8859-1是是JAVA网络传输使用的标准网络传输使用的标准字

41、符集字符集,而而gb2312是是标准中文字符集标准中文字符集,当你作出提交表单等需要网络传输的操作当你作出提交表单等需要网络传输的操作的时候的时候,就需要把就需要把iso-8859-1转换为转换为gb2312字符集显示字符集显示,否则否则如果按浏览器的如果按浏览器的gb2312格式来解释格式来解释iso-8859-1字符集的话字符集的话,由于由于2者不兼容者不兼容,所以会所以会是乱码是乱码p在执行在执行setCharacterEncoding()setCharacterEncoding()之前,不能执行任何之前,不能执行任何getParametergetParameter()()p该指定只对该

42、指定只对POSTPOST方法有效,对方法有效,对GETGET方法无效方法无效显示用户注册表单页面账号:账号:    密码:    真实姓名: Email地址:性别: 男    女 dealwith.jsp:nnnshowUserInfo.jsp:账号:账号:    密码:    showUserInfo.jsp:真实姓名: Email地址:性别:94resp

43、onse对象n“response”对象代表的是对对客客户户端端的的响响应应,通过“response”对象来组织发送到客户端的数据。如果是向客户端发送文字时直接使用“out”对象即可。95responseresponse对象包含了响应客户请求的有关信息,是对象包含了响应客户请求的有关信息,是HttpServletResponseHttpServletResponse类的实例类的实例 1.String setCharacterEncodingString setCharacterEncoding()设置响应的字符编码 2.ServletOutputStream getOutputStream()返

44、回响应的一个二进制输出流 3.PrintWriter getWriter()返回可以向客户端输出字符的一个对象 4.void setContentLength(int len)设置响应头长度 5.void setContentTypesetContentType(String type)设置响应MIME类型 966.sendRedirect(java.lang.String location)sendRedirect(java.lang.String location)重新定向客户端的请求 7.sendError(int number):使用指定的状态码向客户发送错误响应。8.sendErro

45、r(int number,String msg):使用指定的状态码和描述性消息向客户发送错误响应97responseresponse缓缓冲冲区区:缓缓冲冲可可以以有有效效地地在在服服务务器器与与客客户户之之间间传传输输内内容容vflushBuffer():强制把缓冲区中的内容发送给客户vgetBufferSize():返回响应所使用的实际缓冲区大小 如果没使用缓冲区,则该方法返回0vsetBufferSize(intsize):为响应的主体设置首选的缓冲区大小vbooleanisCommitted():表示响应是否已经提交,提交的响应已经写入状态码vreset():清除缓冲区存在的任何数据,同

46、时清除状态码nnnnn缓冲区大小:缓冲区大小:nnnn缓冲区设置之前nnn输出的内容是否提交:nnnn缓冲区设置之后nnn输出的内容是否提交:nnnnnn我正在学习response对象的n setContentType方法n 将当前页面保存为word文档吗?n nnnn100Out在客户端页面输出信息n“out”对象代表了向客户端发送数据的对象,与“response”对象不同,通过“out”对象发送的内容将是浏览器需要显示的内容,是文本一级的,可以通过“out”对象直接向客户端写一个由程序动态生成HTML文件。101out对象是JspWriter类的实例,是向客户端输出内容常用对象1.void

47、clear()清除缓冲区的内容2.voidclearBuffer()清除缓冲区的当前内容3.voidflush()清空流4.intgetBufferSize()返回缓冲区以字节数的大小,如不设缓冲区则为05.intgetRemaining()返回缓冲区还剩余多少可用6.booleanisAutoFlush()返回缓冲区满时,是自动清空还是抛出异常7.voidclose()关闭输出流8.print/println102nnnnn谁呀?n%Strings=getServletInfo();nout.print(+s);n%nn103session对象n“session”:服务器与客户端的交互过程称

48、为session。n从一个客户打开浏览器连接到服务器,到客户关闭浏览器离开这个服务器称做一个会话 104session对象初识n过程pHTTP是无状态(stateless)协议WebServer对每一个客户端请求都没有历史记忆;p当一个客户访问一个服务器时,可能会在这个服务器的几个页面反复连接、反复刷新一个页面或不断地向一个页面提交信息等,服务器应当通过某种办法知道这是同一个客户,这就需要session(会话)对象。psession机制采用的是在服务器端保持状态的方案 105nStep1:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,这个session对象

49、调用相应的方法可以存储客户存储客户在访问各个页面期间提交的各种信息各种信息,比如,姓名、号码等信息。nStep2:这个session对象被分配了一个String类型的Id号,JSP引擎同时将这个Id号发送到客户端,存放在客户的Cookie中。这样,session对象和客户之间就建立起一一对应的关系,即每个客户都对应着一个session对象(该客户的会话),这些session对象互不相同,具有不同的Id号码。106nStep3:当客户再访问连接该服务器的其它页面时,或从该服务器连接到其它服务器再回到该服务器时,JSP引擎不再分配给客户新session对象,而是使用完全相同的一个,直到客户关闭浏览

50、器后,服务器端该客户的session对象被取消,和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。107session对象指的是客户端与服务器的一次会话,从客户连连接到服务器开始,直到断开连接为止。它是HttpSession类的实例.longgetCreationTime()返回SESSION创建时间publicStringgetId()返回SESSION创建时JSP引擎为它设的惟一ID号longgetLastAccessedTime()返回此SESSION里客户端最近一次请求时间intgetMaxInactiveInterval

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁