Yaj*_*aje 9 java ajax jquery servlets get
例如 :
我有一个像:
$.get('Test_Controller.html',function(response){
alert(response);
});
Run Code Online (Sandbox Code Playgroud)
在我的Test_Controller.htmlservlet中我有:
request.setAttribute("test","testData");
RequestDispatcher requestDispatcher =
request.getRequestDispatcher("/test.jsp");
requestDispatcher.forward(request,response);
Run Code Online (Sandbox Code Playgroud)
问题是:
为什么response总会提醒我的文本内容,test.jsp而不是JSON我通过的内容getWriter()
编辑:
我需要得到:
TestData testData = new TestData();
request.setAttribute("test",testData);
Run Code Online (Sandbox Code Playgroud)
使用jQuery的$ .get()所以页面不会重新加载,但不幸的是,当我没有发送我的响应对象似乎是null,当我发送和转发时,当我提醒响应时它会提醒文本页.
您希望将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 ....");
}
Run Code Online (Sandbox Code Playgroud)
这就是全部(显然将servlet连接到您的URL web.xml).你$.get()应该看到你写给作家的任何东西.
请注意,发送的内容(在Java中)和收到的内容(在Javascript中)都是TEXT字符串.您有责任将数据转换为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 ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1007 次 |
| 最近记录: |