我有一个采用 Java 技术的 MVC 网站。我有许多 .jsp,当通过适当的 servlet 路由到它们时工作正常,但当直接访问时似乎不起作用。我想阻止我的用户直接寻址 .jsps。
也就是说,他们可以使用 www.url.com/Website/MyServlet
,然后将他们转发到 www.url.com/Website/MyServlet.jsp
,但我想阻止它们直接寻址到 www.url.com/Website/MyServlet.jsp
,因为 HttpServletRequest
将缺少属性并且无法正确显示。当然这一定是常见的做法?我该如何解决这个问题,我可以编写一个映射,将所有 *.jsp 重定向到 not founds 除非它是转发吗?
我敢打赌,我可以编写一个过滤器来获取映射到 *.jsp 的所有非 FORWARD 指令(包括请求等)并为它们发送 404,但我认为一定有更简单的方法吗?有人有什么建议吗?
最佳答案
将它们放在 /WEB-INF
文件夹中并相应地更改转发路径。
request.getRequestDispatcher("/WEB-INF/MyServlet.jsp").forward(request, response);
/WEB-INF
(和 /META-INF
)文件夹中的文件不可公开访问。
关于java - 防止用户访问.jsp,除非通过转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10854425/