思路:将表单中提交的数据交给登录控制器,先验证是否有错误,如过错误返回错误信息,如果没有这将用户名密码查询数据库获取的对象保存在session中,然后将页面跳转。
控制器:
@Controller
public class LoginController {
@Resource
LoginService loginService;
// 加载登录页面
@RequestMapping("/login")
public String loadLogin(){
return "login";
}
// 登录验证
@RequestMapping(value = "/login/students", method = RequestMethod.POST)
@ResponseBody
public Msg getLogin(Login login, HttpSession session){
// 登录检测,返回登录人员信息的实体类
Login reLogin = loginService.checkUser(login);
System.out.println(reLogin);
if(reLogin == null){
// 不存在,返回错误,并跳转注册页面
System.out.println("null");
return Msg.fail().add("end", "登录信息有误,请确认后在填写!");
}else{
// 如果存在则将实体类,保存在session中
session.setAttribute("userSession", reLogin);
System.out.println("OK");
// 返回成功信息
return Msg.success().add("end", "欢迎"+reLogin.getName()+"登录!");
}
}
@RequestMapping(value = "/logout")
@ResponseBody
public Msg logout(HttpSession session){
// 移除session
session.removeAttribute("userSession");
// @SessionAttributes需要清除时,使用SessionStatus.setComplete();来清除。注意,它只清除@SessionAttributes的session,不会清除HttpSession的数据
sessionStatus.setComplete();
return Msg.success().add("logout", "退出登录成功");
}
}
登录form表单:
<form class="form-horizontal" onclick="return false;">
<div class="form-group">
<label for="inputName" class="col-sm-2 control-label">姓名</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputName" placeholder="请输入你的姓名" name="username">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">密码</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="inputPassword3" placeholder="请输入密码" name="password">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button class="btn btn-success" onclick="sub_login()">登录</button>
<button class="btn btn-primary" type="reset">重置</button>
</div>
</div>
</form>
JS登录控制:
function sub_login(){
var name = $("input[name='username']").val();
var passwd = $("input[name='password']").val();
var data = {
'username':name,
'password':passwd,
};
var contextPath = $('#contextPath').attr('href');
console.log(data);
$.ajax({
url: contextPath+"loginAdmin/admin",
type: "POST",
data: data,
success: function(res){
console.log(res);
if(res.code == 100){
layer.open({
content: res.extend.end,
yes: function(index, layero){
layer.close(index); //如果设定了yes回调,需进行手工关闭
location.href=contextPath+"/admin/index";
}
});
}else{
layer.msg(res.extend.end);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log(XMLHttpRequest);
}
});
}
基本上就这样了!又不知道的可以留言。