欢迎来到天天文库
浏览记录
ID:30776603
大小:87.60 KB
页数:7页
时间:2019-01-03
《javaservlet实现session创建存取以及url重写代码示例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、javaServlet实现Session创建存取以及url重写代码示例Session对象的原理在于,服务器可以为客户端创建并维护一个所谓的Session对象,用于存放数据。在创建Session对象的同时,服务器将会为该Session对象产生一个唯一编号,这个编号称Z为SessionlD,服务器以Cookie的方式将SessionlD存放在客户端。当浏览器再次访问该服务器时,会将SessionlD作为Cookie信息带到服务器,服务器可以通过该SessionlD检索到以前的Session对象,并对其进行访问。需要注意的是,此时
2、的Cookie中仅仅保存了一•个SessionlD,而和对较多的会话数据保存在服务器端对应的Session对象中,由服务器来统一维护,这样一定程度保证了会话数据安全性,但增加了服务器端的内存开销。存放在客户端的用于保存SessionlD的Cookie会在浏览器关闭时清除。我们把用户打开一个浏览器访问某个应用开始,到关闭浏览器为止交互过程称为一个“会话”。在一个“会话”过程中,可能会向同一个应用发出了多次请求,这些请求将共享一个Session对彖,伙]为这些请求携带了相同的SessionlD信息。1.javaServlet实现
3、SessionjavaServlet用來演示Session的丁作原理代码1:1publicvoiddoGet(HttpServletRequestrequest,HttpServletResponserespon2throwsServletException,IOException{3response・setContentType("text/html");4PrintWriterout=response.getWriter();5Stringoption二request.getParameter("option");6if
4、("create”.equals(option)){7//获得HttpSession对象8HttpSessionsession=request.getSession();9//设置Session对象的最长不活动间隔10session.setMaxInactivelnterval(30);11//获取Session中的数据12Listlist=(List)session.getAttribute(Tist");13if(list==null){14list=newArrayList();15list.add(nheyH);16
5、//向Session中添加数据17session.setAttribute(nlistn,list);18}else{19list・add(”hey”);20}1out・printIn(list);2}elseif("invalidate"・equals(option)){3HttpSessionsession=request・getSession(false);4if(session!=null){5//使Session对象失效6session・invalida;7}8}该Servlet的url-paltern为/test
6、Session。当浏览器请求地址"•••/tst/testSession?option=create”时,Servlet调用request的getSession方法获得Session对彖,如果此时服务器端存在与请求信息中SessionlD(作为Cookie信息携带)对应的Session对象,贝lj返回这个Session对象,否则将会创建一个新的Session对象并将其产生的SessionlD以Cookie的形式通过响应信息送回。注意,Session对彖的setMaxlnactivelnterval方法用于设置最长不活动间隔,
7、单位是秒,如果出现在这个的时间段内Session对彖没冇被存取,则该Session对象将会失效。通常为了保证服务器的性能和出于安全性考虑,这个值要妥善的设置(Tomcat针对Session的Mcixlnactivelnterva1会有默认的设置)。若setMaxlnactivelnterva1设置为负值,则表示该Session永不过期。另外,Session对象分别通过setAttribute和getAttribute方法存取数据,数据以"名称-对象”对的形式存放。该请求对应的请求和响应的HTTP信息为:请求:1GET/tst
8、/testSession?option=createHTTP/1.12Accept:image/gif,image/x・xbitmap,image/jpeg^image/pjpeg,3application/x・shockwave-flashyapplication/x・silverlig
此文档下载收益归作者所有