【发布时间】:2025-12-05 07:50:02
【问题描述】:
Jsp / servlets 似乎比我预期的要乏味得多。我正在尝试通过 ajax 调用一个 servlet 函数,实际上让它将一些数据反馈给我的前端,这是一个 jsp 文件。
此代码将我的响应返回为 null。
这是我的 servlet 的一部分。我正在尝试(拼命地从代码中很明显)让它发送一些东西 - 任何东西都返回给 ajax。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = (String) request.getParameter("action");
if (action.equalsIgnoreCase("selectedhotel"))
{
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
System.out.println("test");
String attribute = (String) request.getParameter("hotel_id");
System.out.println(attribute);
List<Room> aRooms;
aRooms = model.getRoomByHotel(Integer.valueOf(attribute));
request.setAttribute("aRooms", aRooms);
request.setAttribute("list", list);
PrintWriter outPrintWriter = response.getWriter();
outPrintWriter.write("ASDSADA");
outPrintWriter.println("test");
}
还有来自我的 JSP 的 ajax:
$(function(){
$("#hotelSelector li").click(function(){
var hid = $(this).attr('id');
$.ajax({ type: "GET",
url: "AppController?action=selectedhotel&hotel_id=1",
success : function(text)
{
alert(text);
// This will show the values. Change "alert" for $('div#mydiv').html(value) or so
}
});
});
});</script>
Riiight...所以,请修复?
【问题讨论】:
-
将 ajax 请求视为与普通的 http 请求没有什么不同,就像您在浏览器中导航到服务一样,因为这就是它的全部内容。
-
哎呀?这并不能真正解决我的问题。
-
我的意思是构建您的 servlet,就好像它是一个简单的 hello world 网页,然后从那里开始。如果您只是想让它输出某些内容,请删除除输出某些内容的代码之外的所有内容。一旦你弄清楚它是如何工作的,就开始一点一点地添加,直到你找到失败的地方。是否有任何错误日志可供您查看服务器错误?我对 java 不太熟悉,所以对于可能的代码语法问题我帮不上什么忙。
-
您可以尝试关闭响应输出流。
-
是的,我刚刚看到我没有这样做。改了,还是不行。
标签: java jquery ajax jsp servlets