【Web】【Tomcat】详解web.xml文件

举报
huahua.Dr 发表于 2022/10/31 23:47:02 2022/10/31
【摘要】 一、基本配置Web.xml主要是用来加载servlet实例的。默认的servlet实例:    <servlet>        <servlet-name>default</servlet-name>        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>        <init-...

一、基本配置

Web.xml主要是用来加载servlet实例的。默认的servlet实例:

    <servlet>

        <servlet-name>default</servlet-name>

        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

        <init-param>

            <param-name>debug</param-name>

            <param-value>0</param-value>

        </init-param>

        <init-param>

            <param-name>listings</param-name>

            <param-value>false</param-value>

        </init-param>

        <load-on-startup>1</load-on-startup>

    </servlet>

对应servlet实例处理的url请求映射,<servlet><servlet-mapping>标签是成对出现的。

    <servlet-mapping>

        <servlet-name>default</servlet-name>

        <url-pattern>/</url-pattern>

    </servlet-mapping>

标签元素说明:

  1. <servlet-name>:设置servlet实例的名字。
  2. <servlet-class>:servlet实例对应的类。
  3. <init-param>:表示初始化该servlet实例时的一些初始化参数,里面含有<param-name>标签标识参数名,<param-value>标签标识参数值。
    1. debug:表示调试等级,0表示提供最少的信息,9表示提供最多的信息
    2. listings:表示是否列出web路径下的所有页面,false表示不显示目录结构
  4. <load-on-startup>:表示在servlet容器标记启动时是否加载这个servlet实例并调用其init()方法,它的值必须是一个整数,表示servlet实例被载入的顺序,当值为0或者大于0时表示在容器启动的时候就加载并初始化这个servlet,当值小于0或者没有指定时,表示该servlet被选择时,容器才会去加载;正值的数越小,该servlet的优先级越高,容器启动时就先加载,当值相同时,容器会自己选择顺序加载。

二、<init-param>元素详解

再看一个专门处理jsp的servlet配置:

    <servlet>

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

        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>

        <init-param>

            <param-name>fork</param-name>

            <param-value>false</param-value>

        </init-param>

        <init-param>

            <param-name>xpoweredBy</param-name>

            <param-value>false</param-value>

        </init-param>

        <load-on-startup>3</load-on-startup>

    </servlet>

对用的url映射路径:

    <servlet-mapping>

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

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

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

    </servlet-mapping>

 

其中主要说一下<init-param>元素里面的参数:

参数

描述

development

默认值为true,说明jsp文件还处于开发阶段,因此Jasper应该按modificationTestInterval参数对jsp文件进行检查,当jsp发生更改时,则对其进行重编译

fork

默认值为true。指示使用不同的JVM编译JSP,这样可以消除资源竞争和在开发阶段的类加载器冲突

checkInterval

单位为秒,规定Jasper按这个时间间隔检查jsp是否需要重编译,默认为0,指示使用后台程序处理

modificationTestInterval

主要在development为true时发挥作用,默认值为4。Jasper将按这个频率检查jsp文件是否可以验证是否修改过。

compiler

读取资源时使用的缓存大小,默认为2KB

classdebuginfo

写资源时使用的缓存大小,默认为2KB

keepgenerated

默认值为true。指示Jasper在两次调用servlet之间在工作目录中保留那个servlet,这样可以大大提高tomcat的效率

mappedfilegenStrAsCharArray

dumpSmaptrimSpaces

supressSmap

这些是jsp开发者使用的优化和调试选项。

scratchDir

Jasper在编译jsp时使用的临时文件夹,默认为$CATALINA_HOME/work下的一个临时文件夹

xpoweredBy

默认为false。功能为生成X-Power-By头(header)

compilerTargetVM

编译生成的servlet的目标VM

compilerSourceVM

生成servlet的源VM

三、其他配置标签

(1)设置session会话超时时间

    <session-config>

        <session-timeout>30</session-timeout>

    </session-config>

(2)Mime-mapping标签

<mime-mapping>

        <extension>zip</extension>

        <mime-type>application/zip</mime-type>

    </mime-mapping>

<mime-mapping>

     <extension>htm</extension>

      <mime-type>text/html;charset=gb2312</mime-type>

 </mime-mapping>

 <mime-mapping>

      <extension>html</extension>

      <mime-type>text/html;charset=gb2312</mime-type>

 </mime-mapping>

mime-mapping是web.xml中的一个节点,用来指定对应的格式的浏览器处理方式,另外也可以用来配置静态页面的打开编码。

常见的MIME类型:

超文本标记语言文本 .htm,.html text/html

普通文本 .txt text/plain

RTF文本 .rtf application/rtf

GIF图形 .gif image/gif

JPEG图形 .ipeg,.jpg image/jpeg

au声音文件 .au audio/basic

MIDI音乐文件 mid,.midi audio/midi,audio/x-midi

RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio

MPEG文件 .mpg,.mpeg video/mpeg

AVI文件 .avi video/x-msvideo

GZIP文件 .gz application/x-gzip

TAR文件 .tar application/x-tar

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。