cookie的使用

Posted catya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cookie的使用相关的知识,希望对你有一定的参考价值。

一、什么是cookie?

二、效果截图

技术图片

 技术图片

 

技术图片

三、代码如下

import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet Filter implementation class Filter
 */
@WebFilter("/*")
public class Filter implements javax.servlet.Filter {
    /**
     * Default constructor. 
     */
    public Filter() {
        // TODO Auto-generated constructor stub
    }
    /**
     * @see Filter#destroy()
     */
    public void destroy() {
        // TODO Auto-generated method stub
    }
    /**
     * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
     */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // TODO Auto-generated method stub
        
        // 将请求转换成HttpServletRequest请求
        HttpServletRequest httpRequest=(HttpServletRequest)request;
        // 将响应转换成HttpServletResponse响应
        HttpServletResponse httpResponse = (HttpServletResponse)response;
        //截取用户的请求地址
        String from =httpRequest.getServletPath();
        System.out.println(from);
        if(from.equals("/login.html")) {
            //获取本站在客户端上保留的所有的cookie
            Cookie[] cookies=httpRequest.getCookies();
            if(cookies!=null) {
                //遍历cookie数组
                
                httpResponse.sendRedirect("cookieSave");
            }
            // 将保存在cookie中的用户名和密码保存在request
            /*httpRequest.setAttribute("username",username);
            httpRequest.setAttribute("password", password);*/
            
            // 放行请求
            chain.doFilter(request, response);
        }
        else {
            // 用户请求的地址是servlet,直接放行请求
            chain.doFilter(request, response);
        }
    }
    /**
     * @see Filter#init(FilterConfig)
     */
    public void init(FilterConfig fConfig) throws ServletException {
        // TODO Auto-generated method stub
        //System.err.println("filter init");
    }
}
servlet代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //response.getWriter().append("Served at: ").append(request.getContextPath());
        response.setContentType("text/html; charset=utf-8");
        request.setCharacterEncoding("utf-8");
        String un=request.getParameter("username");
        String pwd=request.getParameter("password");
        String rem=request.getParameter("remember");
        Cookie[] cookies=request.getCookies();    

        if(cookies!=null) {
            for (Cookie cookie : cookies) {                    //遍历cookie对象
                if (cookie.getName().equals("username"))
                {//  已登录且记住密码 跳转到首页
                    un = cookie.getValue();
                    //System.out.println(un);
                }
                if(cookie.getName().equals("password")) {
                    pwd = cookie.getValue();
                    //System.out.println(pwd);
                }
//                System.out.println(cookie.getName());
//                 cookie.setMaxAge(0);
//                 cookie.setPath("/");
//                 cookie.setValue("");
//                 response.addCookie(cookie);

            }
        }
        /*Cookie[] cookies2=request.getCookies();    
        for (Cookie cookie : cookies2) {
            if (cookies2!=null) {
                
                System.out.println("*********");
            }
        }*/
        
        //判断账号密码是否正确
            if(un.equals("tom") && pwd.equals("123") && rem!=null) {//记住密码
                Cookie cookie=new Cookie("username", "tom");    
                Cookie cookie2 = new Cookie("password", "123");//创建一个新的Cooike
                cookie.setMaxAge(30*24*60*60);                    //设置最大的保存时间    
                cookie2.setMaxAge(30*24*60*60);
                response.addCookie(cookie);                
                response.addCookie(cookie2);//添加cookie 到服务器端
                response.sendRedirect("shouye.html");            
            }
            
            else if(un.equals("tom") && pwd.equals("123")) {        //未记住密码
                response.sendRedirect("shouye.html");
            }
            else {
                 log("用户名或密码错误");
                 response.sendRedirect("login.html");
            }
        
        }

四、

链接:https://pan.baidu.com/s/1l2SjO2XkyaDBjHvUjk7vkw
提取码:knkn
复制这段内容后打开百度网盘手机App,操作更方便哦

以上是关于cookie的使用的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript单行代码,也就是代码片段

XSS:如何从 C# 中的字符串中删除 JS 片段?

Django cookie 横幅:window.wpcc 未定义

根据 ASP.NET 中的角色设置身份验证 cookie 超时长度

最详细的cookie和浏览隐私之间的关系

c#如何采集需要登录的页面