我找到了
response.sendRedirect("/some-path/")
不是非常重构宽容。是否有一些相同的做法:
response.sendRedirect(lookupPath("NameOfMyServlet"))
即。查找servlet的路径,而不是硬编码。
答案 0 :(得分:0)
如果您转发到指定的servlet而不是重定向,ServletContext.getNamedDispatcher(String name)
就是您所需要的。它的javadoc说:
RequestDispatcher getNamedDispatcher(String name)
返回一个
RequestDispatcher
对象,该对象充当命名servlet的包装器。
假设sc
是当前的servlet上下文(您可以从请求对象获取它):
sc.getNamedDispatcher("NameOfMyServlet").forward(request, response);
会将控件传递给servlet。
但是如果你真的需要进行重定向,那么你只能重定向到一个URL,并且没有直接的方法来知道命名的servlet将处理什么URL。
所以替代方法是: