如何从ajax帖子重定向到servlet到jsp?

时间:2018-04-25 02:53:06

标签: java jquery eclipse jsp servlets

我正在为我们的系统登录,而index.html有这个脚本,

<script>
    $('#navbar').load('navbar.html');
    $('#errorMessage').hide();
    $("#loginBtn").click(function() { 
         $.post('http://localhost:8080/NewDesignV1/login.action',
            {
                username : $("#username").val(),
                password : $("#password").val()

            }
            ,'html');
    });
</script>

帖子位置是一个servlet,我需要转到这个servlet,这样我就可以从index.html获取数据,操作它并将其重定向到JSP页面。

我的问题是,我可以从ajax帖子获取数据但是当我使用时它不会重定向到JSP页面

request.setAttribute("key", value);
request.getRequestDispatcher("studentprofile.jsp").forward(request, response);

1 个答案:

答案 0 :(得分:0)

原因是您已通过$.post调用它,因此它是ajax方法, 事实上request.getRequestDispatcher("studentprofile.jsp").forward(request, response);正在运作,你可以得到它

$("#loginBtn").click(function() { 
     $.post('http://localhost:8080/NewDesignV1/login.action',
        {
            username : $("#username").val(),
            password : $("#password").val()

        },
        function(data){
           console.log(data);//you can get the redirect jsp context
        },
        ,'html');
});

为了让studentprofile.jsp显示,您需要避免使用$.post,您可以创建表单然后提交表单:

$("#loginBtn").click(function() { 
    var form = document.createElement("form");
    document.body.appendChild(form);
    $(form).append("<input type='hidden' name='username' value='"+$("#username").val()+"'>");
    $(form).append("<input type='hidden' name='password' value='"+$("#password").val()+"'>");
    form.action="http://localhost:8080/NewDesignV1/login.action";
    form.method="post";
    form.submit();
    $(form).remove();
});