【问题标题】:How to add a response header before forwarding to another resource如何在转发到另一个资源之前添加响应标头
【发布时间】:2011-06-20 02:29:14
【问题描述】:

我有一个处理一些资源文件的servlet,我需要在将请求转发到真正的jsp文件之前添加一个响应头。

response.setHeader("a", "b");
request.getRequestDispatcher("1.jsp").forward(request, response);

我需要直接发送那个header给浏览器,但是没有用,我尝试使用firebug来观察http请求和它的响应,我该怎么做呢?

【问题讨论】:

  • 你怎么知道它不起作用?

标签: java servlets http-headers httpresponse


【解决方案1】:

尝试改用.include(request, response)。在转发之前完全清理响应对象可能是.forward() 功能。

见http://download.oracle.com/javaee/5/api/javax/servlet/RequestDispatcher.html

【讨论】:

    【解决方案2】:

    你怎么知道它不起作用?请阅读此JR thread,我相信您期待类似的事情。

    【讨论】:

    • 不,我确实尝试通过请求对象获取 1.jsp 中的标头,我只是使用“Firebug”来查看 http 标头,我的自定义标头未显示在“1.jsp”中
    • @virsir:您介意发布您在 Firebug 中获得的相关 sn-p 吗?
    【解决方案3】:

    如果你想在1.jsp代码中使用servlet添加的一些数据,我建议你使用request.setAttribute方法。 response.addHeader/setHeader 将一些数据放入response'header中。一般浏览器都会使用响应头中的数据。

    【讨论】:

    • 是的,我只需要直接向浏览器发送一个标题
    • response.addHeader 会添加响应头,浏览器会收到。我已经测试了代码。你可以试试看。
    【解决方案4】:

    正在清理标题。只是好奇,是什么阻止您使用request.setAttribute()?

    【讨论】:

      猜你喜欢
      • 2022-01-06
      • 2022-07-28
      • 2014-11-30
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      相关资源
      最近更新 更多