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

下载本文档

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

文档简介

JSP内置对象有些对象不同声明就可以在JSP页面的脚本局部使用,这就是JSP的内置对象。JSP的内置对象有:requestresponsesessionapplicationoutrequest和response对象是JSP较重要的两个内置对象,这两个对象供给了对效劳器和扫瞄器通信方法的把握。争论这两个对象前,要先对HTTP协议——WordWideWeb底层协议作简洁介绍。使用扫瞄器从网站猎取HTML页面时,实际上在使用HTTP协议。HTTP协议规定了信息在Internet上的传输方法,特殊规定了扫瞄器与效劳器的交互方法。从网站猎取页面时,扫瞄器在网站上翻开了一个对网络效劳器的连接,并发出恳求。效劳器收到恳求后回应,所以HTTP协议被称作“恳求和响应”协议。扫瞄器恳求具有某种构造,恳求中包括一个恳求行、头域和可能的信息体。最一般的恳求类型时对页面的一个简洁恳求,如下例:GET/hello.htmHTTP/1.1

这是对网站上hello.htm页面的HTTP恳求的例子。首行是恳求行,规定了恳求的方法、恳求的资源及使用的HTTP协议的版本。此例中,恳求的方法是GET方法,此方法用于猎取特定的资源。其他的恳求方法包括postheaddeletetrace及put方法等。此例中的其次行是头〔header〕。Host头规定了网站上hello.htm文件的Internet地址,此例中,主机是一个典型恳求通常包含很多头,被称做恳求的头,头供给了关于信息体的附加信息及恳求的来源。其中有些头是标准的,有些和特定的扫瞄器有关。一个恳求还可能包含信息体,例如,信息体可包含html表单的内容。在html表单上单击submit按钮时,该表单使用action=“post”或action=“get”特征,输入表单的内容都被发送到效劳器上,该表单内容就由post方法或get方法在恳求的信息体中发送。效劳器在收到恳求时,返回响应。响应也有某种构造,每个响应都由状态行开头,可以包含几个头及可能的信息体,被称作响应的头和响应信息体。这些头和信息体由效劳器送给客户的扫瞄器。信息体就是客户恳求的网页的运行结果,对于JSP页面,就是页面的静态信息。状态行说明白正在使用的协议、状态代码及文本信息。一、request对象HTTP通信协议是客户与效劳器之间的一种提交〔恳求〕信息与相应信息〔request/response〕的通信协议。在JSP中,内置对象request封装了用户提交的信息,那么对该对象调用相应的方法可以猎取封装的信息,即使用该对象可以猎取用户提交的信息。客户通常使用HTML表单向效劳器的某个JSP页面提交信息,表单的一般格式是:<FORMmethod=get|postaction=“提交信息的目的页面”>提交手段</FORM>一、request对象其中<FORM>是表单标签,提交手段包括通过文本框、列表、文本区域等。通过下面方法来猎取这些信息:request.getParameter(“控件名”);1.猎取表单提交信息2.处理汉字信息当用request对象猎取客户提交的汉字字符时,会消逝乱码问题,所以对含有汉字字符的信息必需进展特殊的处理方式。首先,将猎取的字符串用ISO-8859-1进展编码,并将编码存放到一个字节数组中,然后再将这个数组转化为字符串即可。一、request对象Stringstr=request.getParameter(“girl”);byteb[]=str.getBytes(“ISO-8859-1”);str=newString(b);通过上述过程,提交的任何信息〔无论是汉字字符或西欧字符〕都能正确地显示。例如:Example3_3一、request对象3.常用方法举例当客户访问一个页面时,会提交一个HTTP恳求给效劳器的JSP引擎,这个恳求包括一个恳求行、头和信息体,例如:

