我想将另一个servlet的输出包含在当前响应中。
我可以打电话
request.getRequestDispatcher("/new/url").include(request, response);
它确实转到了正确的servlet,但是request.getPathInfo()
,request.getServletPath()
和朋友没有设置为新的URL(它们仍然具有旧值),因此servlet不起作用。
答案 0 :(得分:4)
是的,它应该是那样的(来自javadoc,注意Adeel Ansari引用forward()
方法的javadoc而不是include()
):
ServletResponse对象的路径元素和参数与调用者保持不变。
但是,包含的servlet可以使用以下名称访问自己的路径信息作为请求属性:
javax.servlet.include.request_uri
javax.servlet.include.context_path
javax.servlet.include.servlet_path
javax.servlet.include.path_info
javax.servlet.include.query_string