我有一个servlet,其中包含一个JSP页面以及自定义标题:
rsp.setStatus(HttpServletResponse.SC_OK);
rsp.setContentType("text/html");
rsp.addHeader("X-MyHeader", "Test");
RequestDispatcher rd = req.getRequestDispatcher("MyPage.jsp");
if ( rd != null )
rd.include( req, rsp );
问题是,自定义标头不包含在输出流中。
据我所知,包含的服务无法添加或更改标头,这些更改会被忽略,但在这种情况下,它不是尝试添加标头的附加服务,它是执行包含的服务,而且是.jsp页面这不包括在服务中。
如何在外部服务中包含自定义标头(这里实际上只有一个服务),同时还包括.jsp页面?
答案 0 :(得分:0)
你看,JSP页面被编码并编译为Servlet。因此JSP页面基本上是伪装的Servlet,因此通过调用它实际上重定向到另一个Servlet。如果要更改JSP中的标头,可以这样做:
<%
response.setHeader("X-MyHeader", "Test");
%>
我只想在原始Servlet中包含一些标记我建议您将其存储在文本文件中,然后将该文件的内容附加到Servlet的outpustream中。