gpt4 book ai didi

java - jQuery AJAX GET 到 Servlet 不显示 JSP 页面 - 而是返回 HTML 代码

转载 作者:行者123 更新时间:2023-11-29 05:23:54 25 4
gpt4 key购买 nike

我知道我在做一些愚蠢和错误的事情,但我想不通。请帮忙。

我正在使用 Apache Tomcat Servlet 7 和 JQuery。

在我的网页上,当我单击一个按钮时,将对我的 servlet URL 进行 Jquery GET 调用。 servlet 在接收到数据(JSON 格式)后,处理数据并创建一些结果参数。然后 servlet 将这些参数传递给 JSP 文件以加载 JSP 页面。所以总而言之,当用户点击按钮时,处理发生在 servlet 上,结果 JSP 页面被加载。

问题是,当我从按钮进行 Jquery GET 调用时,没有加载结果页面。相反,当我执行 console.log(request) 时,我看到呈现的 JSP 页面的整个 html 内容。

这是单击按钮时我在 Web 应用程序上的代码:

var request;
if (request) {
request.abort();
}
request = $.ajax({
cache: false,
type: 'GET',
url:'http://<MyServerAddress>:8080/<App>/<Servlet>',
data: {
'queryType' : 'clickButton',
'data' : JSON.stringify(buttonPageInfo)
},
});
request.done(function (response, textStatus, jqXHR){
console.log("Response: " + JSON.stringify(response));
// shows the entire html content of the processed JSP page that I want to load
});

服务器端代码如下:

protected void doGet(HttpServletRequest request, HttpServletResponse response) {
processData(request, response);
}

protected void processData(request, response) {
/* Do some processing on the data and come up with results */
RequestDispatcher rd = getServletContext().getRequestDispatcher("/myJSPPage.jsp");
rd.forward(request, response);
}

rd.forward(request, response) 之后,我希望我的网页转发到 myJSPPage.jsp 以显示结果,但没有任何反应。相反,console.log("Response: "+ JSON.stringify(response)); 显示 JSP 页面的整个 HTML 内容以及我期望的结果。

我做错了什么?

最佳答案

您正在获取 HTML,因为您正在转发到 JSP。

只需删除 RequestDispatcher 内容并确保您已刷新响应数据。

关于java - jQuery AJAX GET 到 Servlet 不显示 JSP 页面 - 而是返回 HTML 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23485338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com