版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、状态管理第四章回顾及作业点评JSP如何处理客户端的请求?请描述转发与重定向有何区别?JSP如何实现数据库访问?预习检查除了request对象和response对象,JSP还包括哪些内置对象?Cookie的作用?如何实现访问控制?请说明session对象与application对象的区别?使用Cookie实现保存已访问的信息使用session对象实现页面访问控制使用application对象实现统计在线人数本章任务掌握Cookie的原理及应用掌握session的原理及应用掌握application的原理及应用本章目标生活中的Cookie浏览购物网站查看不同商品时,系统会自动记录已经浏览过的商品
2、什么是CookieCookie是Web服务器保存在客户端的一系列文本信息Cookie的作用对特定对象的追踪统计网页浏览次数简化登录安全性能容易信息泄露Cookie的语法2-1导入包创建Cookieparameter:用于代表cookie的名称(key)value:用于表示当前key名称所对应的值写入CookieCookie newCookie=new Cookie(parameter, value);response.addCookie(newCookie)import=javax.servlet.http.CookieCookie的语法2-2设置Cookie属性的常用方法类型方法名称说 明v
3、oidsetMaxAge(int expiry)设置Cookie的有效期,以秒为单位voidsetValue(String value)在Cookie创建后,对Cookie进行赋值 StringgetName()获取Cookie的名称StringgetValue()获取Cookie的值StringgetMaxAge()获取Cookie的有效时间,以秒为单位JSP中应用Cookie2-1用户登录成功后,将用户信息保存到Cookie中,在页面读取Cookie并显示JSP中应用Cookie2-2从登录验证页面表单中获取用户名在显示页面显示用户名%/获取请求中的Cookie,以数组方式保存 Cooki
4、e cookies =request.getCookies(); /循环遍历数组,得到key=uname的Cookie for(int i=0;i 欢迎你:/获取key对应的value,输出显示 创建Cookie,使用response的addCookie方法保存Cookie使用reqeust获取Cookie数组,通过cookie的名称获取对应的内容演示示例:使用Cookie保存用户名称练习使用Cookie简化用户登录需求说明用户首次登录时要求输入用户名和密码登录成功后保存用户的登录状态设置cookie的有效期为5分钟在cookie有效期内,可无需登录直接进入欢迎页面提示如果用户名和密码正确,创
5、建Cookie保存信息使用setMaxAge()方法设置Cookie的有效期页面访问时首先读取Cookie进行用户信息判断完成时间:25分钟生活中的访问控制下载电子书时,系统会提示用户登录网站 点击下载, 系统转入登录页面 每次下载之前,系统如何判断用户是否已经登录?如何实现访问控制系统如何保存不同用户的登录信息?使用JSP会话跟踪机制,可以维持每个用户的会话信息,也就是为不同的用户保存不同的数据 12用户登录进入用户注册页面系统保存该用户的登录信息进入欲访问的页面是否是注册用户否是用户直接访问某个页面进入用户登录页面显示该页面内容系统是否保存了该用户登录信息否是访问流程控制分析浏览器关闭,本
6、次会话结束什么是会话一个会话就是浏览器与服务器之间的一次通话,包含浏览器与服务器之间的多次请求、响应过程 浏览器session对象请求 1浏览器请求 2nsession是JSP内置对象,与浏览器一一对应,允许用户存储和提取会话状态的信息响应 1响应 2nsession对象JSP内置对象sessionsession对象用来存储有关用户会话的所有信息session对象常用方法:类型方法名称说 明voidsetAttribute(String key,Object value)以key/value的形式保存对象值ObjectgetAttribute(String key)通过key获取对象值 int
7、getMaxInactiveInterval()获取session的有效非活动时间,以秒为单位StringgetId()获取session对象的编号voidinvalidate()设置session对象失效session与窗口的关系一个session对应一个窗口,那么通过超链接打开的窗口是否也是新的session呢?演示示例:判断session的ID每个session对象都与浏览器一一对应 重新开启一个浏览器,相当于重新创建一个session对象重新开启一个IE窗口,直接访问系统首页面通过超链接打开的新窗口,新窗口的session与其父窗口的session相同在新闻发布系统中,增加访问控制功能
8、,具体要求如下:提供用户登录功能管理员有权对新闻实现增删改的操作使用session实现访问控制4-1登录处理页面1、获得登录信息2、查询数据库,判断该用户是否注册3、如果该用户已注册,在session中保存该用户的登录信息4、如果用户时管理员就跳转到管理员界面;否则跳转到新闻发布系统的首页面管理员界面1、从session中提取该用户信息2、如果用户信息存在,显示管理员界面内容4、如果用户信息不存在,跳转到登录页面用户已注册session中无法提取到用户信息123使用session实现访问控制4-2在控制页面获取用户请求的登录信息进行验证登录处理页面的代码片断在session中存放用户登录信息使
9、用session实现访问控制4-3 在新闻发布系统新闻发布页面增加登录验证如果session中不存在该用户的登录信息,转入登录页面使用session实现访问控制4-4访问控制效果验证,步骤如下:直接在IE地址栏中输入URL,访问系统首页面通过登录页面进入系统首页面重新开启一个IE窗口,直接访问系统首页面演示示例:使用session实现访问控制练习使用session实现访问控制需求说明新闻发布必须是管理员登录后才能发布业务处理页面获取用户登录信息访问数据库进行登录验证验证成功后将信息保存到session在新闻发布页面添加访问控制提示:session中保存的数据类型是Object类型完成时间:20
10、分钟include指令2-1除了首页面,其它页面中同样需要加入登录验证, 有没有办法避免冗余代码的出现?可以将一些共性的内容写入一个单独的文件中,然后通过include指令引用该文件,从而降低代码的冗余问题,也便于修改共性内容 include指令2-2创建登录验证文件 loginControl.jsp在后台首页面中使用include指令引用登录验证文件Cookie与session的比较session是在服务器端保存用户信息,Cookie是在客户端保存用户信息session中保存的是对象,Cookie保存的是字符串session随会话结束而关闭,Cookie可以长期保存在客户端Cookie通常用
11、于保存不重要的用户信息,重要的信息使用session保存JSP内置对象applicationapplication类似于系统的“全局变量”,用于实现用户之间的数据共享application对象的常用方法:void setAttribute(String key, Object value):以键/值的方式,将一个对象的值存放到application中Object getAttribute(String key):根据键去获取application中存放对象的值application.setAttribute(LOGINED_USER, new ArrayList();if (applicati
12、on.getAttribute(LOGINED_USER) != null) List loginedUsers = (List) application.getAttribute(LOGINED_USER);application对象application是JSP内置对象实现服务内数据的共享在服务内值存在一个对象实例application对象的常用方法类型方法名称说 明voidsetAttribute(String key,Object value)以key/value的形式保存对象值ObjectgetAttribute(String key)通过key获取对象值 StringgetReal
13、Path(String path)返回相对路径的真实路径实现访问人数统计2-1创建登录处理页面登录处理页面代码片断if (rs.next() User logineduser = new User(name, pass);session.setAttribute(LOGINED_USER, logineduser);List loginedUsers = new ArrayList(); /访问者列表if (application.getAttribute(LOGINED_USER) != null) loginedUsers = (List) application.getAttribute
14、(LOGINED_USER);loginedUsers.add(logineduser); /把新登录用户的信息存入访问者列表中application.setAttribute(LOGINED_USER, loginedUsers);response.sendRedirect(index.jsp);在全局范围内存入访问者列表从全局范围内取出原有的访问者列表实现访问人数统计2-2创建已访问人数统计页面已访问人数统计页面代码片断目前,有人已经访问过本网站!从全局范围内取出访问者列表演示示例:访问人数统计效果练习网页计数器需求说明统计网页访问次数业务处理页面设置网页访问计数器初始值使用applica
15、tion保存计数器页面加载时首先取出application中原始计数器的值在原始计数器值基础上执行+1操作,然后在保存到application中完成时间:20分钟JSP内置对象的范围对象的范围范围决定了JSP是否可以进行对象访问范围的分类名称说 明page范围在一个页面范围内有效,通过pageContext对象访问该范围内的对象request范围 在一个服务器请求范围内有效,与客户端请求绑定一起session范围在一次会话范围内容有效,在会话期间与session绑定的对象皆属于该范围application范围在一个应用服务器范围内有效,当应用服务启动后即创建该对象,并向所有用户所共享演示示例:对象范围的测试练习新闻栏目的读取需求说明:从数据库中读取出新闻栏目按照页面布局实现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京市2024年度城市供水排水工程合同
- 二零二四年高档住宅区供暖工程合同2篇
- 简易的材料购销合同
- 2024年度居间介绍工程采购合同3篇
- 商业演出合同范本
- 高铁护坡施工设备租赁2024年度合同
- 《事故树分析方法》课件
- 《市政道路施工概述》课件
- 个人承包合同出租车范本
- 财务人员管理报告范文
- 2024-2034年全球及中国核辐射行业市场发展现状及发展前景研究报告
- 微测网题库完整版行测
- 借款协议书格式模板示例
- 国家开放大学《管理英语4》边学边练Unit 5-8(答案全)
- 作家普希金课件
- 封山育林工程 投标方案(技术方案)
- 当代世界经济与政治 李景治 第八版 课件 第1、2章 当代世界政治、当代世界经济
- 2024年刑法知识考试题库附参考答案【满分必刷】
- 国开作业《公共关系学》实训项目1:公关三要素分析(六选一)参考552
- 肺功能进修总结汇报
- 《燃烧性能测试》课件-第二节 氧指数测试
评论
0/150
提交评论