【发布时间】:2011-07-14 03:09:00
【问题描述】:
我上周发现了 Guice...我正在尝试一些简单的技巧。但是,我目前被阻止了...
我正在尝试将请求转发到 Servlet 中的 JSP,该 Servlet 由包含“*”的 url-pattern 提供服务。但我一直收到“错误 404”:(
一步一步:
ServletModule :
serve("/test/*").with(TestServlet.class);
TestServlet :
public void doGet(HttpServletRequest req, HttpServletResponse resp)
{
System.err.println("Start");
try
{
req.getRequestDispatcher("/WEB-INF/layout/test.jsp").forward(req, resp);
}
catch (Exception e)
{
e.printStackTrace();
}
}
我收到此错误:
HTTP 错误 404
访问 /WEB-INF/layout/test.jsp 时出现问题。原因:
/WEB-INF/layout/test.jsp
我用 "serve("/test").with(TestServlet.class);" 进行了测试并且它有效
我在没有 Guice 的情况下进行了测试(通过在 web.xml 中定义 servlet)并且它有效...
- 我做错了什么?
感谢阅读!
【问题讨论】:
-
不如尝试使用
include而不是forward) -
@Stas:听起来你只是在建议随机猜测。
-
我不做Guice,但是这个错误页面提示请求被重定向到JSP而不是被
RequestDispatcher转发。 @Matt 提到,/WEB-INF文件夹确实不可公开访问。有没有看到浏览器地址栏中的 URL 变成了一个带有/WEB-INF的 URL?如果是这样,则以某种方式进行了重定向。 -
@Matt Ball,正确。所以这不是答案。只是评论。我会删除错误的建议。
-
我的地址栏中有:localhost:8888/test/74854 - @Stas Kurilin 包括作品!为什么转发不起作用?
标签: java jsp servlets guice guice-servlet