web11-03session教程.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
web11-03session教程

Session Cookie技术可以将用户的信息保存在各自的浏览器中, 优点:很明显实现了同一个用户不同请求中数据共享。 缺点:黑客可以利用脚本等手段 窃取cookie中的重要数据,从而泄漏个人的隐私,存在巨大的安全隐患。 session技术 是将会话的数据保存在服务器端的技术。 什么是session? 为了更好的理解session,以网站购物为例,通过一张图来描述session保存用户 信息的原理。 用户甲和用户乙都调用buyServlet将商品添加到购物车,调用payServlet进行商品结算。 由于甲和乙购买商品类似,这里以甲为主。 当用户甲访问购物网站时,服务器为甲创建了一个session对象(相当于购物车)。 当甲将小米手机添加到购物车时,小米手机的信息便存到了session对象中,同时,服务器将session对象的唯一标识id属性以Cookie的形式返回给甲的浏览器。 当甲完成购物进行结账时,需要向服务器结账请求,这时,浏览器就会???动在请求头将 唯一标识 回送给服务器。 服务器根据唯一标识,找到为用户甲创建的session容器,并将session对象中存放的手机信息进行结算。 需要注意的是:由于客户端需要接受、记录、和回送session的唯一标识, 因此通常情况下,session是借助cookie技术来传递ID属性的。 Session的API 获取Session对象 Session是基于用户的请求,而把用户的重要信息在服务器端针对这个用户(浏览器)创建了一个容器。 而这个Session容器是由web服务器(tomcat)帮助我们创建的,在程序中我们只能去获取到这个容器,然后给容器添加数据或者取出数据,或者删除数据,而我们是不能创建这个容器对象。 在HttpServletRequest对象中提供了获取session对象的方法: 使用request对象就可以获取到当前针对用户的请求服务器内部创建的那个Session容器对象。 HttpSession依然是一个接口,而这个接口的实现类有web服务器来提供。只要能够运行我们JavaEE项目的web访问前,它们都会实现Java提供的所有web技术中的接口。 演示Session: 需要2个Servlet程序: 在第一个Servlet中获取到Session对象,然后把用户当前的ip保存在Session中,在第二Servlet中取出,然后通过response对象把ip给客户端响应回去。第一个Servlet访问完之后,不使用转发技术。 给Session对象中保存数据: 需要使用HttpSession接口中的: 获取数据: 删除Session中的数据 需求1: 共享数据:第一个Servlet程序:获取到用户的ip保存在Session中;在第二个servlet中取出session中的ip(debug演示) 1、新建包:cn.itcast.x_session 2、编写 Session1Servlet,将ip地址保存到session中。 public class Session1Servlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 需求1: 在session中保存ip地址 // 获得session HttpSession session = request.getSession(); // 获得ip地址 String ip = request.getRemoteAddr(); // 保存ip session.setAttribute(ip, ip); // 给浏览器输出一句话 response.setContentType(text/html;charset=utf-8); response.getWriter().println(保存ip成功!); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } 3、新建Session2Servlet,从session中获取ip public class Session2Servlet extends HttpServlet { public void doGet(HttpServletRequest re

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档