zoukankan      html  css  js  c++  java
  • 访问WEB-INF目录中的文件

    WEB-INF下面的文件具有安全性,直接在浏览器中输入地址是访问不到的,可以通过servlet来访问。


    方法1:
    利用<jsp-file>/WEB-INF/a.jsp</jsp-file>

     

    <servlet>
    	<servlet-name>jspFile</servlet-name>
    	<jsp-file>/WEB-INF/a.jsp</jsp-file>
    </servlet>
    <servlet-mapping>
    	<servlet-name>jspFile</servlet-name>
    <url-pattern>/xxx</url-pattern>

    访问地址:http://localhost:8080/项目名/xxx

    就可以看见内容了!

    这种方法之针对jsp文件,对html文件或其他不起效,容易出现乱码。

    方法2:<jsp:forward page ="/WEB-INF/a.jsp" />


    方法3:请求分派:request.getRequestDispatcher("/WEB-INF/a.jsp").forward(request,response);  

    次方法可以访问jsp和html等文件,且不能使用重定向response.sendRedirect("WEB-INF/inf.html");(相当于直接在浏览器输入地址http://127.0.0.1:8080/项目名/WEB-INF/a.jsp)



    方法3附加思路:

    怎么样让servlet访问web-inf下的网页或jsp文件呢?因为web-inf下,应用服务器把它指为禁访目录,即直接在浏览器里是不能访问到的。
    因此可以让servlet进行访问,如web-inf下有a.jsp则可以用request.getRequestDispatcher("/WEB-INF/a.jsp").forward(request,response); 进行派遣访问。

    但如果web-inf下有a.html,则用request.getRequestDispatcher("/WEB-INF/a.html").forward(request,response); 就不能访问。(我的没有如下配置也可以访问,没有深究)

    一开始想不通,觉得怪,后来想想,jsp其实也是servlet,会自动编译的。

    于是work目录下会有/web-inf/a$jsp.class类型(我找到的是workCatalinalocalhost estServletorgapachejspWEB_002dINFa_html.class)

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

    在tomcat下的conf/web,找到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>

    结果:一切OK,访问a.htm,和a.html在work/web-inf/下者有a$htm.class,a$html.class生成



  • 相关阅读:
    【数学】三分法
    【数学】【背包】【NOIP2018】P5020 货币系统
    【数学】【CF27E】 Number With The Given Amount Of Divisors
    【单调队列】【P3957】 跳房子
    【极值问题】【CF33C】 Wonderful Randomized Sum
    【DP】【CF31E】 TV Game
    【神仙题】【CF28D】 Don't fear, DravDe is kind
    【线段树】【CF19D】 Points
    【字符串】KMP字符串匹配
    【二维树状数组】【CF10D】 LCIS
  • 原文地址:https://www.cnblogs.com/oldinaction/p/5167459.html
Copyright © 2011-2022 走看看