上一篇说到servlet中的请求问题:如果这次请求被销毁后,那请求的数据也会被销毁。
怎么解决下次请求上次请求被销毁的数据呢?这里引进Cookie。
Cookie的一些知识
有关cookie: | Cookie是浏览器段的数据存储技术,为了解决不同请求相同请求数据问题而产生的 |
---|---|
cookie的使用: | 1 先声明cookie对象:Cookie ck = new Cookie(“键”,“值”) ; 2 ck.setMaxAge()设置Cookie的生命期如果不设置那么生命周期就只有一次会话时间,它是存储在浏览器的内存中,如果设置了数据就会存储在用户电脑硬存中不会因为浏览器的关闭而关闭; 3 response.addCookie(ck);响应Cookie中的数据 |
这里逼逼下session、servletcontext和servletconfig的一些知识
有关session知识理解: | ||
1、用于解决一次请求中的需要不同servlet的数据共享问题 2、session中的jsessionid用到了cookie来存储其id | ||
session用法: | ||
声明session对象 | HttpSession hs=request.getSession();这个表示声明加获取 | |
session的生存时间 | hs.setMaxInactiveInterval(30);如果没加这句话就默认是30分钟生存时间,30分钟过后服务器自动关闭jsessionId | |
session的强制关闭 | hs.invalidate();运行到这句时session就会强制关闭 | |
session的数据存储 | hs.setAttribute("键",值);设置session中的需要访问的值 |
有关ServletContext 知识理解: | |||
1、用于解决不同用户数据共享问题 2、servletcontext是由服务器创建的,一个项目就只有一个,不同用户请求到的servletcontext都是同一个对象 | |||
servletcontext用法: | |||
声明servletcontext对象 | 1、ServletContext sc=this.getServletContext(); 2、ServletContext sc1=req.getSession().getServletContext(); | ||
servletcontext获取web.xml中全局配置的文件 | sc.getInitParameter(键); | ||
servletcontext获取webroot目录下的资源 | String path=sc.getRealPath("文件路径"); sc.getRealPath(String path); | ||
servletcontext的数据存储 | sc.setAttribute("键",值);设置servletcontext中的需要共用的值 |
有关ServletConfig 知识理解: | ||
1、每个 Servlet 也可以进行单独的配置,servletconfig获取每个servlet单独配置信息 | ||
servletconfig用法: | ||
声明servletconfig对象 | ServletConfig sc=this.getServletConfig(); | |
servletconfig获取web.xml中的配置数据 | sc.getInitParameter(键); |