logincontroller.java

来自「Spring企业级开发下......电子书籍..............」· Java 代码 · 共 48 行

JAVA
48
字号
package com.baobaotao.web;

import java.util.Date;

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

import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController;

import com.baobaotao.domain.User;
import com.baobaotao.service.UserService;

public class LoginController extends AbstractCommandController {
	private UserService userService;

	public LoginController() {
		setCommandClass(LoginCommand.class);
	}

	public void setUserService(UserService userService) {
		this.userService = userService;
	}

	protected ModelAndView handle(HttpServletRequest request,
			HttpServletResponse response, Object command, BindException errors)
			throws Exception {		
		if (request.getSession().getAttribute("user") != null) {
			return new ModelAndView("target");
		}
		LoginCommand loginCommand = (LoginCommand) command;
		boolean isValidUser = userService.hasMatchUser(loginCommand
				.getUserName(), loginCommand.getPassword());
		if (!isValidUser) {
			return new ModelAndView("login", "error", "user name or password error.");
		} else {
			User user = userService.findUserByUserName(loginCommand
					.getUserName());
			user.setLastIp(request.getLocalAddr());
			user.setLastVisit(new Date());
			userService.loginSuccess(user);
			request.getSession().setAttribute("user", user);
			return new ModelAndView("main");
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?