【Jsp精品源码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了Jsp精品源码-【精品】4 纯JSP页面编程—内置对象 - 其它资料的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
Web应用程序设计第4 章 纯
JSP页面编程 —内置对象 课堂案例 思考:“图书管理系统”已经在原型的基础上实现了,数据 的动态显示。
但是,这些数据目前都还是在内存中模拟设 置的。
那么,如何获取客户端的输入,又如何根据客户端 的请求从服务器获取指定数据呢? 客户端的请求和服务器端的响应,是Web应用的基础,
JSP程序是否提供了方便的机制来实现这些功能呢?1
JSP内置对象概述 1
JSP内置对象概述 out对象:把信息回送到客户端的浏览器中。
request对象:用来得到客户端的信息。
response对象:处理服务器端对客户端的一些响应。
session对象:用来保存单个用户访问时的一些信息。
application对象:用来保存网站的一些全局变量。
2、out对象 out对象是javax.servlet.
jsp.JspWriter类的实例,它的作用是把信息回 送到客户端的浏览器中。
在out对象中,最常用的方法就是print和println。
在使用print或println方法时,由于客户端是浏览器,因此向 客户端输出时,可以使用HTML中的一些标记,例如: “out.println”HelloJSP“”。
out对象的生命周期是当前页面。
因此对于每一个
JSP页面,都有一个 out对象eg.补充
源码01九九乘法表eg.补充
源码04 【例 1】out对象的使用 2、out对象 编写
JSP页面程序的3个步骤 先做出最终效果页面 通过效果页面的HTML代码分析程序机构 将数据处理、结构控制等转换为
JSP代码元素 3 request对象— 访问请求参数 String getParameter“paramName” String getParameterValues“paramName”String userName request.getParametername【例4-1】 访问请求参数示例eg.补充
源码04 【例 2】request对象的使用 处理汉字信息 request.getParameter得到Form中元素的时候,默认的字 符编码为ISO-8859-1,这种编码不能正确的显示汉字。
解决方法有两种: 取数据前先设置request的编码格式 直接用request的方法 “request.setCharacterEncoding”GB2312“”将字符 编码设置为GB2312 先取数据,然后重新编码 eg.补充
源码04 【例 3】汉字编码处理 3 request对象— 在作用域中管理属性request.setAttributekey Objectrequest.getAttributeString name 【例4-2】 在作用域中管理属性示例 3 request对象— 获取CookieCookie cookie request.getCookiesCookie cookienew CookieString cookieNamecookie.setValueString strValueresponse.addCookiecookie 【例4-3】 获取Cookie示例 3 request对象— 获取客户信息 方 法 说 明getHeaderString name 获得Http协议定义的文件头信息getHeadersString name 返回指定名字的request Header的所有值,其结果是一个枚举的实例getHeadersNames 返回所有request Header的名字,其结果是一个枚举的实例 获得客户端向服务器端传送数据的方法,如get,post,header,tracegetMethod 等getProtocol 获得客户端向服务器端传送数据所依据的协议名称getRequestURI 获得发出请求字符串的客户端地址getRealPath 返回当前请求文件的绝对路径getRemoteAddr 获取客户端的IP地址 eg.补充
源码04 【例 4】常用方法getRemoteHost 获取客户端的机器名称 【例4-4】 获取客户信息示例getServerName 获取服务器的名字getServerPath 获取客户端所请求的脚本文件的文件路径getServerPort 获取服务器的端口号 3 request对象— 访问安全信息 方 法 说 明 返回布尔类型的值,它用于确定这个请求是否使isSecure 用了一个安全协议,例如HTTP 返回布尔类型的值,表示会话是否使用了一个isRequestedSessionIdFromCookie Cookie来管理会话ID 返回布尔类型的值,表示会话是否使用URL重写isRequestedSessionIdFromURL 来管理会话IDisRequestedSessionIdFromValid 检查请求的会话ID是否合法 例如,可以通过使用request对象来确定当前请求是否使用了一个类似HTTP的安全协议:用户安全信息: 3 request对象— 访问国际化信息request对象中的getLocale和getLocales方法允许
JSP开发人员获取java.util.Local类型的信息。
java.util.Local类型的对象封装了一个国家和一种国家所使用的语言。
4 response对象—重定向网页response.sendRedirect“/login_ok.
jsp跳转路径中最开始的“/” 表示服务器地址,此行代码相当于:response.sendRedirect“http://localhost:8080/login_ok.
jsp正确用法是:response.sendRedirect“/web应用名/login_ok.
jsp或者response.sendRedirectrequest.getContextPath“/login_ok.
jsp跳转路径中最开始的“/” 表示web应用地址,此行代码相当于:response.sendRedirect “/web应用名/login_ok.
jsp 4 response对象—重定向网页response.sendRedirectlogin_ok.
jsp 方 法 说 明 sendErrorint number 使用指定的状态码向客户发送错误响应 使用指定的状态码和描述性消息向客户 sendErrorint numberString msg 发送错误响应 使用指定的重定向位置URL想客户发送 sendRedirectString location 重定向响应,可以使用相对URL【例4-5】 重定向网页示例 eg.补充
源码【例 5】重定向和转发的比较。
转发只能在当前应用跳转,重定向可以跳转到任何一个URL 转发地址栏不发生变化,重定向地址栏发生变化 转发会对request对象中的数据再次封装,重定向则是一个全新的请求注意:跳转路径中最开始的“/”response.sendRedirect“/myweb/login_ok.
jsp 4 response对象— 设置HTTP响应报头 方 法 说 明 使用给定的名称和日期值设置一个响应报头,如果指定setDateHeaderString namelong date 的名称已经设置,则新值会覆盖旧值 使用给定的名称和值设置一个响应报头,如果指定的名setHeaderString nameString value 称已经设置,则新值会覆盖旧值 使用给定的名称和整数值设置一个响应报头,如果指定setHeaderString nameint value 的名称已经设置,则新值会覆盖旧值addHeaderString namelong date 使用给定的名称和值设置一个响应报头addDateHeaderString namelong date 使用给定的名称和日期值设置一个响应报头containHeaderString name 返回一个布尔值,它表示是否设置了已命名的响应报头addIntHeaderString nameint value 使用给定的名称和整数值设置一个响应报头 为响应设置内容类型,其参数值可以为text/html,setContentTypeString type text/plain,application/x_msexcel或application/mswordsetContentLengthint len 为响应设置内容长度setLocalejava.util.Locale loc 为响应设置地区信息 4 response对象— 设置HTTP响应报头 技巧:通过设置HTTP头可实现禁用缓存功能,具体代码 如下: 需要注意的是,上面的代码必须在没有任何输出发送到 客户端之前使用。
eg.补充
源码04【例 6】动态contentType响应eg.补充
源码04【例 7】自动刷新 4 response对象— 缓冲区配置 缓冲可以更加有效地在服务器与客户之间传输内容。
HttpServletResponse对象为支持jspWriter对象而启用了缓冲区配置。
response对象提供了配置缓冲区的方法,如下表所示。
方 法 说 明flushBuffer 强制把缓冲区中内容发送给客户 返回响应所使用的实际缓冲区大小,如果没使用缓冲区,则该getBufferSize 方法返回0setBufferSizeint size 为响应的主体设置首选的缓冲区大小 返回一个boolean,表示响应是否已经提交;提交的响应已经写isCommitted 入状态码和报头reset 清除缓冲区存在的任何数据,同时清除状态码和报头 【例4-7】 缓冲区配置示例输出缓冲区的大小并测试强制将缓冲区的内容发送给客户。
变量的4种生存周期 函数级变量:定义于函数内部 页面级变量:使用
jsp声明 只作用于一个页面,关闭 服务器释放 会话级变量:使用session对象创建,会话结束释放,记 录的是不同用户的个别信息 应用程序级变量:使用application对象创建,关闭服务器 释放,记录不同用户之间共用的数据 5 session对象—自定义属性 public void setAttribute String key Object obj public Object getAttibute String key public Enumeration getAttributeNames public void removeAttribute String name 【例4-8】 【例4-9】