利用MyBatis实现简单的登录功能,关键在于构建出MyBatis骨架,并在UserController添加相对应的代码,实现用户登录验证的逻辑。
MyBatis骨架
IndexController.java
**
* 登录接口
*
* @param model
* @param loginData JSON格式的登录信息,可以使用Java类描述,也可以使用Map
* @return
*/
@RequestMapping(value = {"login.json"})
@ResponseBody
public BaseResult login(HttpServletRequest request,Model model, @RequestBody Map<String, Object> loginData
) {
//TODO: 从loginData中获取账号和密码,进行验证,根据验证结果返回信息
BaseResult baseResult=null;
String name=loginData.get("loginName").toString();
User u = userService.Sel(name);
if(u != null){
//从数据库中获取的密码
String ps = u.getPassWord();
//从表单中获取的密码
String psFromForm = loginData.get("loginPwd").toString();
System.out.println("user:........"+u.toString());
if(ps.equals(psFromForm)){
baseResult = new BaseResult();
baseResult.setSuccess(true);
request.getSession().setAttribute("user",u);
}else{
baseResult = new BaseResult();
baseResult.setSuccess(false);
}
}
return baseResult;
}
/**
* 注销页面
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = {"logout.html"})
public String logout(HttpServletRequest request,
HttpServletResponse response) {
//TODO: 从Session中删除用户信息
HttpSession session = request.getSession();
session.setAttribute("user",null);
return "login";
}
在UserMapping.xml中注意修改以下两项路径
在login.html中添加上οnsubmit="return false"取消自动登录
补充:left.html
<div class="user-block-info">
<a id="gUserNickName" href="javascript:;" class="user-block-name"
th:text="${session.user==null?'未登录':session.user.userName}">
</a>
</div>