zoukankan      html  css  js  c++  java
  • 访问WEB-INF下JSP资源的几种方式(转)

    访问WEB-INF下JSP资源的几种方式

     方法一:

    本来WEB-INF中的jsp就是无法通过地址栏访问的,所以安全。
    如果说你要访问这个文件夹中的jsp文件需要在项目的web.xml文件中去配置servlet格式差不多的配置就ok了
    如下:
    <servlet>  
      <servlet-name>runtain</servlet-name>  
      <jsp-file>/WEB-INF/INF.jsp</jsp-file>  
    </servlet>  
    <servlet-mapping>  
      <servlet-name>runtain</servlet-name>  
      <url-pattern>/XXX</url-pattern>
    </servlet-mapping>

    访问地址:http://localhost:8080/runtain/xxx
    即可访问jsp页面内容

    方法二

       <jsp:forward page = "/WEB-INF/jsp/test/test.jsp" />
     

    方法三
       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);则不能访问。

    一开始想不通,觉得怪。

    后来想想,jsp其实也是servlet,会自动编译的,于是work目录下会有/web-inf/a$jsp.class类型,于是有头绪了,

    让应用服务器能够编译.htm,如a$htm.class.抱有这个想法,开始动手

    在tomcat下的conf/web.xml,找到jsp的访问方式

    <servlet-mapping>  
        <servlet-name>jsp</servlet-name>  
        <url-pattern>*.jsp</url-pattern>  
    </servlet-mapping> 

    于是在下面添加

    <servlet-mapping>  
      <servlet-name>jsp</servlet-name>  
      <url-pattern>*.htm</url-pattern>  
    </servlet-mapping>  
    <servlet-mapping>  
      <servlet-name>jsp</servlet-name>  
      <url-pattern>*.html</url-pattern>  
    </servlet-mapping>

    随后,此时可访问a.htm。

    a.html在work/web-inf/下者有a$htm.class,a$html.class生成

  • 相关阅读:
    python中的编码问题
    CVPR2018 Tutorial 之 Visual Recognition and Beyond
    hdu 1376 Octal Fractions
    hdu 1329 Hanoi Tower Troubles Again!
    hdu 1309 Loansome Car Buyer
    hdu 1333 Smith Numbers
    hdu 1288 Hat's Tea
    hdu 1284 钱币兑换问题
    hdu 1275 两车追及或相遇问题
    hdu 1270 小希的数表
  • 原文地址:https://www.cnblogs.com/mkl7/p/10805713.html
Copyright © 2011-2022 走看看