首页 > 代码库 > 模拟登陆

模拟登陆

新建BackgroundController类:

package cn.bdqn.mvc.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("/background/")public class BackgroundController {	@RequestMapping("home")	public String home(){		return "background/home";	}}

 

package cn.bdqn.mvc.controller;import javax.servlet.http.HttpSession;import javax.validation.Valid;import org.springframework.stereotype.Controller;import org.springframework.validation.BindingResult;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import cn.bdqn.mvc.form.LoginForm;@Controller@RequestMapping("/")public class LoginController {	//方法的返回值返回一个对象	@ModelAttribute("form")	public LoginForm getForm(){		return new LoginForm();	}		//我发送请求要访问login.html页面		@RequestMapping(value="http://www.mamicode.com/login",method=RequestMethod.GET)	public String showLogin(){				return "login";	}	//建议不用实体类接受请求,建议单独定义一个表单类	@RequestMapping(value="http://www.mamicode.com/login",method=RequestMethod.POST)	public String doLogin2(			@Valid@ModelAttribute("form")LoginForm loginForm,//这样转发回表单页面的时候会自动回填数据			BindingResult result,//服务器端验证用			HttpSession session			){		//是否发生服务器端验证错误,hasErrors()是管所有的错误		if(result.hasErrors()){			return "login";		}				if(!loginForm.getLoginName().equals("admin")){			result.rejectValue("loginName","form", "用户名输入错误");  //reject是驳回的意思		}else if (!loginForm.getPassword().equals("123456")) {			result.rejectValue("password","form", "密码输入错误");		}		//如果添加了错误信息,则转发回登陆表单页面		if(result.hasErrors()){			return "login";		}		//将登陆成功的用户名存入session		session.setAttribute("loginName", loginForm.getLoginName());		//重定向到后台首页		return "redirect:background/home.html";	}}

 

模拟登陆