一、前端JSP
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Login</title>
</head>
<script type="text/javascript" src="statics/js/jquery-3.3.1.js"></script>
<script type="text/javascript">
function userLogin(){
$.ajax({
type : "post",
url : "checkLogin",
dataType:"json",
data:{
username:$("#username").val(),
password:$("#password").val()
},
success : function(data) {
if(data.code == "0"){
window.location.href = "JSP/welcome.jsp";
}else {
alert(data.errorInfo+"");
$("#showMessage").val(data.errorInfo+"");
}
}
});
}
</script>
<body>
用戶名:<input type="text" name="username" id="username"/><br/>
密 碼:<input type="password" name="password" id="password"/><br/>
<input type="button" name="login" value="登錄" onclick="userLogin()"/><br/>
<textarea id="showMessage" style="border: none;"></textarea>
</body>
</html>
這里使用 window.location.href = "JSP/welcome.jsp" 完成Ajax里的重定向,而沒有選擇在Controller里返回視圖
二、后台Controller
package myProject.Controller; import myProject.Model.User; import myProject.Service.UserService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Map; @Controller public class LoginController { @Resource private UserService userService; @RequestMapping(value = "/checkLogin",method = RequestMethod.POST) @ResponseBody public Map userLoginCheck(HttpServletRequest request){ System.out.println("進入該方法"); String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println("request.getParameter "+username); System.out.println("request.getParameter "+password); Boolean result = checkLogin(username,password); Map<String, Object> map = new HashMap<>(); if (result) { map.put("code", 0); } else{ map.put("code", 1); map.put("errorInfo","登錄失敗,請重新登錄"); } return map; } public boolean checkLogin(String username,String password){ User user = userService.getUserByName(username); if (user == null || "".equals(user)){ return false; } if (user.getUserPwd().equals(password)){ return true; }else { return false; } } }
三、測試結果
3.1 用戶名和密碼都正確


3.2 用戶名或密碼不正確

相關參考:http://www.cnblogs.com/boycelee/p/6243646.html
