Javaweb第4章JSP内置对象_第1页
Javaweb第4章JSP内置对象_第2页
Javaweb第4章JSP内置对象_第3页
Javaweb第4章JSP内置对象_第4页
Javaweb第4章JSP内置对象_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021年10月11日1 jsp 内置对象内置对象2021年10月11日2教学内容:教学内容: request对象对象 response对象对象 out对象对象 session对象对象 application对象对象 exception对象对象 pagecontext对象对象 config对象对象 page对象对象 2021年10月11日3一、request 对象 http通信协议是客户与服务器之间一种提交通信协议是客户与服务器之间一种提交(请求)信息与响应信息(请求)信息与响应信息(request/respone)的通信协议。在)的通信协议。在jsp中,内置对象中,内置对象request封装

2、了用户提交的信息,封装了用户提交的信息,那么该对象调用相应的方法可以获取封装的信那么该对象调用相应的方法可以获取封装的信息。息。示例:示例:example3_1.jsp tree.jsp2021年10月11日4http请求中包括一个请求行、头域和可能的信息体,如: get/hello.html http/1.1 host: accept-encoding:gzip,deflate一个典型的请求通常包含许多请求头,有些头是标准的,有些和特定的浏览器有关。包含的信息提可能是表单的内容。2021年10月11日5request对象包括很多方法,主要有:ngetcookies():返回客户端的cooki

3、e对象,结果是一个cookie数组。ngetsession(boolean create):返回和当前客户端请求相关联的httpsession对象,如果当前客户端请求没有和任何httpsession对象关联,那么当create变量为true,则创建一个httpsession对象并返回;反之,返回null。 ngetheader(string name):获得http协议定义的传送文件头信息 。2021年10月11日6ngetattribute(string name):返回name指定的属性值,若不存在指定的属性,就返回null。ngetattributenames():返回request对象

4、所有属性的名字,结果集是一个enumeration(枚举)类的实例。ngetheadernames():返回所有request header的名字,结果集是一个enumeration(枚举)类的实例。getheaders(string name):返回指定名字的request header的所有值,结果集是一个enumeration(枚举)类的实例。ngetmethod():返回客户端向服务器端传送数据的方法,一般方法有get、post、put等类型。ngetparameter(string name):以字符串的形式返回客户端传来的某一个请求参数的值,该参数名由name指定。当传递给此方法的

5、参数名没有实际参数与之对应时,返回null。2021年10月11日7ngetparameternames():返回客户端传送给服务器端的所有的参数名,结果集是一个enumeration(枚举)类的实例。当传递给此方法的参数名没有实际参数与之对应时,返回null。ngetparametervalues(string name):以字符串数组的形式返回指定参数所有值。ngetquerystring():返回查询字符串,该字符串由客户端以get方法向服务器端传送。 ngetrequesturi():获得发出请求字符串的客户端地址。ngetservletpath():获得客户端所请求的脚本文件的文件路

6、径。nsetattribute(string name,java.lang.object o):设定名字为name的request参数值,该值由object类型的o指定。ngetservername():获得服务器的名字,如果没有设定服务器名,则返回服务器ip地址。 2021年10月11日8ngetserverport():获得服务器的端口号。ngetremoteaddr():获得客户端的ip地址。ngetremotehost():获得客户端主机的名字,若失败,则返回客户端电脑的ip地址。ngetprotocol():获取客户端向服务器端传送数据所依据的协议名称,如http/1.1。ngetc

7、ontentlength():以字节为单位返回客户端请求的大小。如果无法得到该请求的大小,则返回-1。ngetcontenttype():获取客户端请求的mime类型。如果无法得到该请求的mime类型,那么返回-1。ngetinputstream():以二进制的形式将客户端的请求以一个servletinputstream的形式返回。使用此方法可以获得客户端的multipart/form-data数据,可以实现文件上传。 2021年10月11日9nissecure():如果客户机是通过一个安全的访问方式访问的,就返回true;反之,返回false.ngetdateheader():返回一个lon

8、g类型的数据,表示客户端发送到服务器的头信息中的时间信息。ngetinitheader():获取客户端发送到服务器端的头信息中的某一个特定的信息,并转换为int类型。ngetcontextpath():返回环境路径。对于jsp来说,一般是当前web应用程序的根目录。nisrequestedsessionidvalid():返回一个指示客户端请求发送session id是否仍然有效的布尔值。nisrequestedsessionidfromcookie():返回一个指示客户端请求发送session id是否存在于cookie中的布尔值。nisrequestedsessionidfromurl()

9、:返回一个指示客户端请求发送session id是否存在于url中的布尔值。 2021年10月11日10客户通常使用html表单向服务器的某个jsp页面提交信息,表单的一般格式: 提交手段提交手段请求的方法有get 、post、head 、delete、trace 、put 等.例: request.jsp 2021年10月11日11 当用request对象获取客户提交的汉字字符时,会出现乱码问题,所以对含有汉字字符的信息必须进行特殊的处理方式。首先,将获取的字符串用iso-8859-1进行编码,并将编码存放到一个字节数组中,然后再将这个数组转化为字符串对象即可。例: example3_3.j

