版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaWeb开发从入门到实践JavaWebDevelopmentFromIntroductiontoPractice会话及会话技术Chap06提纲会话及会话技术本章介绍会话管理的基本概念,包括Cookie和Session对象的作用。Cookie用于在客户端保存数据,而Session则在服务器端管理用户会话信息。6.1会话概述6.2Cookie对象6.3Session对象6.4本章小结6.1会话概述用户A用户B会话:可以区分用户A和用户B的数据6.2Cookie对象6.2.1什么是Cookie6.2.2CookieAPI6.2.1什么是CookieCookie是一种将会话过程中的数据保存在客户端浏览器,方便客户端和服务器更好地进行交互的会话技术。图
6-1
客户端浏览器和服务器之间传递Cookie的过程6.2.1什么是Cookie用户第一次访问服务器时,服务器会在响应消息头中增加Set-Cookie头字段,并将用户信息以Cookie的形式发送给浏览器。Set-Cookie:JSESSIONID=15816FE518E1586EDC5253512F7C272E;Path=/cookieSessionPro;JSESSIONID表示Cookie的属性名,15816FE518E1586EDC5253512F7C272E表示Cookie的属性值;Path表示Cookie的路径属性。浏览器接收到Cookie消息后,会将它保存在浏览器的缓冲区中,当浏览器再次访问服务器时,就会把用户信息以Cookie形式发送给Web服务器Cookie:JSESSIONID=15816FE518E1586EDC5253512F7C272E6.2.2CookieAPI通过Java提供的CookieAPI,开发人员可以很方便地创建、发送、读取和使用Cookie。构造方法Cookiecookie=newCookie("username","Charles");resp.addCookie(cookie);通过HttpServletResponse对象通过HttpServletRequest对象Cookie[]cookies=request.getCookies();6.2.2CookieAPICookie类的常用方法表
6-1
Cookie类的常用方法及其描述方法描述Cookie(Stringname,Stringvalue)Cookie的构造方法,例如,Cookiecookie=newCookie("subject","JavaWeb");voidsetMaxAge(intexpiry)设置Cookie过期时间,以秒为单位intgetMaxAge()获取Cookie过期时间,以秒为单位StringgetName()获取Cookie的名称voidsetValue(Stringvalue)设置Cookie的值StringgetValue()获取Cookie的值voidsetComment(Stringcomment)设置Cookie注释StringgetComment()获取Cookie注释voidsetDomain(Stringpattern)设置Cookie的域名,例如,如果设置为“.”,则所有以“.”结尾的域名都可以访问该Cookie。参数第一个字符必须是“.”voidsetPath(Stringuri)设置Cookie的使用路径。例如,“/admin/”表示只有uri为“/admin”的程序可以访问该Cooike。参数最后一个字符必须是“/”voidsetHttpOnly(booleanflag)参数设置为“true”,表示只能通过http访问。voidsetSecure(booleanflag)是否加密后传输协议。参数设置为true时,只有https请求连接时才会把Cookie发送给服务器,而http不行,但是服务器是可以发送给浏览器。6.2.2CookieAPI案例:创建一个Cookie对象添加到响应对象中,并获取Cookie数组@WebServlet("/cookieServlet")
publicclassCookieServletextendsHttpServlet{
@Override
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{
PrintWriterout=resp.getWriter();
Cookiecookie=newCookie("username","Charles");//创建Cookie
resp.addCookie(cookie);//cookie对象添加到响应对象中
Cookie[]cookies=req.getCookies();//获取Cookie
for(Cookiec:cookies){//遍历Cookie
out.println(c.getName()+":"+c.getValue()+"<br/>");
}
}
}6.2.2CookieAPI图
6-2浏览器端Cookie数据图
6-3查看请求头6.2.2CookieAPI删除Cookie:Cookie对象在客户端的存活时间可以通过setMaxAge()方法设置@WebServlet("/cookieDelServlet")publicclassCookieDelServletextendsHttpServlet{
@Override
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{
PrintWriterout=resp.getWriter();
Cookiecookie=newCookie("username","");//创建一个值为空字串符的Cookie对象
cookie.setMaxAge(0);//设置Cookie的有效期为0
resp.addCookie(cookie);//将Cookie对象添加到响应对象中
}
}6.2.2CookieAPI图
6-4在浏览器中查看Cookie数据6.3Session对象6.3.1Session的概念6.3.2SessionAPI6.3.3Session中禁用Cookie6.3.4Session中生命周期6.3.5Session的有效期6.3.6Session与Cookie的区别6.3.1Session的概念Session(会话)是指使用HttpSession对象实现会话跟踪的服务器端技术。Session对象存储特定用户会话所需的属性及配置信息。图
6-5
HttpSession会话管理示意图6.3.1Session的概念SessionServlet.java@WebServlet("/sessionServlet")publicclassSessionServletextendsHttpServlet{ @Override protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{ req.getRequestDispatcher("session.jsp").forward(req,resp);//转发到session.jsp页面 }}session.jsp<body>
会话测试:<br/>
SessionId=<%=session.getId()%>
</body>案例:创建一个页面session.jsp用来获取SessionID6.3.1Session的概念图
6-6查看存储在浏览器客户端Cookie中的SessionIDCookie对象中名称为“JSESSIONID”的值和服务器响应浏览器客户端的SessionId是一致的浏览器地址栏输入:“http://localhost:8080/cookieSessionPro/sessionServlet”6.3.2SessionAPI在JavaWeb应用程序中,JavaSession对象的创建和管理都是由Servlet容器来完成的,软件开发人员只需使用容器提供的API来访问和操作Session对象即可。表
6-2
HttpSession类的常用方法及其描述方法描述StringgetId()获取SessionIdvoidsetAttribute(Stringname,Objectvalue)设置Session属性ObjectgetAttribute(Stringname)获取Session属性的值,如果属性名不存在,则返回nullEnumerationgetAttributeNames()获取Session所有的属性voidremoveAttribute(Stringname)移除Session属性voidsetMaxInactiveInterval(intinterval)设置超时时间,以秒为单位intgetMaxInactiveInterval()获取超时时间,以秒为单位LonggetCreationTime()获取Session的创建时间voidinvalidate()销毁Session对象booleanisNew()Session是否是新创建的SessionlonggetLastAccessedTime()客户端最后访问的时间6.3.2SessionAPI案例:在服务器端存入国产操作系统麒麟信安,然后在浏览器读取Session数据@WebServlet("/sessionAPIServlet")
publicclassSessionAPIServletextendsHttpServlet{
@Override
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{
HttpSessionsession=req.getSession();
session.setAttribute("os","麒麟信安");
req.getRequestDispatcher("SessionExample.jsp").forward(req,resp);
}
}<body>
OS:<%=session.getAttribute("os")%></body>SessionAPIServlet.javaSessionExample.jsp6.3.2SessionAPI图
6-7浏览器查看Session数据6.3.3Session中禁用Cookie禁用方法有以下二种方法:在web目录下创建META-INF文件夹(跟WEB-INF文件夹是同级目录),在该文件夹中创建context.xml文件<?xmlversion="1.0"encoding="UTF-8"?>
<Contextcookies="false"path="/cookieSessionPro">
</Context>修改Tomcat全局的conf/context.xml文件<?xmlversion="1.0"encoding="UTF-8"?><Contextcookies="false"> ...
</Context>6.3.4Session中生命周期Session的生命周期是:创建→使用→销毁。Session对象的创建Session对象的销毁当客户端第一次访问服务器时,服务器为每个浏览器创建不同SessionID。在服务器端使用request.getSession()或者request.getSession(true)方法来获取Session对象。Session对象的销毁有以下三种方式。关闭浏览器或服务器卸载了当前的WEB应用调用HttpSession的invalidate()方法超出了Session的最大有效时间客户端第一次访问服务器时,服务器会生成SessionID,并将SessionID存入到Cookie中。客户端再次发送请求时,会将SessionID传送给服务器。服务器对比客户端发送过来的SessionID和保存在服务器端的SessionID,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版八年级数学上册导学案
- 四年级数学下册教案
- 农业面源污染控制关键技术
- 利用风光互补特性的能量调度方案
- 苏教版小学数学六年级上册全册教案
- 2024高中化学第三章烃的含氧衍生物4有机合成课时作业含解析新人教版选修5
- 2024高中地理第四章工业地域的形成与发展第三节传统工业区与新工业区课时演练含解析新人教版必修2
- 2024高中生物第五章生态系统及其稳定性第1节生态系统的结构精练含解析新人教版必修3
- 2024高中语文第二单元置身诗境缘景明情菩萨蛮其二作业含解析新人教版选修中国古代诗歌散文欣赏
- 2024高考历史一轮复习方案专题六古代中国经济的基本结构与特点第15讲古代中国发达的农业和手工业教学案+练习人民版
- 影像检查诊断报告
- FMCW无线电高度表天线被部分遮挡下的影响分析及验证方法
- XX小学体育特色建设三年发展规划
- 高考专题复习:《史记 孙子吴起列传》分析
- 二级综合医院评审标准实施细则
- 新大《新疆地质概论》教案第6章 矿产资源
- EGD杀生剂剂化学品安全技术说明(MSDS)zj
- GB/T 12229-2005通用阀门碳素钢铸件技术条件
- 超分子化学-第三章 阴离子的络合主体
- 控制变量法教学课件
- 血压计保养记录表
评论
0/150
提交评论