• tomcat之静态资源访问


    http://tomcat.apache.org/tomcat-8.0-doc/changelog.html
    https://tomcat.apache.org/tomcat-8.0-doc/ssi-howto.html
    http://tomcat.apache.org/tomcat-8.0-doc/config/resources.html
    https://www.mail-archive.com/users%40tomcat.apache.org/msg99420.html// Tomcat8以下的Alias配置

    https://www.mail-archive.com/search?l=users%40tomcat.apache.org&q=PostResources
    http://mail-archives.apache.org/mod_mbox/tomcat-users/201402.mbox/%3C066F723E14695044B4BA02C550246BE6044434A8@NLBAWEXMBX3.infor.com%3E

    由此总结出一条心得,查问题的路径:Tomcat官方->找到相关标签->批量搜索Google->取得结果最为高效

    例子(Tomcat7或7以下):

    <Context useHttpOnly="true" privileged="true" allowLinking="true" aliases="/static=z:/static,/news=z:/news">
    ...
    Context>
    

    jsp中调用时这样写

    例子(Tomcat8):

    <Context path="" docBase="D:\workspacejava\guess\guessweb\src\main\webapp" reloadable="false" allowLinking="true" privileged="true">
     <Resources>
    	<PostResources base="z:/news" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/news"/>
    	<PostResources base="z:/static" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/static"/>
     Resources>
    Context>
    

    z为:映射的驱动器名称(可在打开计算机里面看到映射网络驱动器)
    base为:待替换目录
    webAppMount为:挂载目录,即:Tomcat遇到以/news开头的替换为base指定的值,其中base指定为z:/news/也可行

    需要在web.xml里面开启SSI,配置为filter模式也可以,两者选其一即可
    也可以直接释放掉Tomcat安装目录下的config下的web.xml配置中的SSI,这个释放和配置在当前项目的web.xml中功能效果是一样的,区别在于一个是全局,一个仅仅针对当前项目
    配置如下:

    <servlet>
      <servlet-name>ssiservlet-name>
      <servlet-class>
        org.apache.catalina.ssi.SSIServlet
      servlet-class>
      <init-param>
        <param-name>bufferedparam-name>
        <param-value>1param-value>
      init-param>
      <init-param>
        <param-name>debugparam-name>
        <param-value>0param-value>
      init-param>
      <init-param>
        <param-name>expiresparam-name>
        <param-value>666param-value>
      init-param>
      <init-param>
        <param-name>isVirtualWebappRelativeparam-name>
        <param-value>falseparam-value>
      init-param>
      <init-param>
        <param-name>inputEncodingparam-name>
        <param-value>UTF-8param-value>
      init-param>
      <init-param>
        <param-name>outputEncodingparam-name>
        <param-value>UTF-8param-value>
      init-param>
      <load-on-startup>4load-on-startup>
    servlet>
    <servlet-mapping>
     <servlet-name>ssiservlet-name>
     <url-pattern>*.shtmlurl-pattern>
    servlet-mapping>
    
  • 相关阅读:
    【MQTT接收数据写入数据库】
    bug:Chrome插件SwitchyOmega安装时程序包无效:“CRX_HEADER_INVALID“问题
    Vue Patch,忙啥呢?
    vite脚手架简单使用
    Leetcode3200. 三角形的最大高度
    用对配音软件,轻松制作专业配音~
    jsp公交查询系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
    c++面试总结
    Prototypical Networks for Few-shot Learning
    Android 9.0 MediaPlayer播放流程分析
  • 原文地址:https://blog.csdn.net/ice666_1/article/details/127098001