10、sp tree1.jspu处理汉字信息处理汉字信息2021年10月11日12二、二、response response 对象对象u 用response对象对客户的请求作出动态响应,将jsp 处理数据后的结果传回到客户端。u比如,当一个客户请求访问一个jsp页面时,该页面用page指令设置页面的contenttype属性的值是text/html,那么jsp引擎将按着这种属性值响应客户对页面的请求,将页面的静态部分返回给客户。u如果想动态地改变contenttype的属性值就需要用response对象改变页面的这个属性的值,作出动态的响应。2021年10月11日13response对象的常用方法为

11、: naddcookie(cookie cookie):添加一个cookie对象,用来保存客户端的用户信息,用request的getcookies()方法可以获得这个cookie。 naddheader(string name,string value):添加http文件头,该header将会传到客户端去,如果有同名的header存在,那么原来的header将会被覆盖掉。 ncontainsheader(string name):判断指定名字的http文件头是否存在,并返回布尔值。2021年10月11日14nsenderror(int sc):向客户端发送错误信息,例如,505指示服务器内部错

12、误;404指示网页找不到的错误。nsetheader(string name,string value):设定指定名字的http文件头的值,如果该值存在,那么它会被新的值覆盖。nsetcontentype(string type):响应设置内容类型头。nsendredirect(url):可以将用户重定向到一个不同的页面(url)。2021年10月11日15 response内置对象内置对象使用使用response内置对象刷新页面内置对象刷新页面 显示时间:显示时间:2021年10月11日16u 动态响应动态响应contenttypecontenttype属性属性 如果想动态的改变这个属性的值

13、来响应客户,就需如果想动态的改变这个属性的值来响应客户,就需要使用要使用response对象的对象的setcontenttype(string s)方法来改方法来改变变contenttype的属性值,该方法动态设置响应的的属性值,该方法动态设置响应的mime类型,参数类型,参数s可取:可取:text/html、application/x-msexcel、application/msword 示例示例: response.jsp2021年10月11日17u respose respose重定向重定向 在某些情况下,当响应客户时,需要将客户重在某些情况下,当响应客户时,需要将客户重新引导至另一个页

14、面。例如,如果客户输入的表单新引导至另一个页面。例如,如果客户输入的表单信息不完整,就会再被引导到该表单的输入页面。信息不完整,就会再被引导到该表单的输入页面。 可以使用可以使用response的的sendredirect(url url)方法方法实现客户的重定向。实现客户的重定向。示例示例: example3_13.jsp tree4.jsp2021年10月11日18out对象用来向客户端输出数据,并且管理应用服务器上的输出缓冲区,其基类是jspwriter。通常使用out.println(string name)和out.print(string name),它们两者最大的差别在于prin

15、tln( )在输出的数据后面会自动加上换行的符号;反之,print( )不会在数据后自动换行。out 对象除了这两种方法最常使用之外,它还有一些方法(见下表),这些方法主要是用来控制管理输出的缓冲区(buffer)和输出流(output stream)。三、三、out 对象对象2021年10月11日19方法名说明print()输出数据println()按行输出数据newline()输出一个换行符flush()输出缓冲区里的数据close()关闭输出流clearbuffer()清除缓冲区里的数据,并把数据输出到客户端clear()清除缓冲区里的数据,但不会把数据输出到客户端getbuffersi

