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

下载本文档

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

文档简介

JSP 内置对象 *1 教学内容: w request对象 w response对象 w out对象 w session对象 w application对象 w exception对象 w pageContext对象 w config对象 w page对象 Date2 一、request 对象 w HTTP通信协议是客户与服务器之间一种提交 (请求)信息与响应信息( request/respone)的通信协议。在JSP中 ,内置对象request封装了用户提交的信息, 那么该对象调用相应的方法可以获取封装的信 息。 w示例:Example3_1.jsp tree.jsp Date3 wHTTP请求中包括一个请求行、头域和可能 的信息体,如: GET/hello.html HTTP/1.1 HOST: accept-encoding:gzip,deflate w一个典型的请求通常包含许多请求头,有 些头是标准的,有些和特定的浏览器有关 。包含的信息提可能是表单的内容。 Date4 wRequest对象包括很多方法,主要有: ngetCookies():返回客户端的cookie对 象,结果是一个cookie数组。 ngetSession(boolean create):返回和 当前客户端请求相关联的HttpSession对象 ,如果当前客户端请求没有和任何 HttpSession对象关联,那么当create变 量为true,则创建一个HttpSession对象 并返回;反之,返回null。 ngetHeader(String name):获得http协 议定义的传送文件头信息 。 Date5 ngetAttribute(String name):返回name指定的 属性值,若不存在指定的属性,就返回null。 ngetattributeNames():返回request对象所有属 性的名字,结果集是一个Enumeration(枚举)类的 实例。 ngetHeaderNames():返回所有request header 的名字,结果集是一个Enumeration(枚举)类的实 例。getHeaders(String name):返回指定名字的 request header的所有值,结果集是一个 Enumeration(枚举)类的实例。 ngetMethod():返回客户端向服务器端传送数据的方 法,一般方法有GET、POST、PUT等类型。 ngetParameter(String name):以字符串的形式 返回客户端传来的某一个请求参数的值,该参数名由 name指定。当传递给此方法的参数名没有实际参数与 之对应时,返回null。 Date6 ngetparameterNames():返回客户端传送给服务器端 的所有的参数名,结果集是一个Enumeration(枚举) 类的实例。当传递给此方法的参数名没有实际参数与之 对应时,返回null。 ngetParameterValues(String name):以字符串数 组的形式返回指定参数所有值。 ngetQueryString():返回查询字符串,该字符串由客 户端以GET方法向服务器端传送。 ngetRequestURI():获得发出请求字符串的客户端地 址。 ngetServletPath():获得客户端所请求的脚本文件的 文件路径。 nsetAttribute(String name,Java.lang.Object o):设定名字为name的request参数值,该值由 Object类型的o指定。 ngetServerName():获得服务器的名字,如果没有设 定服务器名,则返回服务器IP地址。 Date7 ngetServerPort():获得服务器的端口号。 ngetRemoteAddr():获得客户端的IP地址。 ngetRemoteHost():获得客户端主机的名字,若失败, 则返回客户端电脑的IP地址。 ngetProtocol():获取客户端向服务器端传送数据所依据 的协议名称,如http/1.1。 ngetContentLength():以字节为单位返回客户端请求的 大小。如果无法得到该请求的大小,则返回-1。 ngetContentType():获取客户端请求的MIME类型。如 果无法得到该请求的MIME类型,那么返回-1。 ngetInputStream():以二进制的形式将客户端的请求以 一个ServletInputStream的形式返回。使用此方法可以 获得客户端的multipart/form-data数据,可以实现文 件上传。 Date8 nisSecure():如果客户机是通过一个安全的访问方式访 问的,就返回true;反之,返回false. ngetDateHeader():返回一个long类型的数据,表示 客户端发送到服务器的头信息中的时间信息。 ngetInitHeader():获取客户端发送到服务器端的头信 息中的某一个特定的信息,并转换为int类型。 ngetContextPath():返回环境路径。对于JSP来说, 一般是当前Web应用程序的根目录。 nisRequestedSessionIdValid():返回一个指示客 户端请求发送Session ID是否仍然有效的布尔值。 nisRequestedSessionIdFromCookie():返回一个 指示客户端请求发送Session ID是否存在于Cookie中 的布尔值。 nisRequestedSessionIdFromURL():返回一个指示 客户端请求发送Session ID是否存在于URL中的布尔值 。 Date9 w客户通常使用HTML表单向服务器的某个 JSP页面提交信息,表单的一般格式: 提交手段 w请求的方法有get 、post、head 、 delete、trace 、put 等. w例: request.jsp Date10 当用request对象获取客户提交的汉字字符时, 会出现乱码问题,所以对含有汉字字符的信息必须 进行特殊的处理方式。首先,将获取的字符串用ISO -8859-1进行编码,并将编码存放到一个字节数组中 ,然后再将这个数组转化为字符串对象即可。 例: Example3_3.jsp tree1.jsp u处理汉字信息 Date11 二、response 对象 u 用response对象对客户的请求作出动态响应,将 JSP 处理数据后的结果传回到客户端。 u比如,当一个客户请求访问一个JSP页面时,该页 面用page指令设置页面的contentType属性的值是 text/html,那么JSP引擎将按着这种属性值响应客 户对页面的请求,将页面的静态部分返回给客户。 u如果想动态地改变contentType的属性值就需要用 response对象改变页面的这个属性的值,作出动态的 响应。 Date12 wResponse对象的常用方法为: naddCookie(Cookie cookie):添加一个 Cookie对象,用来保存客户端的用户信息,用 request的getCookies()方法可以获得这个 Cookie。 naddHeader(String name,String value):添加HTTP文件头,该header将会传 到客户端去,如果有同名的header存在,那么 原来的header将会被覆盖掉。 ncontainsHeader(String name):判断指 定名字的HTTP文件头是否存在,并返回布尔值 。 Date13 nsendError(int sc):向客户端发送错误信息 ,例如,505指示服务器内部错误;404指示网 页找不到的错误。 nsetHeader(String name,String value) :设定指定名字的HTTP文件头的值,如果该值存 在,那么它会被新的值覆盖。 nsetContenType(String type):响应设置内 容类型头。 nsendRedirect(URL):可以将用户重定向到一 个不同的页面(URL)。 Date14 response内置对象 使用response内置对象刷新页面 显示时间: Date15 u 动态响应contentType属性 如果想动态的改变这个属性的值来响应客户,就需 要使用response对象的setContentType(String s)方法来改 变contentType的属性值,该方法动态设置响应的MIME 类型,参数s可取:text/html、application/x-msexcel、 application/msword 示例: response.jsp Date16 u respose重定向 在某些情况下,当响应客户时,需要将客户重 新引导至另一个页面。例如,如果客户输入的表单 信息不完整,就会再被引导到该表单的输入页面。 可以使用response的sendRedirect(URL url)方法 实现客户的重定向。 示例: Example3_13.jsp tree4.jsp Date17 wout对象用来向客户端输出数据,并且管理应用服务器上 的输出缓冲区,其基类是JspWriter。通常使用 out.println(String name)和 out.print(String name),它们两者最大的差 别在于println( )在输出的数据后面会自动加上 换行的符号;反之,print( )不会在数据后自动换 行。 wout 对象除了这两种方法最常使用之外,它还有一 些方法(见下表),这些方法主要是用来控制管理 输出的缓冲区(buffer)和输出流(output stream)。 三、out 对象 Date18 方法名说明 print()输出数据 println()按行输出数据 newLine()输出一个换行符 flush()输出缓冲区里的数据 close()关闭输出流 clearBuffer()清除缓冲区里的数据,并把数据输出到客 户端 clear()清除缓冲区里的数据,但不会把数据输出 到客户端 getBufferSize () 获得缓冲区的大小 getRemaining () 获得缓冲区中没有被占用的空间的大小。 Date19 out对象示例 “); int out2=19810407; out.println(out2+“); out.println(out1=(String.valueOf(out2)+“); % Date20 wsession对象和客户端的会话联系在一起,由容器 自动创建。 w一个客户从打开浏览器连接到服务器开始,到客户 关闭浏览器离开这个服务器结束,被称作一个会话 。 w一个客户在一个会话期间,在该网站上不同页面之 间跳转时,可以得用session对象来实现信息的共 享。 四、 session对象 Date21 w当使用者与服务器联机时,服务器可以给每一个上网 的使用者一个Session并设定其中的内容,这些 Session都是个别独立的,服务器端可以借此来辨别 使用者信息进而提供个别的服务。 Session对象的 常用方法为: ngetAttribute(String name):获得指定名字的属性 ,如果该属性不存在,将会返回null。 ngetAttributeNames():返回Session对象中存储的 每个属性对象,结果集是一个Enumeration类的实例。 nsetAttribute(String name,java.lang.Object value):设定指定名字的属性值,并且把它存储在 Session对象中。 nisNew():判断目前Session是否为新的Session,若 是则返回ture,否则返回false。 Date22 ngetId():返回Session对象在服务器端的编号。每生 成一个Session对象,服务器都会给它一个编号,并且 该编号不会重复,这样服务器才能根据编号来识别 Session,并且正确的处理某一特定的Session及其提 供的服务。 ngetCreationTime():返回Session对象被创建的时 间,单位为毫秒。 ngetLastAccessedTime():返回当前Session对象最 后一次被操作的时间,时间的单位为毫秒。 ngetMaxInactiveInterval():获取Session对象的 生存时间,时间的单位为秒。 nsetMaxInactiveInterval(int interval):设置 Session的有效时间(也叫超时时间),时间的单位为 秒。 nremoveAttribute(String name)“删除指定的属性 (包含属性名、属性值)。如果在有效时间内,用户做 出了新的请求,那么服务器就会将其看作一个新的用户 ,此时,服务器将创建一个新的Session,旧的 Session信息将会丢失 Date23 w 关于session ID的示例 客户在访问以下三个页面中,所获取到的 session对象是完全相同的。 w示例 : Session.jsp (Session.jsp、Tom.jsp、jerry.jsp) Date24 w在重定向到新的页面利用session对象实现 数据的传递。 reponse.sendRedirect(URL); w见示例: ch05/ ( session_login.html Check_login.jsp Loginsuccess.jsp ) Date25 五、application对象 w服务器启动后就产生一个application对象。所 有的客户在页面之间跳转时用的都是同一个对象 。也就是说这些线程共享这个application对象 w使用Session对象时,各个客户端共享一个 Session对象。 wApplication对象主要方法为: ngetAttribute(String name):返回由name 指定名字的Application对象属性的值,这是个 Object对象,如果没有,就返回null。 ngetAttributeNames():返回所有 Application对象的属性的名字,结果集是一个 Enumeration(枚举)类的实例。 Date26 ngetInitParameter(String name): 返回由name指定的名字的application对 象的某个属性的初始值,如果没有参数,就 返回null。 ngetServerInfo():返回servlet编译器 当前版本信息。 nsetAttribute(String name,Object object):将参数Object指定的对象obj 添加到application对象中,并为添加的 对象指定一个属性。 Date27 常用方法 wpublic void setAttribute(key,Object o) wpublic Object getAttribute(key) wpublic Enumberation getAttributeNames() wpublic void removeAttributes(String key) Date28 application对象示例 Date29 w示例: (Test_application.jsp Application.jsp ) Test_application2.jsp Date30 Exception对象用来处理JSP文件在执行时所有发 生的错误和异常,Exception对象可以配合page指令一 起使用,通过指定某一个页面为错误处理页面,把所 有的错误都集中那个页面进行处理,可以使得整个系 统的健壮性得到加强,也使得程序的流程更加简单明 晰。 Exception对象的主要方法为: ugetMessage():返回错误信息。 uprintStackTrace():以标准错误的形式输出一个 错误和错误的堆栈。 u toString():以字符串的形式返回一个对异常的 描述。 六、Exception对象 Date31 wexception对象是 java.lang.Throwable类的一个实例, 指的是运行时异常,只有被声明为错误页 面中(在页面指令里有 isErrorPage=true)才可以使用。 w例子: syntax_error.jsp Exception.jsp ( Error.jsp Exception.jsp) Date32 七、pageContext对象 wpageContext对象被用来对属于JSP中可见部分中 已经命名对象的访问。 w可以根据不同的对象范围来实现对这些对象的管理 。 w其主要方法为: ngetAttribute():返回与指定范围内名称有关的 变量或null。 nfindAttribute():用来按照页面请求、会话以及 应用程序范围的顺序实现对某个已经命名属性的搜索 。 nsetAttribute():用来设置默认页面的范围或指 定范围之中的已命名对象。 nremoveAttribute():用来删除默认页面范围或指 定范围之中已命名的对象。 Date33 w常见的方法有: forward()、getAttribute()、 setAttribute()、findAttribute()、 removeAttribute()、getRequest()、 getResponse()、getServletConfig()、 getServletContext()、 getSession(). w例子:(pagecontext_form.html pageContext1.jsp pageContext2 .jsp ) Date34 wConfig对象是JSP页面通过JSP container进行初始化时被传 递的对象。Config对象具有Web服务器所需的多种环境设定值 ,简单点说,Config对象就是提供对初始化JSP的配置数据的 访问。 Config对象的主要方法为: ngetInitParameter():以字符串类型返回指定初始参数的 内容,如果参数不存在,则返回null。 ngetInitParameterNames():以Enumeration类型返回 所有初始参数的名称,如果没有初始化参数,则返回null。 ngetServletContext():返回的Servlet是属于哪一个 application。 ngetServletName():以字符串类型返回Servlet的名称。 八、Config对象 Date35 config对象示例 “); % Date36 wPage对象是java.lang.Object类的 一个实例,它代表JSP编译后的产生的 SERVLET类的实例,代表JSP页面本身 ,只有在当前的JSP页面才有效。 w例: page.jsp 九、page对象 Date37 隐隐含对对象类类型 pageContextjavax.servlet.jsp.PageContext requestjavax.servlet.http.HttpS

温馨提示

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

评论

0/150

提交评论