我在Eclipse中的.jsp文件中运行了以下jQuery语句,该文件位于WebContent / public目录中:
$(document).ready(function(){
$('#login').click(function(){
$('#display').html('Logging in...');
var username = $('#username').val();
var password = $('#password').val();
$.ajax({
url : '/AuthenticationServlet',
type : 'POST',
dataType : 'text',
data : {'username' : username, 'password' : password},
success : function(data) {
$('#display').html('');
if(data != "SUCCESS"){
//TODO create an element to display validity
$('#display').html('Invalid Username/Password combination');
}else if (data == "SUCCESS"){
$('#username').val('');
$('#password').val('');
$('#display').html('Success!');
}
else{
$('#display').html('Something has gone horribly wrong.');
}
}
});
return false;
});
});
我在src / authentication目录中有我的servlet,AuthenticationServlet,它编写如下:
/**
* Servlet implementation class AuthenticationServlet
*/
@WebServlet("/AuthenticationServlet/*")
public class AuthenticationServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* Default constructor.
*/
public AuthenticationServlet() {
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
* This method gets the username and password from the jsp file, then proceeds to pass them to
* the authentication helper for validation.
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//get the parameters from the request
String username = request.getParameter("username");
String password = request.getParameter("password");
//verify the login/password combination is correct
boolean authenticated = AuthenticationHelper.verifyUser(username, password);
if(authenticated){
response.getWriter().write("SUCCESS");
}
else{
response.getWriter().write("FAILURE");
}
}
}
问题是,在输入有效的用户名和密码组合后,JSP中的'display'元素只会更改为“Logging in”并且根本不会更改,表示jquery不再执行最终将元素更改为其他内容的代码(无论是空白还是其他任何字符串)。我究竟做错了什么?我的网址不正确吗?
答案 0 :(得分:1)
您想以username=usernameValue&password=passwordValu
e发送请求。因此,请修改url
和data
,如下所示:
url : 'AuthenticationServlet', // Remove /, it will skip the context path.
data : {username : username, password : password}, // Remove quotation.