loginaction.java
来自「这个是完整的wap项目的源码 开发语言 Java 系统架构 Struts +」· Java 代码 · 共 136 行
JAVA
136 行
package com.longtime.wap.frame.web.action;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.validator.GenericValidator;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.web.struts.ActionSupport;
import com.longtime.wap.common.WapConstant;
import com.longtime.wap.frame.common.UserSessionVO;
import com.longtime.wap.frame.service.LoginService;
import com.longtime.wap.frame.web.form.LoginForm;
import com.longtime.wap.model.UserInfo;
/**
* 处理用户登录请求的action
*
* @author bulc
* @date 2007-10-31
*/
public class LoginAction extends ActionSupport {
private static final Log LOGGER = LogFactory.getLog(LoginAction.class);
private LoginService loginService;
/**
* 由spring的IOC容器的注入service对象
*
* @param loginService
* loginService对象
*/
public void setLoginService(LoginService loginService) {
this.loginService = loginService;
}
/**
* 处理用户登录请求的方法
*
* @param mapping
* action mapping对象
* @param form
* 表单对象
* @param request
* request对象
* @param response
* response对象
* @return 转向页面
* @throws Exception
* 异常
*/
@SuppressWarnings("unchecked")
@Override
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
List<String> errors = null ;
String forward = "user";
LoginForm loginForm = (LoginForm) form;
try {
errors = validate(loginForm);
if (!errors.isEmpty()) {
// 如果表单验证数据有错误则直接返回页面.
request.setAttribute(WapConstant.WAP_GLOBAL_MESSAGES, errors);
} else {
UserInfo userInfo = loginService
.getUserInfoByUsername(loginForm.getUsername());
if (null == userInfo) {
// 用户不存在
errors.add("用户不存在");
} else {
if (!userInfo.getPassword().
equals(loginForm.getPassword())) {
// 登录失败,用户名密码不匹配
errors.add("用户名/密码不正确");
} else {
// 登录成功. 并且创建usersession vo对象
UserSessionVO usVo = new UserSessionVO();
usVo.setUserId(userInfo.getUserId());
usVo.setUsername(userInfo.getUserName());
usVo.setUserGroup(userInfo.getGroupId());
if (userInfo.getGroupId() == 1) {
usVo.setCpId(userInfo.getCp().getCpId());
}
usVo.setMoney(String.valueOf(userInfo.getMoney()));
usVo.setNickName(userInfo.getNickname());
usVo.setRegDate(userInfo.getRegDate());
// 将usersession vo对象存入session
request.getSession().setAttribute(
WapConstant.USER_SESSION, usVo);
LOGGER.info(loginForm.getUsername() + "登录成功!");
// 管理员直接跳转到管理后台页面
if (userInfo.getGroupId() != 2) {
forward = "admin";
}
}
}
if (!errors.isEmpty()) {
request.setAttribute(WapConstant.WAP_GLOBAL_MESSAGES,
errors);
}
}
} catch (Exception ex) {
LOGGER.error(ex);
ex.printStackTrace();
}
return mapping.findForward(forward);
}
/**
* 表单数据校验
*
* @param loginForm
* 表单数据对象
* @return List 错误信息集
*/
@SuppressWarnings("unchecked")
private List validate(LoginForm loginForm) {
List errors = new ArrayList();
if (GenericValidator.isBlankOrNull(loginForm.getUsername())
|| GenericValidator.isBlankOrNull(loginForm.getPassword())) {
errors.add("用户名/密码不能为空");
}
return errors;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?