好吧,我不太熟悉角度,只是看看
w3
对于ajax,您需要像这样处理响应:
向span元素添加id(删除
${connect.error}
<span id="somediv"></span>
添加一个,然后单击“成功”:
<script type="text/javascript">
var app = angular.module("AHS", []);
app.controller("myCtrl", function ($scope, $http, $httpParamSerializerJQLike){
$scope.userObj = {
mail: "",
password: "",
}
$scope.submitForm = function() {
$http({
method : 'POST',
url : '/', // use relative
data: $httpParamSerializerJQLike($scope.userObj),
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8;'
}
}).then(function mySuccess(response) {
//handle response here
console.log(response.data);
document.getElementById("somediv").innerHTML = response.data;
});
};
});
</script>
那么对于servlet:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
signInForm connect = new signInForm();
User user = connect.validateSignIn(request);
HttpSession session = request.getSession();
if (user != null) {
// request.setAttribute("connect", connect); //what the hell is connect supposed to be here?
session.setAttribute("sessionUser", user);
// this.getServletContext().getRequestDispatcher("/restrict_client/client.jsp").forward(request, response); //you do not do this in ajax requests.
}else{
//request.setAttribute("connect", connect);
//this.getServletContext().getRequestDispatcher("/signIn.jsp").forward(request, response);
}
response.setContentType("text/plain"); // Set content type
response.setCharacterEncoding("UTF-8");
response.getWriter().write("hello world"); // Write response body.
}
编辑:
这里的答案非常适合学习ajax和servlet:
How to use Servlets and Ajax?