对于与WEB-INF同等级的页面文件,在web.xml中直接指定就可以了,它可以自己找到的。
<welcome-file-list>
<welcome-file>test.jsp</welcome-file>
</welcome-file-list>
但是对于WEB-INF里的页面文件,这样的方式就不可行了,在地址栏里也是访问不到的。
那么如何 访问WEB-INF目录中的页面文件(JSP、HTML)?
1、web.xml中
<servlet>
<servlet-name>jspServlet</servlet-name>
<jsp-file>/WEB-INF/test.jsp</jsp-file>// 注意这里是jsp-file而非servlet-class
</servlet>
<servlet-mapping>
<servlet-name>jspServlet</servlet-name>
<url-pattern>/jsp.do</url-pattern>
</servlet-mapping>
在地址栏里就输入:host:port/project_name/jsp.do,这样访问页面。
2、Servlet中
request.getRequestDispatcher("/WEB-INF/test.jsp").forward(request,response);
3、jsp中
jsp本身也是Servet,但是又比较特殊。jsp访问方式其实和Servlet是一样的,只是长得不大一样罢了。
<jsp:forward page ="/WEB-INF/jsp/test/test.jsp" />
在Tomcat配置中有如下代码。
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
所有以jsp结尾的命令,有已经预定的处理方式。
如果想访问html页面,可以添加这样的代码:
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
系统就会像处理jsp文件一样处理html文件了,这样访问html文件也是可以的了
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>