16、ze()获得缓冲区的大小getremaining()获得缓冲区中没有被占用的空间的大小。2021年10月11日20out对象示例对象示例%out.println(test out,this is begin!);string out1=test out1;out.println(out1+);int out2=19810407;out.println(out2+);out.println(out1=(string.valueof(out2)+);%2021年10月11日21session对象和客户端的会话联系在一起,由容器自动创建。一个客户从打开浏览器连接到服务器开始,到客户关闭浏览器离开这个

17、服务器结束,被称作一个会话。一个客户在一个会话期间,在该网站上不同页面之间跳转时,可以得用session对象来实现信息的共享。四、 session对象2021年10月11日22当使用者与服务器联机时,服务器可以给每一个上网的使用者一个session并设定其中的内容,这些session都是个别独立的,服务器端可以借此来辨别使用者信息进而提供个别的服务。 session对象的常用方法为:ngetattribute(string name):获得指定名字的属性,如果该属性不存在,将会返回null。ngetattributenames():返回session对象中存储的每个属性对象,结果集是一个enu

18、meration类的实例。 nsetattribute(string name,java.lang.object value):设定指定名字的属性值,并且把它存储在session对象中。nisnew():判断目前session是否为新的session,若是则返回ture,否则返回false。 2021年10月11日23ngetid():返回session对象在服务器端的编号。每生成一个session对象,服务器都会给它一个编号,并且该编号不会重复,这样服务器才能根据编号来识别session,并且正确的处理某一特定的session及其提供的服务。ngetcreationtime():返回sess

19、ion对象被创建的时间,单位为毫秒。ngetlastaccessedtime():返回当前session对象最后一次被操作的时间,时间的单位为毫秒。ngetmaxinactiveinterval():获取session对象的生存时间,时间的单位为秒。nsetmaxinactiveinterval(int interval):设置session的有效时间(也叫超时时间),时间的单位为秒。nremoveattribute(string name)“删除指定的属性(包含属性名、属性值)。如果在有效时间内,用户做出了新的请求,那么服务器就会将其看作一个新的用户,此时,服务器将创建一个新的session

20、,旧的session信息将会丢失 2021年10月11日24 关于session id的示例客户在访问以下三个页面中,所获取到的session对象是完全相同的。示例 : session.jsp(session.jsp、tom.jsp、jerry.jsp)2021年10月11日25在重定向到新的页面利用session对象实现数据的传递。reponse.sendredirect(url);见示例: ch05/( session_login.html check_login.jsp loginsuccess.jsp )2021年10月11日26五、五、application对象对象服务器启动后就产生

21、一个application对象。所有的客户在页面之间跳转时用的都是同一个对象。也就是说这些线程共享这个application对象使用session对象时,各个客户端共享一个session对象。application对象主要方法为:ngetattribute(string name):返回由name指定名字的application对象属性的值,这是个object对象,如果没有,就返回null。ngetattributenames():返回所有application对象的属性的名字,结果集是一个enumeration(枚举)类的实例。2021年10月11日27ngetinitparameter(s

22、tring name):返回由name指定的名字的application对象的某个属性的初始值,如果没有参数,就返回null。ngetserverinfo():返回servlet编译器当前版本信息。nsetattribute(string name,object object):将参数object指定的对象obj添加到application对象中,并为添加的对象指定一个属性。 2021年10月11日28常用方法public void setattribute(key,object o)public object getattribute(key)public enumberation geta

23、ttributenames()public void removeattributes(string key)2021年10月11日29 application对象示例对象示例2021年10月11日30示例:示例: (test_application.jsp application.jsp ) test_application2.jsp2021年10月11日31 exception对象用来处理jsp文件在执行时所有发生的错误和异常,exception对象可以配合page指令一起使用,通过指定某一个页面为错误处理页面,把所有的错误都集中那个页面进行处理,可以使得整个系统的健壮性得到加强,也使得程

24、序的流程更加简单明晰。exception对象的主要方法为:ugetmessage():返回错误信息。uprintstacktrace():以标准错误的形式输出一个错误和错误的堆栈。u tostring():以字符串的形式返回一个对异常的描述。 六、六、exception对象2021年10月11日32exception对象是java.lang.throwable类的一个实例,指的是运行时异常,只有被声明为错误页面中(在页面指令里有 iserrorpage=true)才可以使用。例子: syntax_error.jsp exception.jsp ( error.jsp exception.jsp

25、)2021年10月11日33七、七、pagecontext对象对象pagecontext对象被用来对属于jsp中可见部分中已经命名对象的访问。可以根据不同的对象范围来实现对这些对象的管理。其主要方法为:ngetattribute():返回与指定范围内名称有关的变量或null。nfindattribute():用来按照页面请求、会话以及应用程序范围的顺序实现对某个已经命名属性的搜索。nsetattribute():用来设置默认页面的范围或指定范围之中的已命名对象。nremoveattribute():用来删除默认页面范围或指定范围之中已命名的对象。2021年10月11日34常见的方法有: for

26、ward()、getattribute()、setattribute()、findattribute()、removeattribute()、getrequest()、getresponse()、getservletconfig()、getservletcontext()、getsession().例子:(pagecontext_form.html pagecontext1.jsp pagecontext2 .jsp )2021年10月11日35config对象是jsp页面通过jsp container进行初始化时被传递的对象。config对象具有web服务器所需的多种环境设定值,简单点说,c

27、onfig对象就是提供对初始化jsp的配置数据的访问。 config对象的主要方法为:ngetinitparameter():以字符串类型返回指定初始参数的内容,如果参数不存在,则返回null。ngetinitparameternames():以enumeration类型返回所有初始参数的名称,如果没有初始化参数,则返回null。ngetservletcontext():返回的servlet是属于哪一个application。ngetservletname():以字符串类型返回servlet的名称。八、config对象2021年10月11日36 config对象示例对象示例%java.util

28、.enumeration configname=config.getinitparameternames();while(configname.hasmoreelements() string name=(string)configname.nextelement();out.println(参数名称:参数名称:+name+参数参数值值:+config.getinitparameter(name)+);%2021年10月11日37page对象是java.lang.object类的一个实例,它代表jsp编译后的产生的servlet类的实例,代表jsp页面本身,只有在当前的jsp页面才有效。例: page.jsp九、page对象2021年10月11日38隐含对象隐含对象类型类型pagecontextjavax.servlet.jsp.p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论