host:localhost:8080accept-encoding:gzip,deflate首行叫做恳求行,规定了向访问的页面恳求提交信息的方式,如post、get等方式,以及恳求的页面的文件名字和使用的通信协议。一、request对象第2、3行分别是两个头〔header〕,其中host、accept-encoding被称为头名字,而localhost:8080以及gzip、deflate分别是他们的值,这里host的值tree2.jsp的地址。可以使用JSP引擎的内置对象来猎取客户提交的信息,说明如下:〔1〕getProtocol猎取客户向效劳器提交信息所使用的通信协议,例如/1.1〔2〕getServletPath猎取客户恳求的JSP页面文件的名目〔3〕getContentLength猎取客户提交的整个信息的长度。一、request对象〔4〕getMethod猎取客户提交信息的方式,比方post或get〔5〕getHeader(Strings)猎取头文件中由参数s指定的头名字的值,一般来说s参数可取的头名有accept、refer、accept-language、content-type、accept-encoding、user-agent、host、content-length、connection、cookie等,比方s取值user-agent将猎取客户的扫瞄器的版本号等信息。〔6〕getHeaderNames猎取头名字的一个枚举。〔7〕getHeaders(Strings)猎取头文件中指定头名字的全部值得一个枚举。〔8〕getRemoteAddr猎取客户的IP地址。一、request对象〔9〕getServerName猎取效劳器的名称。〔10〕getServerPort猎取效劳器的端口号。〔11〕getParameterNames猎取客户提交的信息体局部中name参数值的一个枚举。例如:Example3_4.jsptree2.jsp二、response对象当客户访问一个效劳器的页面时,会提交一个HTTP恳求,效劳器收到恳求时,返回HTTP响应。响应和恳求类似,也有某种构造,每个响应都由状态行开头,可以包含几个头及可能的信息体〔网页的结果输出局部〕。1.动态响应contentType属性当一个客户恳求访问一个JSP页面时,假设该页面用page指令设置页面的contentType属性值是text/html那么JSP引擎就依据这种属性值做出响应,将页面的静态局部返回给客户。由于page指令只能为contentType指定一个值,用来准备相应的MIME类型,假设想动态地转变这个属性的值来相应客户,就需要使用response对象的setContentType(Strings)方法来转变contentType的属性值。二、response对象publicvoidsetContentType(Strings)S的取值可以是text/html、text/plain、application/x-msexcel、application/msword例如:Example3_10.jsp二、response对象2.Response的HTTP文件头Response对象可以使用方法addHeader(Stringhead,Stringvalue);或方法setHeader(Stringhead,Stringvalue);动态地添加新的响应头和头的值,并将这些头发送给客户的扫瞄器。假设添加的头已经存在,则从前的头被掩盖。例如:Example3_12.jsp二、response对象3.response重定向在某些状况下,当响应客户时,需要将客户重新引导至另一个页面。例如,假设客户输入的表单信息不完整,就会再被引导到该表单的输入页面。可以使用下面的方法:response.sendRedirect(URLurl)例如:Example3_13.jsptree4.jsp二、response对象4.Response的状态行当效劳器对客户恳求进展响应时,它发送的首行被称做状态行。状态行包括3位数字的状态代码和对状态代码的描述〔称作缘由短语〕。见p65〔表3.1〕三、session对象HTTP协议是一种无状态协议。一个客户向效劳器发出恳求(request),然后效劳器返回响应(response),连接就被关闭了。在效劳器端不保存连接的有关信息,因此当下一次连接时,效劳器已没有以前的连接信息了,同时,无法推断这一次连接和以前的连接是否属于同一客户。因此,必需使用会话记录有关连接的信息。从一个客户翻开扫瞄器并连接到效劳器开头,到客户关闭扫瞄器离开这个效劳器完毕,被称作一个会话。当一个客户访问一个效劳器时,可能会在这个效劳器的几个页面串之间反复连接、反复刷新一个页面或不断地向一个页面提交信息等,效劳器应当通过某种方法知道这是同一客户,这就需要session〔会话〕对象。三、session对象1.Session对象的Id当一个客户首次访问效劳器上的一个JSP页面时,JSP引擎产生一个session对象,这个session对象调用相应的方法可以存储客户在访问各个页面期间提交的各种信息,比方:姓名、号码等信息。这个session对象被安排一个String类型的Id号,JSP引擎同时将这个Id号发送到客户端,存放在客户的Cookie中。这样,session对象和客户之间建立起一一对应关系。三、session对象例如:session.jsptom.jspjerry.jsp在上面的例子中,客户在效劳器的三个页面之间进展连接,只要不关闭扫瞄器,三个页面的session对象是完全一样的。客户首先访问session.jsp页面,从这个页面再连接到tom.jsp页面,然后从tom.jsp再连接到jerry.jsp页面。三、session对象2.Session对象与URL重写session对象能和客户建立起一一对应关系依靠于客户的扫瞄器是否支持Cookie。假设客户端不支持Cookie,那么客户在不同网页之间的session对象可能是互不一样的,由于效劳器无法将Id存放到客户端,就不能建立session对象和客户的一一对应关系。假设客户的扫瞄器不支持Cookie,可以通过URL重写来实现session对象的唯一性,所谓URL重写,就是当客户从一个页面重新连接到一个页面时,通过向这个新的URL添加参数,把session对象的Id传带过去,这样就可以保障客户在该网站各个页面中的session对象是完全一样的。三、session对象Stringstr=response.encodeRedirectURL(“jerry.jsp”);3.Session对象的常用方法〔1〕publicvoidsetAttribute(Stringkey,Objectobj)session对象类似于散列表,session对象可以调用该方法将参数Object指定的对象obj添加到session对象中,并为添加的对象指定了一个索引关键字,假设添加的两个对象的关键字一样,则从前添加的对象被去除。〔2〕publicObjectgetAttribute(Stringkey)猎取session对象中含有关键字是key的对象,由于任何对象都可以添加到session对象中,因此用该方法取回对象时,应强制转化为原来的类型。三、session对象〔3〕publicEnumerationgetAttributeNamessession对象调用该方法产生一个枚举对象,该枚举对象使用nextElements方法遍历session对象中全部对象。〔4〕publiclonggetCreationTimesession对象调用该方法可以猎取该对象创立的时间,单位时间是毫秒。〔5〕publiclonggetLastAccessedTime猎取当前session对象最终一次被操作的时间,单位是毫秒。〔6〕publicintgetMaxInactiveIterval设置session对象的生存时间三、session对象〔7〕publicvoidsetMaxInactiveIterval(intn)设置session对象的生存时间〔8〕publicvoidremoveAttribute(Stringkey)从当前session对象中删除关键字是key的对象〔9〕publicStringgetId猎取session对象的编号〔10〕publicvoidinvalidate使得session无效例如:Example3_17.jspfirst.jspaccount.jsp三、session对象<%Strings=request.getParameter(“boy“);session.setAttribute(“name“,s);%>从Example3_17.jsp中得到boy的值,然后将之保存到session对象中,关键字为name.String姓名=(String)session.getAttribute(“name“);<%=姓名%>通过session对象得到被保存的关键字为name的变量,并将之输出。4.计数器四、application对象不同客户的session对象是互不一样的,与session对象不同的是application对象对全部客户来说都是一样的。1.Application对象的常用方法〔1〕voidsetAttribute(Stringkey,Objectobj)〔2〕ObjectgetAttribute〔3〕EnumerationgetAttributeNames〔4〕voi

温馨提示

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

评论

0/150

提交评论