用cookie和session自动登录问题?
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
//
// if (!this.isTokenValid(request,true)){
// ActionMessages msgs = new ActionMessages();
// msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
// "system.invalid.token"));
// saveMessages(request, msgs);
//
// return mapping.getInputForward();
// }
//
// this.saveToken(request);
// String host = "http://localhost:8080/CRM2.0SSH/home.do";
try {
UserLoginForm userLoginForm = (UserLoginForm) form;
String randomVal = String.valueOf(request.getSession()
.getAttribute(Constants.SESSION_LOGON_RANDOM_IMG));
/*
* if (!randomVal.equals(userLoginForm.getValidateCode())){
* ActionMessages msgs = new ActionMessages();
* msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
* "system.invalid.validate")); saveMessages(request, msgs);
*
* return mapping.getInputForward(); }
*/
// Get the login info by the enter user name and company id
Employee employee = employeeService.findByEmpLogonName(
userLoginForm.getLoginName(), userLoginForm.getLoginCom());
String isremember = request.getParameter("isremember");
String validate = userLoginForm.getValidateCode();
HttpSession session = request.getSession(true);
Cookie[] cookies = request.getCookies();
if (cookies != null) {
return mapping.findForward("login.jsp");
for (Cookie cookie : cookies) {
System.out.println(cookie.getName());
System.out.println(cookie.getValue());
System.out.println(session.getAttribute("JSESSIONID"));
System.out.println(session.getAttribute("loginname"));
if (cookie.getName().equals("loginname")) {
System.out.println(cookie.getValue());
if (session.getAttribute("loginname") != null) {
System.out.print(session.getAttribute(userLoginForm
.getLoginName()));
// 直接forward到主界面
return mapping.findForward("home.do");
} else {
// forward到登录界面
return mapping.findForward("login.jsp");
}
}else {
// forward到登录界面
return mapping.findForward("login.jsp");
}
}
} else {
if (null != employee) {
// return mapping.findForward("home");
// Check the user password
if (userLoginForm.getLoginPwd()
.equals(employee.getEmpPwd())) {
if (randomVal.equals(validate)) {
request.getSession().setAttribute(
Constants.SESSION_LOGON_USER_KEY, employee);
if ("yes".equals(isremember)) {
// 写入cookie
Cookie cookiename = new Cookie("loginname",
userLoginForm.getLoginName());
// Cookie cookiepass = new Cookie
cookiename.setMaxAge(1 * 3600);
response.addCookie(cookiename);
session.setAttribute("loginname", userLoginForm
.getLoginName());
session.setMaxInactiveInterval(1 * 3600);
Cookie cookie = new Cookie("JSESSIONID",
session.getId());
cookie.setMaxAge(1 * 3600); // 客户端的JSESSIONID也保存一小时
session.setMaxInactiveInterval(1 * 3600);
cookie.setPath("/");
response.addCookie(cookie);
return mapping.findForward("home");
} else {
return mapping.findForward("home");
}
} else {
ActionMessages msgs = new ActionMessages();
msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"system.invalid.validate"));
saveMessages(request, msgs);
return mapping.getInputForward();
}
} else {
ActionMessages msgs = new ActionMessages();
msgs.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("system.invalid.loginpwd"));
saveMessages(request, msgs);
return mapping.getInputForward();
}
} else {
ActionMessages msgs = new ActionMessages();
msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"system.invalid.match"));
saveMessages(request, msgs);
return mapping.getInputForward();
}
}
} catch (Exception e) {
e.printStackTrace();
ActionMessages msgs = new ActionMessages();
msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"system.exception"));
Log.logger().error(new ActionMessage("system.exception").getKey());
saveMessages(request, msgs);
// return mapping.getInputForward();
}
return mapping.getInputForward();
}
不知道这样有什么问题啊?
无法跳转,而且session.getAttribute("loginname")
为空