HttpServletResponse 应发送数据而不将它们打印到客户端屏幕
HttpServletResponse shall send data without printing them to client screen
我正在构建 Web 应用程序。
此 Web 应用程序的一部分是从客户端到服务器的 ajax 请求:
$.ajax({
url: url,
type: "get",
data: {
id: ID,
},
success: function(response) {
//parameter response contains the data sent back from the server
//some stuff is done to this data in the rest of this function
},
error: function() {
alert("An error occurred.");
}
});
在服务器端,我使用 servlet 来处理请求。
一旦收到来自客户端的数据,并且应用了一些业务逻辑,我想发回一个简单的字符串。
然后,数据字符串将由上面 ajax 函数的以下部分处理:
success: function(response) {
//parameter response contains the data sent back from the server
//some stuff is done to this data in the rest of this function
},
我的问题是:
我知道如何将数据发送到客户端的屏幕:
PrintWriter out = response.getWriter();
out.println(data);
但是,我不知道如何将数据(不是发送到屏幕,而是)发送到 ajax-函数,以便此 ajax-函数可以处理数据从服务器收到。
class"HttpServletResponse"的java对象"response"只提供了"sendError()"等方法。
我想发送数据而不将它们打印到屏幕上。
我该怎么做?
************************更新****************** *************************
我尝试使用 PrintWriter 将字符串发送回 ajax 函数:
PrintWriter out = response.getWriter();
out.println("test");
...然后我想在警报消息中输出文本 "test":
$.ajax({
url: url,
type: "get",
data: {
latitude: location.lat(),
longitude: location.lng(),
radius: 10
},
success: function(response) {
alert(response);
},
error: function() {
alert("Ein Fehler beim Abfragen der Daten ist aufgetreten.");
}
});
但不是输出内容为 "test" 的警报消息,而是输出包含 JSP-页面的整个 html 代码,ajax -呼叫已发送!
没有任何内容会具体发送到 "screen",所有内容都与请求的来源有关。
如果点击一个link,浏览器发起请求,浏览器收到response
并处理输出显示
在这种情况下,request
将源自您的 ajax 调用,因此 ajax 调用将处理请求并且内容将在 .requestText
属性 的响应。
您可能需要确保 HttpServletResponse
对象的响应内容类型设置为 "text/html",但由于您要使用 ajax ,您不妨也考虑使用 JSON。
我正在构建 Web 应用程序。
此 Web 应用程序的一部分是从客户端到服务器的 ajax 请求:
$.ajax({
url: url,
type: "get",
data: {
id: ID,
},
success: function(response) {
//parameter response contains the data sent back from the server
//some stuff is done to this data in the rest of this function
},
error: function() {
alert("An error occurred.");
}
});
在服务器端,我使用 servlet 来处理请求。 一旦收到来自客户端的数据,并且应用了一些业务逻辑,我想发回一个简单的字符串。
然后,数据字符串将由上面 ajax 函数的以下部分处理:
success: function(response) {
//parameter response contains the data sent back from the server
//some stuff is done to this data in the rest of this function
},
我的问题是:
我知道如何将数据发送到客户端的屏幕:
PrintWriter out = response.getWriter();
out.println(data);
但是,我不知道如何将数据(不是发送到屏幕,而是)发送到 ajax-函数,以便此 ajax-函数可以处理数据从服务器收到。
class"HttpServletResponse"的java对象"response"只提供了"sendError()"等方法。
我想发送数据而不将它们打印到屏幕上。
我该怎么做?
************************更新****************** *************************
我尝试使用 PrintWriter 将字符串发送回 ajax 函数:
PrintWriter out = response.getWriter();
out.println("test");
...然后我想在警报消息中输出文本 "test":
$.ajax({
url: url,
type: "get",
data: {
latitude: location.lat(),
longitude: location.lng(),
radius: 10
},
success: function(response) {
alert(response);
},
error: function() {
alert("Ein Fehler beim Abfragen der Daten ist aufgetreten.");
}
});
但不是输出内容为 "test" 的警报消息,而是输出包含 JSP-页面的整个 html 代码,ajax -呼叫已发送!
没有任何内容会具体发送到 "screen",所有内容都与请求的来源有关。
如果点击一个link,浏览器发起请求,浏览器收到response
并处理输出显示
在这种情况下,request
将源自您的 ajax 调用,因此 ajax 调用将处理请求并且内容将在 .requestText
属性 的响应。
您可能需要确保 HttpServletResponse
对象的响应内容类型设置为 "text/html",但由于您要使用 ajax ,您不妨也考虑使用 JSON。