【问题标题】:How can i forward to a jsp from a servlet that has been called with ajax我如何从使用 ajax 调用的 servlet 转发到 jsp
【发布时间】:2017-08-07 09:59:37
【问题描述】:

我使用 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 没有出现在我的浏览器上。我做错了吗?

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

【问题讨论】:

    标签: java jquery ajax jsp servlets


    【解决方案1】:

    (提前,由于评分低,我还不能发表评论!)

    我认为一切正常!但是您正在异步发送请求。所以你的网络浏览器不会重定向。请在您的浏览器中打开开发工具(Chrome 和大多数其他现代浏览器中的 F12),导航到网络选项卡,找到您的请求并查看响应

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-10
        • 2013-11-08
        • 2011-06-25
        • 2012-02-02
        • 2014-09-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多