Java Web应用程序开发 (8)教学课件_第1页
Java Web应用程序开发 (8)教学课件_第2页
Java Web应用程序开发 (8)教学课件_第3页
Java Web应用程序开发 (8)教学课件_第4页
Java Web应用程序开发 (8)教学课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、 JSP(三)企业级卓越人才培养天津滨海迅腾科技集团有限公司第八章目标q 理解session、Cookie、application、pageContext 、config原理q 掌握session、Cookie、application、pageContext 、config的用法session对象 q什么是会话(session)?会话就是指访问者从到达某个特定网络到离开为止的那段时间。qJSP中使用session对象提供在这段时间内跟踪用户信息的方法session对象基础 q当用户第一次访问Web站点时,即向Web服务器发出第一个请求时,Web服务器就会为这个用户请求建立起一个HttpSess

2、ion会话对象,并分配一个独一无二的SessionID来标示,即每个用户都有各自的会话对象q会话对象被服务器用来跟踪、描述用户对整个网站的访问过程 session对象基础 qHTTP协议是一个没有持续状态的协议。当用户在多个页间转换时,HTTP服务器无法知道他的身份 q会话的引入弥补了HTTP协议的缺陷 在session(服务器中)中保存用户信息 在客户端维持sessionID sessionID随每次客户请求发送到服务器 服务器根据request中的sessionID来定位sessionsession对象基础 session对象的基类(接口)为: javax.servlet.http.Htt

3、pSessionrequest.getRequestedSessionId()request.getSession()request.getSession(boolean)q判断session对象是否新建session.isNew();qrequest对象中与session对象相关的方法 session的生命周期qsession对象创建:在客户端第一次发出请求时qsession对象失效:在客户端关闭所有浏览器时 浏览器超时(默认超时时间30分钟)调用invalidate()方法强制失效session的生命周期q 与session生命周期相关的方法: session.getCreateTime(

4、) /创建时间session.getLastAccessedTime() /最后访问时间session.setMaxInactiveInterval(int) /设置超时时间(毫秒)session.getMaxInactiveInterval() /获取超时时间session.invalidate()/强制销毁sessionsession信息维持q 利用session临时存放一些中间变量,以在多页面之间共享数据 在session中设置名称/值对,如果已存在则更新之session.setAttribute(String , Object )session.setAttribute(name,em

5、p);根据名称获取值,不存在返回nullsession.getAttribute(String)Emp str = (Emp)session.getAttribute(name)session信息维持qvalidateLogin.jsp页面验证用户名和密码的正确性,如果正确将用户名写入session,跳转到指定的页面if(DBoperator.userValidate(name,pass)session.setAttribute(username,name);response.sendRedirect(Session03.jsp);elseresponse.sendRedirect(login

6、.html);qSession03.jsp从session中读取出前一页面写入的信息,将其显示在页面上欢迎光临application对象qapplication对象用来在多个程序或者是多个用户之间共享数据 q用户使用的所有application对象都是同一个qapplication对象的基类(接口)为:javax.servlet.ServletContext application对象application的生命周期创建:服务启动时自动创建application对象 销毁:服务器关闭,application 消失 application对象qapplication对象内包含有系统信息 appl

7、ication.getMajorVersion() /主版本信息application.getMinorVersion() /次版本信息application.getResource(String) /映射到特定资源的URLapplication.getRealPath(String) /映射到特定资源的实际路径application.getServerInfo() /服务器信息application对象qapplication中存储的数据被所有用户共享在application中设置名称/值对,如果已存在则更新之application.setAttribute(String , Object

8、)根据名称获取值,不存在返回nullapplication.getAttribute(String)pageContext对象q pageContext对象代表当前正在处理的页面qpageContext对象的基类为javax.servlet.jsp.PageContextpageContext对象q通过 pageContext 可以取得与JSP相关的其他隐含对象pageContext.getRequest()pageContext.getResponse()pageContext.getServletContext()pageContext.getOut()pageContext.getSes

9、sion()pageContext对象q pageContext对象本身拥有属性功能,还能处理其他隐式对象的属性 在pageContext中设置或增加属性pageContext.setAttribute(String , Object )在指定的隐含对象范围内设置或增加属性pageContext.setAttribute(String , Object , int )常量常量含义含义PageContext.APPLICATION_SCOPE application对象范围PageContext.PAGE_SCOPEPage对象范围PageContext.REQUEST_SCOPErequest

10、对象范围PageContext.SESSION_SCOPEsession对象范围q第三个参数为代表指定范围的常量pageContext对象q pageContext属性示例: pageContext.setAttribute(sample , test , PageContext.SESSION_SCOPE) ;/等效于session.setAttribute( sample , test ) ;pageContext对象q取得属性值 pageContext.getAttribute(String) pageContext.getAttribute(String , int)q在所有隐含对象的

11、范围内查找指定的属性 pageContext.findAttribute(String)搜索顺序为pageContext、request、session、application CookieqCookie是服务器发送给客户端浏览器的体积较小的纯文本信息,存储在客户端计算机上qCookie随着用户的每次请求,附加在http包中传递到服务器端 Cookieq Cookie需要手动声明 q 新建一个Cookie q 设置Cookie的属性 q 通过response对象的addCookie()方法将其存入客户端 q 获取Cookie对象q 通过request对象的getCookies()方法获取Coo

12、kie数组Cookieq创建Cookie对象Cookie的构造方法public Cookie(String name, String value)Cookie cookie = new Cookie(favorColor , blue );q示例Cookieq设置与读取Cookie属性public int getMaxAge() /获取过期时间(秒)public void setMaxAge(int expiry) /设置过期时间(秒)public String getName()public void setName(String newName)public String getValue

13、()public void setValue(String newValue)Cookieq将Cookie加入HTTP头部/利用response将Cookie写回到客户端 public void addCookie(Cookie cookie)q示例 Cookie cookie = new Cookie(favorColor , blue );response.addCookie(cookie);Cookieq读取Cookie/从request中读取Cookie数组 public Cookie getCookies()q示例 Cookie cookies = request.getCookies();for(int i=0; icookies.length; i+) Cookie cookie = cookiesi;/查找所要的CookieCookie实例:假设我们在做一个安全性要求不高的论坛,希望实现用户注册登录后,下次就不需要再进行用户名密码验证 。设计思路:q 在用户注册登录过后将用户名信息使用Cookie保存q 用户再次访问时检查是否有包含用户名的Cookie。如果没有则显示登录页面,如果有则显示欢迎信息Cookie本例仍以上一章

温馨提示

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

评论

0/150

提交评论