用cookie和session自动登录问题?

lishidefeng 2008-10-15 09:24:24
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")
为空
...全文
147 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
刘大仙 2012-03-28
  • 打赏
  • 举报
回复
太乱!
blackboy_my 2008-10-16
  • 打赏
  • 举报
回复
你写的那代码乱的很,精简一下
lishidefeng 2008-10-15
  • 打赏
  • 举报
回复
同志们!帮帮忙吧!
lishidefeng 2008-10-15
  • 打赏
  • 举报
回复
同志们!帮帮忙吧!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