【Web】【Tomcat】详解web.xml文件
一、基本配置
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>
标签元素说明:
- <servlet-name>:设置servlet实例的名字。
- <servlet-class>:servlet实例对应的类。
- <init-param>:表示初始化该servlet实例时的一些初始化参数,里面含有<param-name>标签标识参数名,<param-value>标签标识参数值。
- debug:表示调试等级,0表示提供最少的信息,9表示提供最多的信息
- listings:表示是否列出web路径下的所有页面,false表示不显示目录结构
- <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
- 点赞
- 收藏
- 关注作者
评论(0)