20160406servlet学习笔记验证码

来源:互联网 发布:mac 命令行 删除软件 编辑:程序博客网 时间:2024/05/21 12:45

1.当一个servlet创建session时会将该session的id返回到cookie中,当该web应用的其他servlet页面被访问时浏览器会将cookie中的session的id号发送过去,使得这一页面也能找到相同的session.

2.生成验证码主要是获取一个随机生成的数字拼成字符串写到BufferedImage对象中并且保存到session中以便用来交验验证码,还需要用ImageIO.write(image, "jpg", response.getOutputStream());方法将生成的随机数图片写到相应请求的网页中.在请求验证码的网页中可以这样请求验证码图片<img src='/mycheckcode/CreateCode'/>

3.session正常在tomcat中的生命周期是30min.

4.以前分析session时提到过servlet创建session后给cookie一个session的id,但是此id并不会写到cookie文件中.

5.因为第4点的原因,当浏览器关闭后再次访问页面找不到session,但是其session如果还在生存周期内就没有被销毁,为了实现浏览器重新启动后还能访问到对应的session需要将JSESSIONID真正的写到cookie文件中去.

6.重头戏来了当浏览器禁用cookie后怎么处理session问题当浏览器禁用了cookie后重新启动浏览器后无法再次找到相同的session.为了实现cookie被禁用后还是能使用session

需要使用URL重写,将JSESSIONID随着URL传递出去.这时候就要用到String str=response.encodeURL("url");方法得到在url基础上添加JSESSIONID的str用来重写URL了.注意无论是想往session中存储数据的servlet还是想从session中读取servlet的页面都要重写url.(如果浏览器禁用了cookie的话).

7.可以用session存储购物车信息,因为session的属性值可以是object,所以可以用ArrayList对象存储信息.为了能通过key找到value又改用HashMap来实现信息的存储.


0 0
原创粉丝点击