如何从使用ajax调用的servlet转发到jsp

时间:2017-08-07 09:59:37

标签: java jquery ajax jsp servlets

我成功使用ajax调用servlet,但是在servlet中我无法重定向到jsp 这是我调用servlet的代码

$("#nextButton").on("click", function() {
    var param = JSON.stringify(Polo);
    $.ajax({
        url:"ServletURL",
        type:"POST",
        dataType:'json',
        data: {json:param},
        success: function() {
                console.log('success');
        }
    });
});

但是在servlet中我无法重定向到jsp

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String myJsonData = request.getParameter("json");
    Gson gson = new Gson();
    Polo polo = gson.fromJson(str, Polo.class);
    request.setAttribute("Polo", polo);
    request.getRequestDispatcher("/page2/page2.jsp").forward(request, response);

}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
}

但一切正常,我没有收到任何错误,但jsp没有出现在我的浏览器上。我做错了什么?

我已经在堆栈溢出上寻找了一些解决方案,但我不理解一些答案,所以如果你能对这个问题做出明确解释以及如何解决它,我将非常感激。提前谢谢

2 个答案:

答案 0 :(得分:0)

(事先,由于评分低,我无法发表评论!)

我认为一切正常!但是您是异步发送请求的。因此,您的网络浏览器不会重定向。请在您的浏览器中打开开发工具(Chrome中的F12和大多数其他现代浏览器),导航到网络标签,找到您的请求并查看回复

我想你会在那里找到你的JSP内容。

(顺便说一句,我无法上传文件,出现了一些未知的“imgur错误”)

答案 1 :(得分:0)

您正在调用POST,其中未编程为重定向到jsp,将ajax参数type:"POST"更新为type:"GET"以获得所需结果