2013-11-14 56 views
0

我正在使用Java Servlets 3.1.0构建一个简单的Web应用程序。
有没有一种方法可以阻止我通过URL直接访问我的WEB-INF中的页面?通过Java Servlet中的URL阻止文件访问Webapp

例如:
我在WEB-INF文件夹中有文件dashboard.jsp。我也有一个叫DashboardServlet的servlet可访问使用/dashbboard中,我使用RequestDispatcher转发dashboard.jsp

所以现在,当我访问localhost:8080/dashboarddashboard.jsp所示。 然而,也显示仪表盘,当我尝试访问localhost:8080/dashboard.jsp

我怎样才能防止localhost:8080/dashboard.jsp访问,同时还在做对localhost:8080/dashboard可能在盼着。

谢谢!

+2

如果您的jsp文件放在WEB-INF中,那么如果您尝试查找'localhost:8080/dashboard',它将不会提供jsp文件,除非您的servlet只读取原始jsp文件并输出它 –

+0

Check http://stackoverflow.com/a/7282575/643500 –

+0

什么在'web.xml'中? –

回答

1

WEB-INF目录包含一个heirarcy,您可以在其中找到Web应用程序的必要配置信息,以及由JSP(Java Server Pages)调用的servlet和类的所有类文件。 WEB-INF目录是您的Web应用程序的重要组件,如果没有它,它将不会运行!

这基本上意味着WEB-INF意味着隐藏Jsp文件。

因此,如果您将JSP文件复制到WEB-INF,它们将无法以localhost:8080/dashboard.jsp格式访问。

还要检查您的Web.xml是否有正确的servlet映射条目。