java - 防止用户访问.jsp,除非通过转发

标签 java servlets

我有一个采用 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/

相关文章:

java - 具有重写的fileInputFormat的MapReduce无法输出结果

Java:跟踪操作系统中触及的文件

java - 操作 javac -d : invalid flag? 时出错 如果我更正它,则会出现另一个 package-not-found 错误

java - 如何以编程方式停止 ServletRequestListener?

java - 通过 java Processbuilder 提交 mapreduce 作业不会结束

java - MongoException.DuplicateKey 无法解析为 Eclipse IDE 中的类型

Java Servlet 上下文和 session 级变量

java - Android 应用程序中的 HttpClient 请求失败,没有任何异常

java - 如何获得循环内每个商品的总销售成本?

java - jquery.get 和 servlet