Java 在ajax代码中无法从servlet将json返回到jsp

Java 在ajax代码中无法从servlet将json返回到jsp,java,jquery,json,ajax,jsp,Java,Jquery,Json,Ajax,Jsp,我不熟悉Ajax,Jquery,JSON之类的东西。我已经在jspservlet技术中创建了一个登录页面。在登录页面上,当用户按下提交按钮时,数据在JSON中收集,并通过AJAX传输到控制器。现在,在控制器中,如果在某些条件下,发现登录名是正确的,那么它应该使用RequestDispatcher将其发送到成功页面。但是,如果条件不满足,那么它应该在JSON对象中写入消息,并将其作为内容类型JSON返回。现在的问题是,我能够在控制器上接收JSON数据,但无法在成功时重定向,也无法在用户输入错误数据

我不熟悉
Ajax
Jquery
JSON
之类的东西。我已经在
jsp
servlet
技术中创建了一个登录页面。在登录页面上,当用户按下提交按钮时,数据在
JSON
中收集,并通过
AJAX
传输到控制器。现在,在控制器中,如果在某些条件下,发现登录名是正确的,那么它应该使用
RequestDispatcher
将其发送到成功页面。但是,如果条件不满足,那么它应该在JSON对象中写入消息,并将其作为内容类型
JSON
返回。现在的问题是,我能够在控制器上接收
JSON
数据,但无法在成功时重定向,也无法在用户输入错误数据时向用户显示警报框。以下是文件:

login.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script>
function validateAndSet()
{
    var jsonRequest = {};
    var login_name = $.trim($('#loginName').val());
    var password = $.trim($('#password').val());
    if(login_name=='' || login_name.length==0 ){
        alert("Please enter login name.");
        $('#loginName').focus();
        return false;
    }
    if(password=='' || password.length==0 ){
        alert("Please enter password.");
        $('#password').focus();
        return false;
    }
    jsonRequest["login_name"] = login_name;
    jsonRequest["password"] = password;
    return jsonRequest;
}
</script>
</head>
<body>
<jsp:include page="commonResources/Header.jsp">
<jsp:param value="none" name="headerMenu"/>
</jsp:include>
<script>
$(document).ready(function(){
     $("#but").click(function(){
         var formData=validateAndSet();
         var strUrl="rwcntrlr.do?action=loginForm";
         $.post(strUrl, {jsonData: JSON.stringify(formData)},function(response){
                response = jQuery.parseJSON( response);
                if(response.status=='NOT OK')
                {
                    alert("not ok");
                }
                else{
                    alert('OK');
                }
            });
    }); 
});
</script>
<br><br>
<div class="row">
    <div class="col-sm-4"></div>
    <div class="col-sm-4">
<div class="container-fluid">
  <div class="panel panel-default" id="p1">
    <div class="panel-heading"><h3>Login</h3></div>
    <div class="panel-body">
    <center>
    <table>
    <tr>
    <td height="50">LoginName:</td><td height="50"><input type="text" id="loginName" name="loginName"/></td>
    </tr>
    <tr>
    <td height="20">Password:</td><td height="20"><input type="password" id="password" name="password"/></td>
    </tr>
    <tr><td height="50" colspan="2" align="right"><input type="submit" id="but" name="subBut" value="Go>" /></td></tr>
    </table>
    </center>
    </div>
  </div>
</div>
   </div>
    <div class="col-sm-4"></div>
  </div>
</body>
</html>

当我按下login.jsp上的提交按钮时,什么也没发生。没有显示控制台错误。如何解决此问题。

是否使用Spring?控制器映射注释丢失。从html/jsp重定向到某个url,但在控制器中,同一url没有映射。不,我没有使用spring,无论如何,控制器映射是正确的,因为它正在控制器上接收数据
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String formName=request.getParameter("action");

        if(formName.equalsIgnoreCase("loginForm")){
            String strJSONData = request.getParameter("jsonData");
            System.out.println(strJSONData);// data received correctly...
            JSONObject jsonResponse = new JSONObject();

            try{
                JSONObject requestedJSONObject = new JSONObject(strJSONData);
                String login_name = requestedJSONObject.getString("login_name");
                String password = requestedJSONObject.getString("password");
                if(login_name.equalsIgnoreCase("u2")){
                    RequestDispatcher rd=request.getRequestDispatcher("employeeSection/employeeDailySheet.jsp");
                    response.setContentType("text/html");
                    rd.forward(request, response);
                    }
                    else{
                        jsonResponse.put("status", "NOT OK");
                        response.setContentType("application/json");
                        response.getWriter().write(jsonResponse.toString());
                    }

            }
            catch(Exception ex){
                ex.printStackTrace();
            }           
        }
    }