• JSP(4)—Cookie创建及简单案例(自动登录)


    Cookie的创建:
    创建一个JSP页面,第一次访问时显示没有Cookie,正在创建,再次访问就会自动显示cookie的名称,并设置cookie过期时间

    
        <%
            //在javaweb规范中使用Cookie类代表Cookie
            //获取cookie
            Cookie[] cookies = request.getCookies();
            if(cookies != null && cookies.length > 0){
                for(Cookie cookie : cookies){
                    out.println(cookie.getName()+" : "+cookie.getValue());
                    out.println("<br>");
                }
            }else{
                out.println("没有一个Cookie,正在创建并返回...");
                //1.创建一个Cookie对象
                Cookie cookie =new Cookie("name","Test");
    
                //2.setMaxAge:设置Cookie的最大时效,以秒为单位,若为0,表示立即删除该Cookie,为负数,表示不存储,为正数,表示存储时间
                cookie.setMaxAge(30);
    
                //调用response的一个方法把Cookie传给客户端
                response.addCookie(cookie);
            }
    
    
        %>

    demo1:自动登录

    JSP页面:login.jsp、index.jsp

    其中login.jsp登陆,index.jsp显示登录信息

    第一次访问index.jsp页面时,会自动跳转到login.jsp页面,再次访问时自会自动显示登陆信息,不需要再次登录
    login.jsp

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

    index.jsp

    <body>
    
            <!-- 自动登录 -->
            <!-- 此服务端 -->
        <%
            //若可以获取到请求参数name,则打印出欢迎信息,把登录信息存储到Cookie中,并设置Cookie的最大时效为30S
            String name = request.getParameter("name");
            //输入账号提交表单,获取到name字段,创建Cookie并发送到客户端中
            if(name != null && !name.trim().equals("")){
                //创建一个Cookie,name为login.jsp页面传进来的账号
                Cookie cookie = new Cookie("name",name);
                cookie.setMaxAge(30);
                response.addCookie(cookie);
            }else{
            //没有输入账号,自动登录,账号从Cookie中获取到
                //从Cookieh中获取用户信息,若存在则打印欢迎信息
                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.println("Hello:"+name);
            }else{
                out.println("Hello");
                //既没有表单提交,又没有Cookie,则重定向到index.jsp
                response.sendRedirect("login.jsp");
            }
    
        %>
    
    </body>
  • 相关阅读:
    tomcat虚拟机配置
    日期时分秒毫秒+3位随机数
    springmvc action访问路径不带项目名
    nginx 配置模板
    AES加密
    spring-mvc里的 <mvc:resources> 及静态资源访问
    MySQL——事务(Transaction)
    mysql索引
    < aop:aspect>与< aop:advisor>的区别
    annotation-driven
  • 原文地址:https://www.cnblogs.com/tengpengfei/p/10453980.html
Copyright © 2020-2023  润新知