web项目访问jsp的方式及页面间的跳转
在J2EE中其主要安全性就体现在web工作目录的WEB-INF文件夹下。
一般为啥要把jsp页面放在WEB-INF呐?这样主要是为了网站的安全的角度来说的,WEB-INF是安全目录Tomcat 默认的访问路径是WebRoot下的index.jsp[体现在下图,它是按顺序匹配的],放在WEB-INF下的页面一般不配置是无法访问的。
因此如果将一个页面放在WEB-INF文件夹下,那么该页面的安全性将得到提高...
但有时候当我们需要访问该页面时,却无法访问,那么如何能够访问WEB-INF文件夹下的页面呢?
此为项目目录:
可以直接将想要访问的jsp写在WebContent下,以项目名为url进行访问
或者在web.xml中做一下配置
<welcome-file-list>
<welcome-file>/WEB-INF/one.jsp</welcome-file>
</welcome-file-list>
接下来以<a>标签讲解一下jsp之间的跳转,重点是要跳转到WEB-INF下的jsp
通常这个时候我们会试下相对地址/b.jsp、绝对地址/WEB-INF/b.jsp以及${pageContext.request.contextPath}/WEB-INF/b.jsp,但无论怎么搞都不行,这个时候就比较崩溃。
但是还是可以通过servlet来完成任务了。
首先在web.xml里面配置servlet和servlet mapping
<servlet>
<servlet-name>goto</servlet-name>
<jsp-file>/WEB-INF/jsp/test.jsp</jsp-file>--要跳转到的页面
</servlet>
<servlet-mapping>
<servlet-name>goto</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
配置好了之后在jsp页面里用a就可以跳转了<a href="/工程名/test">测试页面跳转</a>
这里一定要“/工程名/test”
通过servlet跳转还是比较麻烦了,但是这样能保证JSP页面的安全性,想两全其美是比较难的了。
当然如果安全要求不高,那就可以做成很简单的了,直接把所有的jsp页面全部放在webRoot底下,在WebRoot下页面用户可以直接输入地址访问。