cookie的使用

1、创建一个登录的UserController类,在类中创建登录的方法,在方法中添加cookie

 	@Autowired
    @Qualifier("UserServiceImpl")
    private UserService userService;


    @RequestMapping("/login")
    public String loginUser(HttpServletRequest request, HttpServletResponse response, Model model) throws UnsupportedEncodingException {
        System.out.println("login ============ " );
        //获取用户名和密码
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        //添加 Cookie
        userService.addCookie(username,password,response,request);


        System.out.println("用户名:"+username);
        System.out.println("密码:"+password);
        //调用service方法,进行用户匹配
        User user = userService.loinUser(username, password);
        //登录成功
        if(null != user){
            //放入session
            request.getSession().setAttribute(Constants.USER_SESSION, user);
            //页面跳转
            return "index";
        }else{
            //页面跳转(login.jsp)带出提示信息--转发
            //request.setAttribute("error", "用户名或密码不正确");
            //request.getRequestDispatcher("login.jsp").forward(request, response);
            model.addAttribute("error","用户名或密码不正确");
            return "error";
        }
    }

2、在UserService的实现类UserServiceImpl中创建添加cookie的方法

	@Override
    public void addCookie(String username, String password, HttpServletResponse response, HttpServletRequest request) {
        if(!username.equals("") && !password.equals("")){
            //创建  Cookie
            Cookie loginAccountCookie = new Cookie("username",username);
            Cookie loginPasswordCookie = new Cookie("password",password);
            //设置Cookie的父路经
            loginAccountCookie.setPath(request.getContextPath()+"/");
            loginPasswordCookie.setPath(request.getContextPath()+"/");
            //获取是否保存Cookie(例如:复选框的值)
            String rememberMe = request.getParameter("rememberMe");
            //if( rememberMe==null || rememberMe.equals(false) ){
            if( rememberMe==null){
                //不保存Cookie
                loginAccountCookie.setMaxAge(0);
                loginPasswordCookie.setMaxAge(0);
            }else{
                //保存Cookie的时间长度,单位为秒
                loginAccountCookie.setMaxAge(7*24*60*60);
                loginPasswordCookie.setMaxAge(7*24*60*60);
            }
            //加入Cookie到响应头
            response.addCookie(loginAccountCookie);
            response.addCookie(loginPasswordCookie);
        }
    }

3、获取cookie

    @RequestMapping(value="/getCookie")
    @ResponseBody
    public String getCookie(HttpServletRequest request)throws IOException {
        Cookie[] cookies = request.getCookies();
        //自己定义的javabean Cookies
        Cookies cookies1 = new Cookies();
        for(Cookie cookie :cookies ){
            //System.out.println(c.getName()+"--->"+c.getValue());
            //此处类似与Map有
            if("username".equals(cookie.getName())){
                cookies1.setLoginAccount(cookie.getValue());
            }
            if("password".equals(cookie.getName())){
                cookies1.setLoginPassword(cookie.getValue());
            }
        }

        Gson gson = new Gson();
        System.out.println("nnnn:"+cookies1.getLoginAccount());
        ModelMap modelMap = new ModelMap();
        modelMap.put("username",cookies1.getLoginAccount());
        modelMap.put("password",cookies1.getLoginPassword());
        System.out.println("ggggg:"+gson.toJson(modelMap));
        return gson.toJson(modelMap);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值