十天内免登录

 * 十天内免登录。
			
			- Cookie禁用之后,一些web站点的功能就无法使用了。
			
			- 当Cookie禁用之后,怎么实现session机制呢?
				URL重写机制。
				可以在URL后面添加:jsessionid..
					url;jsessionid=32位长度的字符串?name=value&name=value&name=value....
				但这种方式会大大提高编程复杂度,每一个URL后面都需要动态的添加jsessionid
				所以99%的web站点都会提示你开启浏览器Cookie功能。
			
			- 在servlet中Cookie的API?
				
				* 创建Cookie
					Cookie cookie = new Cookie(String name,String value);
				* 设置有效时长
					cookie.setMaxAge();> 0	存储到硬盘文件
					秒 = 0	删除该Cookie
					秒 < 0	不被存储
					不设置有效时长,默认是:存储到浏览器缓存当中,直到浏览器关闭之后销毁Cookie。
				* 设置Cookie的关联路径
					cookie.setPath("/crm");
					以上代码的含义表示:以后浏览器只有发送/crm请求的时候,该Cookie就会被自动发送给服务器。
				* 获取Cookie的name和value
					String name = cookie.getName();
					String value = cookie.getValue();
				* 将Cookie发送到浏览器客户端
					response.addCookie(cookie);
				* 服务器获取浏览器客户端提交的Cookie 
					Cookie[] cookies = request.getCookies();
			共六部

案例

package com.bjpowernode.p2padmin.user.controller;

import com.bjpowernode.p2padmin.user.model.UserInfo;
import com.bjpowernode.p2padmin.user.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.Map;

/**
 * ClassName:UserController
 * Package:com.bjpowernode.p2padmin.user.controller
 * Description:
 *
 * @date:2018/10/27 9:23
 * @author:bjpowernode.com
 */
@Controller
public class UserController {
    @Autowired
    private UserService userService;
    @RequestMapping("/")
    public String toLogin(HttpServletRequest request,HttpServletResponse response, HttpSession session,Model model){
        Cookie cookies[]=request.getCookies();
        if(cookies==null){
            return "user/login";
        }
        UserInfo userInfo=new UserInfo();
        for(Cookie cookie: cookies){
            if("username".equals(cookie.getName())){
                userInfo.setUsername(cookie.getValue());
                continue;
            }
            if("password".equals(cookie.getName())){
                userInfo.setPassword(cookie.getValue());
                continue;
            }
        }
        if(userInfo.getUsername()==null||userInfo.getPassword()==null){
            return "user/login";
        }

        Integer result= userService.login(userInfo);
        switch (result){
            case 1:
                model.addAttribute("errorMessage","对不起!账号错误!");
                return "user/login";
            case 2:
                model.addAttribute("errorMessage","对不起!密码错误!");
                Cookie cookieUsername1=new Cookie("username","");
                cookieUsername1.setMaxAge(1);
                cookieUsername1.setPath("/");
                Cookie cookiePassword1=new Cookie("password", "");
                cookiePassword1.setMaxAge(1);
                cookiePassword1.setPath("/");
                response.addCookie(cookieUsername1);
                response.addCookie(cookiePassword1);
                return "user/login";
        }

            session.setAttribute("userSession",userInfo);
            Cookie cookieUsername=new Cookie("username",userInfo.getUsername());
            cookieUsername.setMaxAge(60*60*24*7);
            cookieUsername.setPath("/");
            Cookie cookiePassword=new Cookie("password", userInfo.getPassword());
            cookiePassword.setMaxAge(60*60*24*7);
            cookiePassword.setPath("/");
            response.addCookie(cookieUsername);
            response.addCookie(cookiePassword);

        return "main";
    }


    @RequestMapping("/login")
    public String login(UserInfo userInfo, String isAutoLogin, Model model, HttpSession session, HttpServletResponse response){
        Integer result= userService.login(userInfo);

        switch (result){
            case 1:
                model.addAttribute("errorMessage","对不起!账号错误!");
                return "user/login";
            case 2:
                model.addAttribute("errorMessage","对不起!密码错误!");
                return "user/login";
        }

        session.setAttribute("userSession",userInfo);

        if(isAutoLogin!=null){
            Cookie cookieUsername=new Cookie("username",userInfo.getUsername());
            cookieUsername.setMaxAge(60*60*24*7);
            cookieUsername.setPath("/");
            Cookie cookiePassword=new Cookie("password", userInfo.getPassword());
            cookiePassword.setMaxAge(60*60*24*7);
            cookiePassword.setPath("/");
            response.addCookie(cookieUsername);
            response.addCookie(cookiePassword);
        }

        return "main";
    }
    @RequestMapping("/onPermission")
    public String onPermission(){
        return "user/onPermission";
    }


    @RequestMapping("/admin/users")
    public String users( Model model){
        List<UserInfo> userList=userService.getUserAll();
        model.addAttribute("userInfoList",userList);

        return "user/users";
    }
    @RequestMapping("/toDisRole/{userId}")
    public String toDisRole(@PathVariable Integer userId ,Model model){
        List<Map> roleData= userService.intiRoleDataByUserId(userId);
        model.addAttribute("roleDataList",roleData);
        model.addAttribute("userId",userId);
        return "user/distributionRole";
    }
    @RequestMapping("/admin/disRole")
    public String disRole(Integer userId,Integer [] roleIds){

        userService.disRole(userId,roleIds);

        return "redirect:/admin/users";
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值