<script type="text/javascript">
function validateLogin(){
var sUserName = $("#username").val();
var sPassword = $("#password").val();
if (sUserName =="" ){
alert("请输入用户名!");
return false ;
}
if (sPassword ==""){
alert("请输入密码!");
return false ;
}
$.ajax({
type: "post",
url: "http://localhost:8080/prac/user/validate.do",
data: {
username: sUserName,
password: sPassword
},
dataType: 'json',
success: function (data) {
if (data.status) {
window.location.href = "http://localhost:8080/prac/user/success.do";
} else {
alert(data.msg);
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest);
alert(textStatus);
alert(errorThrown);
}
})
}
ajax完成后会跳转到success.do这个方法中
验证登录的方法,返回一个自定义的ResultBean。把查到的user放入到session作用域中去。
@RequestMapping(value="/validate.do", method= RequestMethod.POST)
@ResponseBody
public ResultBean validateLogin(String username, String password, ModelMap model,
HttpServletResponse response, HttpSession session) {
ResultBean resultBean = new ResultBean();
try {
User user = userService.login(username);
if (null != user) {
if (EncoderByMd5(password).equals(user.getPassword()) || password.equals(user.getPassword())) {
resultBean.setStatus(true);
resultBean.setMsg("登录成功");
resultBean.setData(user);
session.setAttribute("user", user);
} else {
resultBean.setMsg("账号或密码错误");
}
} else {
resultBean.setMsg("用户不存在,请联系管理员");
}
} catch (Exception e){
e.printStackTrace();
resultBean.setMsg("登录失败");
}
return resultBean;
}
最后跳转到success.do这个方法里面。
@RequestMapping("/success.do")
public String success(HttpSession session, ModelMap model){
return "success";
}
执行之后会跳转到success.jsp这个页面。
在success.jsp页面通过EL表达式${user.username}和${user.password}能得到用户的用户名和密码。