码迷,mamicode.com
首页 > 其他好文 > 详细

Cookie和Session

时间:2018-12-01 11:16:30      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:false   ESS   NPU   inf   com   w3c   ram   head   meta   

技术分享图片

关闭浏览器就没有了 如果需要持久化到硬盘上可以设置个时间

 

cookie.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" session="false"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    
    <% 
        //在 JavaWEB 规范中使用 Cookie 类代表 cookie
        
        
        
        //1. 获取 Cookie
        Cookie [] cookies = request.getCookies();
        if(cookies != null && cookies.length > 0){
            for(Cookie cookie: cookies){
                //2. 获取 Cookie 的 name 和 value
                out.print(cookie.getName() + ": " + cookie.getValue());
                out.print("<br>"); 
            }
        }else{
            out.print("没有一个 Cookie, 正在创建并返回");
            //1. 创建一个 Cookie 对象
            Cookie cookie = new Cookie("name", "atguigu");
            //setMaxAge: 设置 Cookie 的最大时效, 以秒为单位, 若为 0 , 表示立即删除该 Cookie
            //若为负数, 表示不存储该 Cookie, 若为正数, 表示该 Cookie 的存储时间. 
            cookie.setMaxAge(30);
            
            //2. 调用 response 的一个方法把 Cookie 传给客户端. 
            response.addCookie(cookie);
        }
    %>
    
</body>
</html>

 

案例:

如果没有登陆则重定向到login.jsp

如果可以获取到请求参数 loginName 则打印出欢迎信息,把登陆信息存储到cookie,并设置cookie最大失效时间30s

如果既没有获取到请求参数,也没有cookie,则重定向到login.jsp

 

index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

    <% 
        //若可以获取到请求参数 name, 则打印出欢迎信息。把登录信息存储到 Cookie 中,并设置 Cookie 的最大时效为 30S
        String name = request.getParameter("name");
        if(name != null && !name.trim().equals("")){
            Cookie cookie = new Cookie("name", name);
            cookie.setMaxAge(30);
            response.addCookie(cookie);
        }else{
            //从 Cookie 中读取用户信息,若存在则打印欢迎信息
            Cookie [] cookies = request.getCookies();
            if(cookies != null && cookies.length > 0){
                for(Cookie cookie : cookies){
                    String cookieName = cookie.getName();
                    if("name".equals(cookieName)){
                        String val = cookie.getValue();
                        name = val;
                    }
                }
            }            
        }
        
        if(name != null && !name.trim().equals("")){
            out.print("Hello: " + name);
        }else{
            //若既没有请求参数,也没有 Cookie,则重定向到 login.jsp
            response.sendRedirect("login.jsp");
        }        

    %>

</body>
</html>

 

login.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

    <form action="index.jsp" method="post">
        
        name: <input type="text" name="name"/>
        
        <input type="submit" value="Submit"/>
    
    </form>

</body>
</html>

 

Cookie和Session

标签:false   ESS   NPU   inf   com   w3c   ram   head   meta   

原文地址:https://www.cnblogs.com/toov5/p/10048049.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!