我想通过修改响应来为每个页面包含jQuery库。这是:
这是在过滤器中:
PrintWriter out = response.getWriter();
out.println("<head><script src=\"http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.1.min.js\"></script></head>");
chain.doFilter(request, response);
它工作得很好,但是当我想用servlet写一些其他东西时,会出现以下错误:
java.lang.IllegalStateException: getWriter() has already been called for this response
我该如何解决这个问题?
答案 0 :(得分:1)
将html代码放入文件并使用servlet调度程序方法包含该文件。在javax.servlet.RequestDispatcher#include(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
中查看更多相关信息 <强> included.html
强>
<head><script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.1.min.js"></script></head>
过滤代码:
request.getRequestDispatcher("included.html").include(request, respose);
chain.doFilter(request, response);
答案 1 :(得分:0)
在Web应用程序中编写响应时,您可以使用response.getWriter()
或response.getOutputStream()
,但不能同时使用两者。所以你应该:
response.getWriter()
response.getOutputStream()