项目WEB-INF下page资源为jsp和html测试总结

WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射(servlet-mapping)才能访问。

WEB-INF介绍:https://baike.so.com/doc/1270031-1343005.html

WEB-INF下jsp文件测试:

在$tomcat_home/conf/web.xml中会默认设置(下面的servlet-mapping)jsp的servlet-mapping配置;

  <servlet-mapping>

      <servlet-name>jsp</servlet-name>

      <url-pattern>*.jsp</url-pattern>

      <url-pattern>*.jspx</url-pattern>

  </servlet-mapping>

启动tomcat后会先加载tomcat的web.xml文件,所以当WEB-INF中的文件为jsp后可以使用request.getRequestDispatcher("/WEB- INF/***.jsp").forward(request,response)直接访问,不用在项目web.xml文件中配置。如果是ssm项目,使用springMVC配置静态资源映射和静态资源文件访问这两种方式后删除tomcat的web.xml中jsp的servlet-mapping同样可以访问。如果不配置静态资源映射访问同时删除tomcat的web.xml中jsp(servlet-mapping),在使用request.getRequestDispatcher("/WEB- INF/***.jsp").forward(request,response)就不能访问到jsp页面。

WEB-INF下html测试:

在tomcat下web.xml中jsp的servlet-mapping加入<url-pattern>*.html</url-pattern>,启动tomcat同样会加载到WEB-INF下的html文件,但会出现乱码。同jsp一样,使用springMVC配置静态资源也可以访问到html,但不会乱码。

注意:

  项目使用html页面文件后,无论在springMVC中配置静态资源而不在项目的web.xml文件中配置servlet加载html,还是springMVC和web.xml都配置时页面加载css和js方式的方式都一样,最好写为相对路径。

    假如SpringMVC中静态资源映射配置为:

      <mvc:resources mapping="/statics/**"  location="/statics/ cache-period="31536000>

    html页面引入css和js的路径就为:

    ../statics/css/**.css 和 ../statics/js/css

这里的js和css目录是项目webapps/statics/下创建的目录。

猜你喜欢

转载自blog.csdn.net/FromTheWind/article/details/84103567
今日推荐