zoukankan      html  css  js  c++  java
  • 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;
    }
    
  • 相关阅读:
    C#下实现ping功能
    Telnet Chat Daemon
    ADO.NET连接池
    很好使的MAIL CLASS
    实例看多态
    完整的TCP通信包实现
    使用C#进行点对点通讯和文件传输(通讯基类部分)(转)
    特洛伊木马服务器源代码(C#)
    [C#] 如何选择一个目录
    如何使用C#压缩文件及注意的问题!
  • 原文地址:https://www.cnblogs.com/Twittery/p/14977908.html
Copyright © 2011-2022 走看看