gpt4 book ai didi

java - Request Dispatcher 导致 jQuery 的 $.get 提醒页面文本

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:20:35 26 4
gpt4 key购买 nike

例如:

我有一个像这样的 js:

$.get('Test_Controller.html',function(response){ 
alert(response);
});

在我的 Test_Controller.html servlet 中我有:

    request.setAttribute("test","testData");
RequestDispatcher requestDispatcher =
request.getRequestDispatcher("/test.jsp");
requestDispatcher.forward(request,response);

问题是:

为什么 response 总是提示 test.jsp 的文本内容,而不是我通过 JSON 传递的文本内容 getWriter()

编辑:

我需要得到:

  TestData testData = new TestData();
request.setAttribute("test",testData);

使用 jQuery 的 $.get() 所以页面不会重新加载,但不幸的是,当我没有发送时,我的响应对象似乎为空,当我发送和转发时,当我提醒响应时,它会提醒页面文本。

最佳答案

您想从您的 servlet 中将一些信息写回到客户端。您的 serlvet 可能如下所示:

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("application/json");
Writer w = response.getWriter();
w.append("... your json here ....");
}

这就是全部内容(显然是将 servlet 连接到您在 web.xml 中的 URL)。您的 $.get() 应该可以看到您写入 writer 的任何内容。

请注意,发送的内容(在 Java 中)和接收的内容(在 Javascript 中)都是文本字符串。您负责在 Java 端将数据转换为可读的 JSON,并在 Javascript 端将文本解释为 JSON。后者可以这样做:

$.get(....., function(data) {
try {
// convert the text to JSON
data = jQuery.parseJSON(data);
} catch (e) {
alert("Problem reading data: "+e);
}
... use the JSON data ...
}

关于java - Request Dispatcher 导致 jQuery 的 $.get 提醒页面文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26969773/

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