包含JSP页面忽略自定义标头

时间:2015-01-27 19:19:49

标签: java jsp tomcat servlets

我有一个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页面?

1 个答案:

答案 0 :(得分:0)

你看,JSP页面被编码并编译为Servlet。因此JSP页面基本上是伪装的Servlet,因此通过调用它实际上重定向到另一个Servlet。如果要更改JSP中的标头,可以这样做:

<%
response.setHeader("X-MyHeader", "Test");
%>

我只想在原始Servlet中包含一些标记我建议您将其存储在文本文件中,然后将该文件的内容附加到Servlet的outpustream中。