public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserForm userForm = (UserForm) form;
ActionMessages errors = new ActionMessages();
String ccode = (String) request.getSession().getAttribute("ccode");
HttpSession session = (HttpSession) request.getSession();
// 获得application
ServletContext application = (ServletContext) session
.getServletContext();
// 这里不知道为什么 会报空指针,
// ServletContext application = getServlet().getServletContext();
System.out.println("1---------");
// 从application中拿到list
List<User> applictionlist = (List) application.getAttribute("userlist");
// 如果list为空创建一个新的list
if (applictionlist == null) {
applictionlist = new ArrayList();
System.out.println("2---------");
}
/*
 * 用于验证验证码问题
 */
if (!ccode.equals(userForm.getCheckCode())) {
errors.add("checkcodeerror", new ActionMessage("checkcode.error"));
super.addErrors(request, errors);
return mapping.getInputForward();
}
try {
// 获得用户信息
user = iuserdao.queryUserInfo(userForm.getName());
boolean flag = iuserdao.queryUser(user);
// 判断用户账号和密码
if (flag == false) {
errors.add("usererror", new ActionMessage("user.error"));
super.addErrors(request, errors);
return mapping.getInputForward();
}
// 从application中得到User对象
for (User u : applictionlist) {
System.out.println("3---------");
User validUser = applictionlist.get(0);
// 如果有用户在线,则返回错误提示
if (u.getName().equals(validUser.getName())) {
System.out.println("4---------");
errors.add("userisusering", new ActionMessage(
"user.is.using"));
super.addErrors(request, errors);
return mapping.getInputForward();
// 如果不在线则将用户添加进入application中
} else {
System.out.println("5---------");
applictionlist.add(user);
application.setAttribute("userlist", applictionlist);
}
}
System.out.println("6---------" + applictionlist.size());
// 把user对象存入session
request.getSession().setAttribute("user", user); } catch (UserNotFoundException e2) {
errors.add("usererror", new ActionMessage("user.error"));
super.addErrors(request, errors);
return mapping.getInputForward();
} catch (Exception e) {
e.printStackTrace();
return mapping.getInputForward();
}
// 返回成功页面
return mapping.findForward("login_do");
}==============================================================================================
请高手帮忙看看呀,一直弄这个问题都几小时了,,快郁闷死了哦...