放在Tomcat WEB-INF目录下的文件
当浏览器访问Result.jsp时,无法正常显示,通过了解才得知,原来Tomcat WEB-INF目录下的文件,浏览器一般无法直接方法,只能通过重定向后才可以访问,如果需要直接访问,可以放在和WEB-INF同级目录下。
通过网上查阅资料得出
WEB-INF目录下的文件不能直接访问,需要映射,jsp放在那里也不能访问,应该是servlet或javabean才行
要想访问Tomcat WEB-INF目录下的文件有如下几个方法
方法1
本来WEB-INF中的jsp就是无法通过地址栏访问的.所以安全.如果说你要访问这个文件夹中的jsp文件需要在项目的web.xml文件中去配置servlet格式差不多的配置就ok了。如下:
<servlet>
<servlet-name>safety</servlet-name>
<jsp-file>/WEB-INF/show.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>safety</servlet-name>
<url-pattern>/show</url-pattern>
然而在配置的时候,web.xm出现红色叉叉,提示The content of element type "web-app" must match "
原因大概就是:web.xml中标签顺序不符合web-app_2_3.dtd规范,下面是顺序规范
icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-
mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-
ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)".
调整位置后,提示错误消失
访问地址http://localhost:8080/show
就可以看见内容了!
方法2 <jsp:forward page ="/WEB-INF/jsp/test/test.jsp" />
方法3:request.getRequestDispatcher("/WEB-INF/a.jsp").forward(request,response);
怎么样让servlet访问web-inf下的网页或jsp文件呢.因为web-inf下,应用服务器把它指为禁访目录,即直接在浏览器里是不能访问到的.
因些,可以让servlet进行访问,如web-inf下有a.jsp则可以用request.getRequestDispatcher("/WEB-INF/a.jsp").forward(request,response);进行派遣访问.但如果web-inf下有a.htm,则用request.getRequestDispatcher("/WEB-INF/a.htm").forward(request,response);就不能访问.
下面提供原文链接,怎么访问html的链接 http://blog.csdn.net/eidolon8/article/details/7050114
总结下
jsp放在webroot目录下 这样就可以让用户直接访问,jsp放在web-inf目录下就必须要通过请求才能访问。因此放在web-inf下jsp页面显得要安全。