我有一个GuiceConfig:
public class GuiceConfig extends GuiceServletContextListener..。使用执行以下操作的configureServlets()方法:
params.put(ServletContainer.FEATURE_FILTER_FORWARD_ON_404, "true");
params.put(ServletContainer.JSP_TEMPLATES_BASE_PATH, "/WEB-INF/jsp");
serve("/*").with(GuiceContainer.class, params);该类使用@Path("/admin/index")将请求馈送到资源中,它只返回一个可查看的JSP资源:
return new Viewable( "/admin/index" ) ;当我运行这个源代码并访问我的本地URL localhost:8046/admin/index时,我成功地检索到了所需的JSP资源。
但是,我不想提供(“/*”).with(GuiceContainer.class)。这样做会干扰在我的服务器上运行的其他模块。我只想处理与/rest预先挂起的请求。如果我将上面的源代码修改为以下代码:
params.put(ServletContainer.FEATURE_FILTER_FORWARD_ON_404, "true");
params.put(ServletContainer.JSP_TEMPLATES_BASE_PATH, "/WEB-INF/jsp");
serve("/rest/*").with(GuiceContainer.class, params);我现在可以成功访问本地URL localhost:8046/rest/admin/index。但是,尽管此页面成功返回,但JSP不能正确显示。控制台日志表明JSP资源、新的可视对象(“/admin/index”)已正确解析...但是页面的输出如下所示:
Error 404 /WEB-INF/jsp/admin/index.jsp我一直在挖掘,但一直无法找到一个解释这个问题的答案。任何帮助都将不胜感激。
发布于 2013-12-18 08:03:37
根据servlet规范,正常请求无法访问整个/WEB-INF/树。
但是,它可以通过各种分派技术在内部引用。
Error 404 /WEB-INF/jsp/admin/index.jsp似乎表明有东西试图直接引用该路径。
如果你击中了你的http://localhost/admin/index或http://localhost/admin/index.jsp,会发生什么?
https://stackoverflow.com/questions/20624416
复制相似问题