版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章会话跟踪技术学习目的与要求本章重点对会话跟踪技术作详细地介绍。通过本章的学习,理解会话跟踪的含义,掌握会话跟踪技术的应用。会话跟踪技术是一种在客户端与服务器间保持HTTP状态的解决方案。主要Cookie技术、session技术、URL重写技术以及隐藏表单域技术。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
目录7.1.1Cookie技术7.1.2session技术7.1.3URL重写技术7.1.4隐藏表单域技术7.1.5实践环节——登录注销系统《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
7.1.1Cookie技术Cookie技术是一种在客户端保持会话跟踪的解决方案。通过Cookie,服务器在接收来自客户端浏览器的请求时,能够通过分析请求头的内容而得到客户端特有的信息,从而动态生成与该客户端相对应的内容。Cookie可以通过jakarta.servlet.http.Cookie类的构造方法Cookie(Stringname,Stringvalue)创建,示例代码如下:CookievistedCountC=newCookie("vistedCount","1000");其中,第1个参数name用于指定Cookie的属性名;第2个参数value用于指定属性值。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
7.1.1Cookie技术创建完成的Cookie对象,可以使用HttpServletResponse对象的addCookie()方法添加到响应对象中,进而让Cookie对象存储在客户端机器上。存储在客户端的Cookie,可以通过HttpServletRequest对象的getCookies()方法获取。Cookie有一定的存活时间,不会在客户端一直保存。默认情况下,在浏览器关闭时失效。若要让其长时间保存,可以通过Cookie对象的setMaxAge(inttime)方法设置其存活时间(以秒为单位),时间为正整数,表示其存活的秒数;若为负数,表示其为临时Cookie(在浏览器关闭时失效);若为0,表示通知浏览器删除相应的Cookie对象。需要注意的是,在使用Cookie时,要保证浏览器接受Cookie。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
7.1.1Cookie技术【例7-1】编写1个Servlet,在该Servlet中测试Cookie对象的常用方法。启动服务器,第1次请求CookieTest后(http://localhost:8080/ch7/CookieTest)的显示结果如图7.2所示。第2次请求CookieTest后(http://localhost:8080/ch7/CookieTest)的显示结果如图7.3所示。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
7.1.1Cookie技术《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
例7-1实例效果只限于使用同一个浏览器并且允许使用Cookie的情况下访问,这是由Cookie本身的局限性决定的。Cookie的缺点主要集中在其安全性和隐私保护上,主要包括以下几种:1.Cookie可能被禁用,有的用户担心隐私安全问题,很可能会禁用浏览器的Cookie功能。2.Cookie是与浏览器相关的,即使访问同一个应用程序,不同浏览器之间所保存的Cookie也是不能互相访问的。3.Cookie可能被删除,因为每个Cookie都是硬盘上的一个文件,因此很有可能被用户删除。4.Cookie的大小和个数受限,单个Cookie保存的数据一般不能超过4KB,很多浏览器都限制一个域名最大保存数量;5.Cookie安全性不够高,所有的Cookie都是以纯文本的形式记录于文件中,因此,如果要保存用户名和密码等信息时,最好事先做加密处理。目录7.1.1Cookie技术7.1.2session技术7.1.3URL重写技术7.1.4隐藏表单域技术7.1.5实践环节——登录注销系统《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
7.1.2session技术session技术是指使用HttpSession对象实现会话跟踪技术,是一种在服务器端保持会话跟踪的解决方案。HttpSession对象将在用户第1次访问服务器时由容器创建(只有访问JSP、Servlet等程序时才会创建,只访问HTML、image等静态资源并不创建),当用户调用其失效方法(invalidate()方法)或超过其最大不活动时间时会失效。在会话有效期间,用户与服务器之间的多次请求都属于同一个会话。服务器在创建session对象时,会为其分配一个唯一的会话标识sessionId,以“JSESSIONID”的属性名保存在客户端Cookie中,在用户后续的请求中,服务器通过读取Cookie中的JSESSIONID属性值来识别不同的用户,从而实现对每个用户的会话跟踪。有关session技术的使用请读者参见4.4节和6.7节。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
目录7.1.1Cookie技术7.1.2session技术7.1.3URL重写技术7.1.4隐藏表单域技术7.1.5实践环节——登录注销系统《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
7.1.3URL重写技术URL重写是指服务器程序对接收的URL请求重新写成网站可以处理的另一个URL的过程。URL重写技术是实现动态网站会话跟踪的重要保障。在实际应用中,当不能确定客户端浏览器是否支持Cookie的情况下,使用URL重写技术可以对请求的URL地址追加会话标识,从而实现用户的会话跟踪功能。URL重写实现会话跟踪,要保证每个页面都必须使用Servlet或JSP动态页面。因为附加在URL上的SessionID是动态产生,所以对于静态页面的跳转,URL重写机制无能为力。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
7.1.3URL重写技术可以通过HttpServletResponse的encodeURL()方法和encodeRedirectURL()方法实现URL重写,其中encodeRedirectURL()方法主要对使用sendRedirect()方法的URL进行重写。URL重写方法根据请求信息中是否包含Set-Cookie请求头来决定是否进行URL重写,若包含了该请求头,将URL原样输出;若不包含,则将会话标识JSESSIONID重写到URL中。URL重写示例代码如下:
//对重定向的URL进行重写
StringencodeURL=response.encodeRedirectURL("toRedirectServlet");
response.sendRedirect(encodeURL);《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
7.1.3URL重写技术首先,对谷歌浏览器Cookie的禁用设置,如图7.4所示。然后,使用禁用Cookie的谷歌浏览器运行例6-7,程序运行结果如图7.5~7.7所示。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
7.1.3URL重写技术从图7.6和7.7中,可以看出session对象发生了改变,也就是说在Cookie禁用的情况下,无法使用session技术跟踪客户端的用户状态。【例7-2】使用URL重写技术跟踪例6-7的用户状态。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
目录7.1.1Cookie技术7.1.2session技术7.1.3URL重写技术7.1.4隐藏表单域技术7.1.5实践环节——登录注销系统《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
7.1.4隐藏表单域技术利用HTML的hidden属性,将客户端的信息,在用户不察觉的情形下,随着请求一起发送给服务器处理。例如:<inputtype="hidden"name="userID"value="15">【例7-3】编写JSP页面login.jsp,在该页面中通过表单向名字为login的Servlet对象(由LoginServlet类负责创建)提交用户名,login将用户名以隐藏表单域的形式提交给另一个Servlet对象greet(由GreetServlet类负责创建),greet将login.jsp提交的用户名显示在浏览器中。login和greet是处理不同请求的Servlet,但是也可以实现会话跟踪。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
目录7.1.1Cookie技术7.1.2session技术7.1.3URL重写技术7.1.4隐藏表单域技术7.1.5实践环节——登录注销系统《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
7.1.5实践环节——登录注销系统编写一个登录注销系统,用户登录成功的情况下,将用户的信息保存在会话HttpSession中,用户信息可以在会话过程中任意页面或Servlet中被获取并显示,使用HttpSession的invalidate()方法实现系统的注销功能。一旦注销,该用户信息丢失,用户需要重新登录。该系统需要考虑用户浏览器禁用Cookie的情况。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
本章小结HTTP协议是一种无状态的协议,也就是说当用户请求一个资源,服务器根据客户端请求做出响应,回发到客户端后,就关闭了连接。但是,实际生活中可能有类似网上购物的场
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026上半年四川眉山天府新区选调事业单位人员4人笔试参考题库及答案解析
- 2026山东第一医科大学附属肿瘤医院第二批招聘笔试备考题库及答案解析
- 2026年开封文化艺术职业学院单招职业适应性测试模拟测试卷及答案1套
- 2026年安徽新闻出版职业技术学院单招职业倾向性考试题库及答案1套
- 2026年安徽粮食工程职业学院单招职业倾向性考试题库附答案
- 2026年湖南生物机电职业技术学院单招职业倾向性考试模拟测试卷附答案
- 2026广东广外附属科学城实验学校小学语文教师招聘2人笔试模拟试题及答案解析
- 2025昌平区企事业单位招录就业见习人员80人(公共基础知识)综合能力测试题附答案
- 2026浙江宁波东方海纳人力资源服务有限公司管道工岗位招聘2人(杭州湾新区自来水公司)笔试参考题库及答案解析
- 2025年河北省卫生健康委员会河北省康复医院公开招聘工作人员12名(公共基础知识)综合能力测试题附答案
- 2025年全国高压电工操作证理论考试题库(含答案)
- 2025-2026学年(通*用版)高二上学期期末测试【英语】试卷(含听力音频、答案)
- 翻车机工操作技能水平考核试卷含答案
- 2025年中职食品雕刻(食品雕刻技术)试题及答案
- 2026青海西宁市湟源县水务发展(集团)有限责任公司招聘8人考试参考试题及答案解析
- 舞台灯光音响控制系统及视频显示系统安装施工方案
- 2025年大学(运动康复)运动康复治疗技术测试试题及答案
- 1256《数据库应用技术》国家开放大学期末考试题库
- (2025年)昆山杜克大学ai面试真题附答案
- 污水处理设施运维服务投标方案(技术标)
- 临床回顾性研究的设计与论文写作
评论
0/150
提交评论