Cookie 和Session 的使用

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@RequestMapping("/login.action")
public @ResponseBody JSONObject login(String loginno, String password, String remember, HttpServletRequest request, HttpServletResponse response) {
loginno = StringUtil.getString(loginno);
password = StringUtil.getString(password);
remember = StringUtil.getString(remember);

//返回的结果
JSONObject jsonObject = new JSONObject();

//1.登录验证-查询session
String system = request.getContextPath();
HttpSession session = (HttpSession) request.getSession();
PmUser pmUser = (PmUser) session.getAttribute("pmuser");
if(pmUser != null) {
if(loginno.equals(pmUser.getLoginno()) && password.equals(pmUser.getPassword())) {
System.out.println("用户 ["+pmUser.getLoginno()+"] 登录成功[session] - ["+system+"] - 跳转到主页面 - 时间:"+DateFormatUitl.getTheDate());
jsonObject.put("result", 1);
return jsonObject;
}
}

//2.登录验证-查询数据库
pmUser = UserService.checkLoginUser(loginno, password);
// 登陆成功
if(loginno.equals(StringUtil.getString(pmUser.getLoginno()))) {
session.setAttribute("pmuser",UserService.findUserById(pmUser.getId()));
//查询用户角色权限
List<PmPower> lpmPower = PowerService.findPowerByParams("roleid="+pmUser.getRoleid());
String powerList = "";
for (PmPower pmPower : lpmPower) {
powerList += pmPower.getModelcode()+pmPower.getOpcode() + ",";
}
session.setAttribute("powerlist",powerList);

//Cookie 记住我设置
Cookie loginnoCookie = new Cookie("userloginno", pmUser.getLoginno());
Cookie passwordCookie = new Cookie("userpassword", pmUser.getPassword());
loginnoCookie.setPath(request.getContextPath()+"/"); //设置Cookie的有效路径
passwordCookie.setPath(request.getContextPath()+"/"); //设置Cookie的有效路径
if("Y".equals(remember)){//有记住我,就设置cookie的保存时间
loginnoCookie.setMaxAge(7*24*60*60);
passwordCookie.setMaxAge(7*24*60*60);
}else{//没有记住我,设置cookie的时间为0
loginnoCookie.setMaxAge(0);
passwordCookie.setMaxAge(0);
}
response.addCookie(loginnoCookie);
response.addCookie(passwordCookie);

System.out.println("用户 ["+pmUser.getLoginno()+"] 登录成功 - ["+system+"] - 跳转到主页面 - 时间:"+DateFormatUitl.getTheDate());
jsonObject.put("result", 1);
// 登陆失败
} else {
System.out.println("用户 ["+pmUser.getLoginno()+"] 登录失败 - ["+system+"] - 跳转到登录页面 - 时间:"+DateFormatUitl.getTheDate());
jsonObject.put("error", 101);
}
return jsonObject;
}

//退出登录(删除session)

/**
* @Title: logout
* @Description: 登出动作
* @param: @param request
* @return: ModelAndView
*/
@RequestMapping("/logout.action")
public String logout(HttpServletRequest request) {
String method = StringUtil.getString(request.getAttribute("method"));
String system = request.getContextPath();
HttpSession session = (HttpSession) request.getSession();
PmUser pmUser = (PmUser) session.getAttribute("pmuser");
if(pmUser != null) {
String loginno = pmUser.getLoginno();
session.removeAttribute("pmuser");
session.invalidate();
System.out.println("用户 ["+loginno+"] 登出 - ["+system+"] - 跳转到登录页面 - 时间:"+DateFormatUitl.getTheDate());
}
if (method.equals("weixin")) {
return "weinxin/login";
} else {
return "login";
    }
}

拦截器里也要使用session

HttpSession session = request.getSession();
PmUser pmUser = (PmUser)session.getAttribute("pmuser");
if (pmUser!=null) {
//登录成功
return true;
} else {
//登录失败(session失效),转向微信登录页面
request.getRequestDispatcher("/WEB-INF/pages/weixin/login.jsp").forward(request, response);
return false;
}

前端java小脚本使用Cookie和Session

前端Cookie的使用

<%
String contextPath = request.getContextPath();

扫描二维码关注公众号,回复: 916732 查看本文章

String loginno="";
String password="";
String checked="";
Cookie[] cookies = request.getCookies();
for(int i = 0; cookies != null && i < cookies.length;i++){
Cookie cookie = cookies[i];
if(cookie != null && "userloginno".equals(cookie.getName())){
loginno = cookie.getValue();
checked = "checked";
}
if(cookie != null && "userpassword".equals(cookie.getName())){
password = cookie.getValue();
}
}
%>

//前端Session的使用

<%@ page import="com.typm.entity.PmUser" %>
<%
String contextPath = request.getContextPath();
//检测session是否过期
PmUser pmUser = (PmUser) session.getAttribute("pmuser");
boolean isUserInSession = false;
if(pmUser != null) {
String tempUsername = "";
try {
//查询session中的sessionid
tempUsername = pmUser.getName();
if(tempUsername !=null&&!tempUsername.equals("")) {
isUserInSession = true;
}
} catch (NullPointerException e) {
System.out.println("login:读取用户id异常");
}

//跳转页面
String nextpage = "";
if(isUserInSession) {
nextpage = contextPath+"view?path=/weixin/prolist";
request.getRequestDispatcher(nextpage).forward(request, response);
}
}
%>

猜你喜欢

转载自www.cnblogs.com/zhouqi405677456/p/9054576.html