Java web 第4章JSP内置对象.ppt

上传人:max****ui 文档编号:7260579 上传时间:2020-03-17 格式:PPT 页数:41 大小:298.31KB
返回 下载 相关 举报
Java web 第4章JSP内置对象.ppt_第1页
第1页 / 共41页
Java web 第4章JSP内置对象.ppt_第2页
第2页 / 共41页
Java web 第4章JSP内置对象.ppt_第3页
第3页 / 共41页
点击查看更多>>
资源描述
2020年3月17日 1 JSP内置对象 2020年3月17日 2 教学内容 request对象response对象out对象session对象application对象exception对象pageContext对象config对象page对象 2020年3月17日 3 一 request对象 HTTP通信协议是客户与服务器之间一种提交 请求 信息与响应信息 request respone 的通信协议 在JSP中 内置对象request封装了用户提交的信息 那么该对象调用相应的方法可以获取封装的信息 示例 Example3 1 jsptree jsp 2020年3月17日 4 HTTP请求中包括一个请求行 头域和可能的信息体 如 GET hello htmlHTTP 1 1HOST accept encoding gzip deflate一个典型的请求通常包含许多请求头 有些头是标准的 有些和特定的浏览器有关 包含的信息提可能是表单的内容 2020年3月17日 5 Request对象包括很多方法 主要有 getCookies 返回客户端的cookie对象 结果是一个cookie数组 getSession booleancreate 返回和当前客户端请求相关联的HttpSession对象 如果当前客户端请求没有和任何HttpSession对象关联 那么当create变量为true 则创建一个HttpSession对象并返回 反之 返回null getHeader Stringname 获得http协议定义的传送文件头信息 2020年3月17日 6 getAttribute Stringname 返回name指定的属性值 若不存在指定的属性 就返回null getattributeNames 返回request对象所有属性的名字 结果集是一个Enumeration 枚举 类的实例 getHeaderNames 返回所有requestheader的名字 结果集是一个Enumeration 枚举 类的实例 getHeaders Stringname 返回指定名字的requestheader的所有值 结果集是一个Enumeration 枚举 类的实例 getMethod 返回客户端向服务器端传送数据的方法 一般方法有GET POST PUT等类型 getParameter Stringname 以字符串的形式返回客户端传来的某一个请求参数的值 该参数名由name指定 当传递给此方法的参数名没有实际参数与之对应时 返回null 2020年3月17日 7 getparameterNames 返回客户端传送给服务器端的所有的参数名 结果集是一个Enumeration 枚举 类的实例 当传递给此方法的参数名没有实际参数与之对应时 返回null getParameterValues Stringname 以字符串数组的形式返回指定参数所有值 getQueryString 返回查询字符串 该字符串由客户端以GET方法向服务器端传送 getRequestURI 获得发出请求字符串的客户端地址 getServletPath 获得客户端所请求的脚本文件的文件路径 setAttribute Stringname Java lang Objecto 设定名字为name的request参数值 该值由Object类型的o指定 getServerName 获得服务器的名字 如果没有设定服务器名 则返回服务器IP地址 2020年3月17日 8 getServerPort 获得服务器的端口号 getRemoteAddr 获得客户端的IP地址 getRemoteHost 获得客户端主机的名字 若失败 则返回客户端电脑的IP地址 getProtocol 获取客户端向服务器端传送数据所依据的协议名称 如http 1 1 getContentLength 以字节为单位返回客户端请求的大小 如果无法得到该请求的大小 则返回 1 getContentType 获取客户端请求的MIME类型 如果无法得到该请求的MIME类型 那么返回 1 getInputStream 以二进制的形式将客户端的请求以一个ServletInputStream的形式返回 使用此方法可以获得客户端的multipart form data数据 可以实现文件上传 2020年3月17日 9 isSecure 如果客户机是通过一个安全的访问方式访问的 就返回true 反之 返回false getDateHeader 返回一个long类型的数据 表示客户端发送到服务器的头信息中的时间信息 getInitHeader 获取客户端发送到服务器端的头信息中的某一个特定的信息 并转换为int类型 getContextPath 返回环境路径 对于JSP来说 一般是当前Web应用程序的根目录 isRequestedSessionIdValid 返回一个指示客户端请求发送SessionID是否仍然有效的布尔值 isRequestedSessionIdFromCookie 返回一个指示客户端请求发送SessionID是否存在于Cookie中的布尔值 isRequestedSessionIdFromURL 返回一个指示客户端请求发送SessionID是否存在于URL中的布尔值 2020年3月17日 10 客户通常使用HTML表单向服务器的某个JSP页面提交信息 表单的一般格式 提交手段请求的方法有get post head delete trace put等 例 request jsp 2020年3月17日 11 当用request对象获取客户提交的汉字字符时 会出现乱码问题 所以对含有汉字字符的信息必须进行特殊的处理方式 首先 将获取的字符串用ISO 8859 1进行编码 并将编码存放到一个字节数组中 然后再将这个数组转化为字符串对象即可 例 Example3 3 jsptree1 jsp 处理汉字信息 2020年3月17日 12 二 response对象 用response对象对客户的请求作出动态响应 将JSP处理数据后的结果传回到客户端 比如 当一个客户请求访问一个JSP页面时 该页面用page指令设置页面的contentType属性的值是text html 那么JSP引擎将按着这种属性值响应客户对页面的请求 将页面的静态部分返回给客户 如果想动态地改变contentType的属性值就需要用response对象改变页面的这个属性的值 作出动态的响应 2020年3月17日 13 Response对象的常用方法为 addCookie Cookiecookie 添加一个Cookie对象 用来保存客户端的用户信息 用request的getCookies 方法可以获得这个Cookie addHeader Stringname Stringvalue 添加HTTP文件头 该header将会传到客户端去 如果有同名的header存在 那么原来的header将会被覆盖掉 containsHeader Stringname 判断指定名字的HTTP文件头是否存在 并返回布尔值 2020年3月17日 14 sendError intsc 向客户端发送错误信息 例如 505指示服务器内部错误 404指示网页找不到的错误 setHeader Stringname Stringvalue 设定指定名字的HTTP文件头的值 如果该值存在 那么它会被新的值覆盖 setContenType Stringtype 响应设置内容类型头 sendRedirect URL 可以将用户重定向到一个不同的页面 URL 2020年3月17日 15 response内置对象使用response内置对象刷新页面显示时间 2020年3月17日 16 动态响应contentType属性 如果想动态的改变这个属性的值来响应客户 就需要使用response对象的setContentType Strings 方法来改变contentType的属性值 该方法动态设置响应的MIME类型 参数s可取 text html application x msexcel application msword示例 response jsp 2020年3月17日 17 respose重定向 在某些情况下 当响应客户时 需要将客户重新引导至另一个页面 例如 如果客户输入的表单信息不完整 就会再被引导到该表单的输入页面 可以使用response的sendRedirect URLurl 方法实现客户的重定向 示例 Example3 13 jsptree4 jsp 2020年3月17日 18 out对象用来向客户端输出数据 并且管理应用服务器上的输出缓冲区 其基类是JspWriter 通常使用out println Stringname 和out print Stringname 它们两者最大的差别在于println 在输出的数据后面会自动加上换行的符号 反之 print 不会在数据后自动换行 out对象除了这两种方法最常使用之外 它还有一些方法 见下表 这些方法主要是用来控制管理输出的缓冲区 buffer 和输出流 outputstream 三 out对象 2020年3月17日 19 2020年3月17日 20 out对象示例 intout2 19810407 out println out2 out println out1 String valueOf out2 2020年3月17日 21 session对象和客户端的会话联系在一起 由容器自动创建 一个客户从打开浏览器连接到服务器开始 到客户关闭浏览器离开这个服务器结束 被称作一个会话 一个客户在一个会话期间 在该网站上不同页面之间跳转时 可以得用session对象来实现信息的共享 四 session对象 2020年3月17日 22 当使用者与服务器联机时 服务器可以给每一个上网的使用者一个Session并设定其中的内容 这些Session都是个别独立的 服务器端可以借此来辨别使用者信息进而提供个别的服务 Session对象的常用方法为 getAttribute Stringname 获得指定名字的属性 如果该属性不存在 将会返回null getAttributeNames 返回Session对象中存储的每个属性对象 结果集是一个Enumeration类的实例 setAttribute Stringname java lang Objectvalue 设定指定名字的属性值 并且把它存储在Session对象中 isNew 判断目前Session是否为新的Session 若是则返回ture 否则返回false 2020年3月17日 23 getId 返回Session对象在服务器端的编号 每生成一个Session对象 服务器都会给它一个编号 并且该编号不会重复 这样服务器才能根据编号来识别Session 并且正确的处理某一特定的Session及其提供的服务 getCreationTime 返回Session对象被创建的时间 单位为毫秒 getLastAccessedTime 返回当前Session对象最后一次被操作的时间 时间的单位为毫秒 getMaxInactiveInterval 获取Session对象的生存时间 时间的单位为秒 setMaxInactiveInterval intinterval 设置Session的有效时间 也叫超时时间 时间的单位为秒 removeAttribute Stringname 删除指定的属性 包含属性名 属性值 如果在有效时间内 用户做出了新的请求 那么服务器就会将其看作一个新的用户 此时 服务器将创建一个新的Session 旧的Session信息将会丢失 2020年3月17日 24 关于sessionID的示例客户在访问以下三个页面中 所获取到的session对象是完全相同的 示例 Session jsp Session jsp Tom jsp jerry jsp 2020年3月17日 25 在重定向到新的页面利用session对象实现数据的传递 reponse sendRedirect URL 见示例 ch05 session login htmlCheck login jspLoginsuccess jsp 2020年3月17日 26 五 application对象服务器启动后就产生一个application对象 所有的客户在页面之间跳转时用的都是同一个对象 也就是说这些线程共享这个application对象使用Session对象时 各个客户端共享一个Session对象 Application对象主要方法为 getAttribute Stringname 返回由name指定名字的Application对象属性的值 这是个Object对象 如果没有 就返回null getAttributeNames 返回所有Application对象的属性的名字 结果集是一个Enumeration 枚举 类的实例 2020年3月17日 27 getInitParameter Stringname 返回由name指定的名字的application对象的某个属性的初始值 如果没有参数 就返回null getServerInfo 返回servlet编译器当前版本信息 setAttribute Stringname Objectobject 将参数Object指定的对象obj添加到application对象中 并为添加的对象指定一个属性 2020年3月17日 28 常用方法publicvoidsetAttribute key Objecto publicObjectgetAttribute key publicEnumberationgetAttributeNames publicvoidremoveAttributes Stringkey 2020年3月17日 29 application对象示例 2020年3月17日 30 示例 Test application jspApplication jsp Test application2 jsp 2020年3月17日 31 Exception对象用来处理JSP文件在执行时所有发生的错误和异常 Exception对象可以配合page指令一起使用 通过指定某一个页面为错误处理页面 把所有的错误都集中那个页面进行处理 可以使得整个系统的健壮性得到加强 也使得程序的流程更加简单明晰 Exception对象的主要方法为 getMessage 返回错误信息 printStackTrace 以标准错误的形式输出一个错误和错误的堆栈 toString 以字符串的形式返回一个对异常的描述 六 Exception对象 2020年3月17日 32 exception对象是java lang Throwable类的一个实例 指的是运行时异常 只有被声明为错误页面中 在页面指令里有isErrorPage true 才可以使用 例子 syntax error jspException jsp Error jspException jsp 2020年3月17日 33 七 pageContext对象pageContext对象被用来对属于JSP中可见部分中已经命名对象的访问 可以根据不同的对象范围来实现对这些对象的管理 其主要方法为 getAttribute 返回与指定范围内名称有关的变量或null findAttribute 用来按照页面请求 会话以及应用程序范围的顺序实现对某个已经命名属性的搜索 setAttribute 用来设置默认页面的范围或指定范围之中的已命名对象 removeAttribute 用来删除默认页面范围或指定范围之中已命名的对象 2020年3月17日 34 常见的方法有 forward getAttribute setAttribute findAttribute removeAttribute getRequest getResponse getServletConfig getServletContext getSession 例子 pagecontext form htmlpageContext1 jsppageContext2 jsp 2020年3月17日 35 Config对象是JSP页面通过JSPcontainer进行初始化时被传递的对象 Config对象具有Web服务器所需的多种环境设定值 简单点说 Config对象就是提供对初始化JSP的配置数据的访问 Config对象的主要方法为 getInitParameter 以字符串类型返回指定初始参数的内容 如果参数不存在 则返回null getInitParameterNames 以Enumeration类型返回所有初始参数的名称 如果没有初始化参数 则返回null getServletContext 返回的Servlet是属于哪一个application getServletName 以字符串类型返回Servlet的名称 八 Config对象 2020年3月17日 36 config对象示例 2020年3月17日 37 Page对象是java lang Object类的一个实例 它代表JSP编译后的产生的SERVLET类的实例 代表JSP页面本身 只有在当前的JSP页面才有效 例 page jsp 九 page对象 2020年3月17日 38 2020年3月17日 39 总结 通常会将request session application和pageContext归为一类 原因在于 它们皆能借助属性来做到数据分享 2020年3月17日 40 下面列出了一般储存和取得属性的方法 2020年3月17日 41 使用属性的一般注意事项 当我们使用getAttribute Stringname 取得name属性的值时 它返回一个java lang Object类型的对象 因此 还必须根据name属性值的类型进行类型转换工作 例如 如果要取得String类型的Name属性时 StringuserName String pageContext getAttribute user 如果是Integer类型的Year属性时 IntegerYear Integer session getAttribute Year
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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