第三讲 JSP隐式对象.ppt_第1页
第三讲 JSP隐式对象.ppt_第2页
第三讲 JSP隐式对象.ppt_第3页
第三讲 JSP隐式对象.ppt_第4页
第三讲 JSP隐式对象.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

第三讲 JSP隐式对象 2 纲要 JSP隐式对象的介绍out输出对象request请求对象response响应对象session会话对象application对象pageContext对象 3 什么是JSP隐式对象 在JSP页面的文件中不用声明就可以使用的对象 JSP隐式对象又称为内置对象或内部对象 JSP为简化页面的开发提供了一些隐式对象 JSP隐式对象是Web容器加载的一组类的实例 它不像一般的Java对象那样用 new 去获取实例 而是可以直接在JSP页面使用的对象 所有的隐式对象只有对Scriptlet或者表达式有用 4 内置对象所对应类的包在哪里 在JSP的默认类包中 在Tomcat6 0 common lib的servlet api jar和jsp api jar包中 如下所示 javax servlet jsp javax servlet javax servlet http 5 隐式对象的分类 输入和输出对象控制页面的输入和输出 输入输出对象包括request response和out 作用域通信对象检索与JSP页面的Servlet相关信息 作用域通信对象包括session application和pageContextServlet对象提供有关页面环境的信息 Servlet对象包括config和page 错误对象用来处理JSP页面中的错误 错误对象包括exception 6 9种内置对象的语法与作用 7 out输出对象 out对象该对象是一个输出流 用来向客户端输出数据 也就是在浏览器内输出信息 常用方法 out print boolean out println boolean out print char out println char out print double out println double out print float out println float out print long out println long out print String out println String out newLine 输出一个换行符out flush 输出缓冲区里的内容out close 关闭流 8 out输出对象 常用方法out clear 清空缓冲区的内容 如果缓冲区已经刷新 则会抛出IOException异常 out clearBuffer 清空缓冲区的内容 如果缓冲区已经刷新 则并不会抛出IOException异常 out getBufferSize 得到输出缓冲区的大小isAuthoFlush 是否自动刷新输出缓冲区 9 println 与print 的区别 out println 参数 在后面加一个换行符 不是指显示结果换行 out print 参数 不会在数据后自动换行 10 out对象应用 使用out对象向客户输出信息 包括表格等内容 修改exampleOut1 jsp代码 使运行效果如下图所示 11 request请求对象 request对象封装了用户提交的信息 那么该对象调用相应的方法 则可获取封装信息 如请求参数 Cookie HTTP请求头以及客户端IP地址等等 常用方法getProtocol 获取客户向服务器提交信息所使用的通信协议 比如http 1 1等getServletPath 获取客户请求的JSP页面文件的目录 相对于根目录的地址 getContentLength 取得客户提交的整个信息的长度getMethod 获取客户提交信息的方式 比如post或get 12 getHeader Strings 获取HTTP头文件中由参数s指定的头名字的值 s参数有 accept referer accept language content type accept encoding use agent host content length connection cookie等 如 getHeader user agent 表示获取客户的浏览器版本号等信息 getHeaderNames 获取头名字的一个枚举 getHeaders Strings 获取头文件中指定头名字的全部值的一个枚举 getRemoteAddr 取得客户端的IP地址getRemoteHost 取得客户机的名称 如果获取不到 就获取IP地址 getServerName 取得服务器的名字getServerPort 获取服务器的端口号getParameter Stringname 根据name取得传入的参数getParameterNames 取得传入参数的名字集合getLocale 取得本地的国家和语言 13 request应用 获取客户提交的信息 您的输入的是 14 注意 使用request对象获取信息时要格外小心 例如 或者 这两条语句结合起来使用 很容易出现NullPointerException异常 因为当data文本框没有输入任何数据时 textContent也就为null 而Double parseDouble Strings 方法要求s不为null 否则就抛出NullPointerException这一异常 为了避免在运行时容易出现空对象异常 使用 StringtextContent request getParameter data doublenumber Double parseDouble textContent StringtextContent request getParameter data if textContent null textContent 0 0 doublenumber Double parseDouble textContent StringtextContent request getParameter data null 0 0 request getParameter data doublenumber Double parseDouble textContent 如实例3 2 exampleRequest1 jsp 15 实例3 2 exampleRequest1 jsp 16 处理汉字信息 当用request对象获取客户提交的汉字字符时 无法正确显示 通常在使用request之前 编写如下语句就可以解决 request setCharacterEncoding GBK 当然编码GBK也可以是GB2312 GB18030等支持中文的编码 如实例3 3 exampleRequest2 jsp 17 处理汉字信息 当用request对象获取客户提交的汉字字符时 如无法正确显示 也可以通过如下方法解决 首先 将获取的字符串用ISO 8859 1进行编码 并将编码存放到一个字节数组里 然后再将这个数组转化为字符串对象即可 Stringstr request getParameter num1 Byteb str getBytes ISO 8859 1 Str newString b 18 response响应对象 对客户的请求作出动态响应 向客户端发送数据 比如根据客户要求 设置客户端输出信息的字符集 重新定向客户端的请求或者添加Cookie等 在JSP文件中该对象比较少用 因为该对象属性的主要功能有page标签完成 常用方法setContentType Strings 改变contentType的属性值add set Header Stringhead Stringvalue 动态添加新的响应头和头的值sendRedirect Stringlocation 重新定向客户端的请求setStatus intn 设置响应的状态行 setHeader Stringhead Stringvalue 设置响应头和头的值 addCookie Cookiecookie 加入Cookie方法 19 response应用 动态响应contentType属性由于page指令只能为contentType指定一个值 用来决定响应的MIME类型 如果想动态地改变这个属性的值来响应客户 就需要使用setContentType Strings 方法来改变ContentType的属性值 格式如下 publicvoidsetContentType Strings 其中 参数s的MIME 内容类型 类型部分可取text htmltext plain 以文本的类型提交给客户 application x msexcelapplication msword等 20 实例3 4 exampleResponse1 jsp 我正在学习response对象的setContentType方法将当前页面保存为world文档吗 21 response重定向 在某些情况下 当响应客户时 需要将客户重新引导至另一个页面 例如 如果客户输入的表单信息不完整 就会再被引导到该表单的输入页面 使用sendRedirect URLurl 方法实现客户的重定向 如实例3 5 exampleResponse2 jsp 22 session会话对象 是记录客户端的访问状态 当一个客户打开浏览器并连接到服务器开始 到客户关闭浏览器离开这个服务器结束 被称做一个会话 保存在该对象中的变量值可以在客户端访问的整个周期内使用 session对象的ID 23 session常用方法 publicvoidsetAttribute Stringkey Objectvalue 将对象obj添加到session对象中 并为添加的对象指定一个索引关键字 如果添加的两个对象的关键字相同 则先前添加的对象被清除 publicObjectgetAttribute Stringkey 获取session对象中含关键字是key的对象 该方法返回的对象 应强制转换为原来的类型 如 String顾客 String session getAttribute customer publicEnumerationgetAttributeNames 产生一个枚举对象 该枚举对象使用nextElemets 方法遍历session对象中所含有的全部对象 publicvoidremoveAttribute Stringkey 从当前session对象中删除关键字是key的对象 publicStringgetId 获取session对象的编号 publiclongsetMaxInactiveIterval intn 设置session对象的生存的时间 单位是秒 publiclonggetMaxInactiveIterval 取得session对象的生存的时间 publicbooleanisNew 判断该用户是否是新用户 24 用session对象实现一个计数器 您是第个访问本站的人 session应用 25 JSP控制用户对页面的访问 用户名 密码 26 欢迎使用本系统 27 application对象 服务器启动后 就产生了application对象 当一个客户访问服务器上的一个JSP页面时 JSP引擎为该客户分配这个application对象 当客户在所访问的网站的各个页面之间浏览时 这个application对象都是同一个 直到服务器关闭 这个application对象才被取消 保存在该对象中的变量值可以让所有客户端使用 与session对象不同的是 所有客户都共享同一个application对象 常用方法setAttribute Stringkey Objectobj getAttribute Stringkey removeAttribute Stringkey removeAttribute Stringkey 28 request response session application作用域的比较 29 pageContext对象 pageContext对象使用户可以访问页面作用域中定义的所有隐式对象 pageContext对象提供方法可以访问隐式对象在页面上定义的所有属性 它的作用范围仅仅在页面内 getRequest 返回当前的request对象getResponse 返回当前的response对象getSession 返回当前的session对象getOut 返回输出对象getException 返回当前的exception对象getPage 返回当前页面对象getServletConfig 返回当前页面的ServletConfig对象getServletContext 返回ServletContext对象 这个对象对所有页面都是共享的 30 也提供存取属性的方法 voidsetAttribute Stringname Objectvalue ObjectgetAttribute Stringname voidremoveAttribute Stringname 使用时 还可以带上指定范围的参数 ObjectgetAttribute Stringname intscope voidremoveAttribute Stringname intscope voidsetAttribute Stringname Objectvalue intscope 范围参数的值 指PageContext的四个常量 PAGE SCOPE REQUEST SCOPE SESSION SCOPE APPLICATION SCOPEObjectfindAttribute Stringname 按page requ

温馨提示

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

评论

0/150

提交评论