• Java中使用Cookie


    实体类

    1. 用户实体类
    import java.io.Serializable;
    
    public class PUser implements Serializable {
        private String PUserName;
        private String Password;
    }
    

    清.登录 Copy

    1. Postman调用

    1. 逻辑实现
    @PostMapping("/loginPost")
    public void loginPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
    	//设置请求编码格式
    	request.setCharacterEncoding("UTF-8");
    	//设置响应编码格式
    	response.setCharacterEncoding("UTF-8");
    	//设置数据返回的类型
    	response.setContentType("text/json");
    	//TODO:获取请求信息
    	//账号
    	String PUserNumber = request.getParameter("PUserNumber");
    	//密码
    	String Password = request.getParameter("password");
    	//记住密码
    	String remember = request.getParameter("remember");
    	String str;
    
    	//通过账号查询用户密码
    	PUser user = findByPUserNumber(PUserNumber);
    	//判断账号是否存在
    	if (user != null) {
    		//判断密码是否正确
    		if (user.getPassword().equals(Password)) {
    			str = "success";
    			//判断记住密码是否选中
    			if (remember != null) {
    				//创建Cookie对象
    				Cookie c1 = new Cookie("PUserName", PUserNumber);
    				Cookie c2 = new Cookie("Password", Password);
    				//设置Cookie的有效期(3天)
    				c1.setMaxAge(3 * 24 * 3600);
    				c2.setMaxAge(3 * 24 * 3600);
    				//响应Cookie信息
    				response.addCookie(c1);
    				response.addCookie(c2);
    			}
    		} else {
    			str = "密码错误,请重新输入";
    		}
    	} else {
    		str = "该用户不存在";
    	}
    	PrintWriter out = response.getWriter();
    	out.write(JSON.toJSONString(str));
    	//刷新该流的缓冲
    	out.flush();
    	//关闭流
    	out.close();
    }
    

    清.获取Cookie

    1. Postman调用

    1. 逻辑实现
    @PostMapping("/loginPost")
    public void loginPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
    	//设置请求编码格式
    	request.setCharacterEncoding("UTF-8");
    	//设置响应编码格式
    	response.setCharacterEncoding("UTF-8");
    	//设置数据返回的类型
    	response.setContentType("text/json");
    	//TODO:获取请求信息
    	//账号
    	String PUserNumber = request.getParameter("PUserNumber");
    	//密码
    	String Password = request.getParameter("password");
    	//记住密码
    	String remember = request.getParameter("remember");
    	String str;
    
    	//通过账号查询用户密码
    	PUser user = findByPUserNumber(PUserNumber);
    	//判断账号是否存在
    	if (user != null) {
    		//判断密码是否正确
    		if (user.getPassword().equals(Password)) {
    			str = "success";
    			//判断记住密码是否选中
    			if (remember != null) {
    				//创建Cookie对象
    				Cookie c1 = new Cookie("PUserName", PUserNumber);
    				Cookie c2 = new Cookie("Password", Password);
    				//设置Cookie的有效期(3天)
    				c1.setMaxAge(3 * 24 * 3600);
    				c2.setMaxAge(3 * 24 * 3600);
    				//响应Cookie信息
    				response.addCookie(c1);
    				response.addCookie(c2);
    			}
    		} else {
    			str = "密码错误,请重新输入";
    		}
    	} else {
    		str = "该用户不存在";
    	}
    	PrintWriter out = response.getWriter();
    	out.write(JSON.toJSONString(str));
    	//刷新该流的缓冲
    	out.flush();
    	//关闭流
    	out.close();
    }
    

    清.清除Cookie

    1. Postman调用

    1. 逻辑实现
    @GetMapping("/cleanCookie")
    public void cleanCookie(HttpServletRequest request, HttpServletResponse response) throws IOException {
    
    	//设置数据返回的类型
    	response.setContentType("text/json");
    	//设置请求编码格式
    	request.setCharacterEncoding("UTF-8");
    	//设置响应编码格式
    	response.setCharacterEncoding("UTF-8");
    	//设置返回值
    	JSONObject jsonObject = new JSONObject();
    
    	//清除用户名
    	Cookie pUserName = new Cookie("PUserName", "");
    	if (0 != pUserName.getMaxAge()) {
    		pUserName.setMaxAge(0); //设置立即删除
    		response.addCookie(pUserName);
    	}
    
    	//清除密码
    	Cookie password = new Cookie("Password", "");
    	password.setMaxAge(0); //设置立即删除
    	response.addCookie(password);
    
    	PrintWriter out = response.getWriter();
    	jsonObject.put("success", "清除成功!");
    	out.write(JSON.toJSONString(jsonObject));
    	//刷新该流的缓冲
    	out.flush();
    	//关闭流
    	out.close();
    }
    

    工具类

    1. 模拟Service返回数据
    /**
     * 模拟 Service 返回数据
     *
     * @param PUserName
     * @return PUser
     */
    private static PUser findByPUserNumber(String PUserName) {
    	if ("靳露".equals(PUserName)) {
    		return new PUser(PUserName, "12");
    	}
    	return null;
    }
    
  • 相关阅读:
    .NET开源B2C商城项目AssionShop开始开发设计(发布3小时撤下)
    AssionShop开源B2C电子商务系统概述
    ASP.NET中在不同的子域中共享Session
    单元测试框架"艾信.NET单元测试工具(AssionUnit)"开发第二步
    asp.net mvc 分页控件 MvcPager修改;使用范围增大
    Linux服务器测试网络连通性
    如何使用python连接mysql数据库
    mysql数据库基础知识
    使用python创建数据库并插入数据
    Linux下查看日志用到的常用命令
  • 原文地址:https://www.cnblogs.com/Twittery/p/14977908.html
Copyright © 2020-2023  润新知