编程小贴士

给你的编程提供小点子


会话技术:Cookie和Session

一、Cookie操作

cookie:将服务器的数据保存到浏览器端的技术

* IE;将cookie保存到指定目录中,以文件的形式存储
* 火狐或谷歌:将cookie保存到指定的文件中
* 使用HTTP协议进行通信,而HTTP协议是采用ISO-8859-1进行编码的
* request.getCookies();获得当前web项目的所有的cookie信息,获得当前servlet所在目录,以及之上的所有目录下的cookie信息
* cookie的value可以设置多少个字符:4kb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    public void doPost(HttpServletRequest request, HttpServletResponse response)  
                throws ServletException, IOException {  
            request.setCharacterEncoding("UTF-8");  
            response.setContentType("text/html;charset=UTF-8");  
            String data = "中文"; //中文必须要进行解码才能保存成功  
            Cookie cookie = new Cookie("cn",URLEncoder.encode(data, "UTF-8"));  
            //读取Cookie时用URLDecoder.decode(c.getValue(), "UTF-8");进行解码  
 
            // * 修改cookie保存路径  
            cookie.setPath("/day07/");  
            //设置有效时间  
            cookie.setMaxAge(60*60); // 如果设置的值为零,则进行删除操作,单位是秒  
 
            //发送数据  
            response.addCookie(cookie);  
        }

二、Session
session的默认有效时间是30分钟,可以在tomcat的conf/web.xml中进行修改

1
2
3
4
5
6
7
    public void doPost(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
        request.setCharacterEncoding("UTF-8");  
        response.setContentType("text/html;charset=UTF-8");  
        HttpSession session = request.getSession(); //没有创建,有返回  
        System.out.println(session.isNew());  
    }

看下面的响应(Response)中有个Set-Cookie,创建session后会有个ID,服务器会将这个ID以Cookie响应到浏览器,浏览器关闭时这个Cookie也就消失。可以对这个cookie进行持久化操作

tips1000_2014-07-06_09-27-4

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>