它可以做如下事情:
1、提供基于 servlet 的相关配置
2、增加监听器,监控session或在tomcat启动时,加载一些你希望加载的资源。比如创建数据库连接池等等
3、设置session过期时间,tomcat默认是30分钟
4、更改应用的默认网页,常用为index.html/index.jsp等
5、增加过滤器,做一些你希望的过滤操作,比如敏感词汇的过滤
6、增加一些 jstl(标准标签库)的定义,方便在jsp中直接includ进来,直接使用这些标签
7、struts,spring或hibernate的一些配置等等
下面摘录下O'REILLY 的《Tomcat 权威指南》中的一段话:
web.xml 的文件格式定义在 Servlet 规范中,因此所有符合 Servlet 规范的 Java Servlet Container 都会用到它。当 Tomcat 部署应用程序时(在激活过程中,或加载应用程序后),它都会读取通用的conf/web.xml,然后再读取web应用程序中的WEB-INF/web.xml。其实根据他们的位置,我们就可以知道,conf/web.xml文件中的设定会应用于所有的web应用程序,而某些web应用程序的WEB-INF/web.xml中的设定只应用于该应用程序本身。
如果没有WEB-INF/web.xml文件,tomcat会输出找不到的消息,但仍然会部署并使用web应用程序,servlet规范的作者想要实现一种能迅速并简易设定新范围的方法,以用作测试,因此,这个web.xml并不是必要的,不过通常最好还是让每一个上线的web应用程序都有一个自己的WEB-INF/web.xml,即使它只用做识别,但我想这是一个好的习惯。
由于Servlet规范主要是对于web程序员,而非系统管理员使用的。因此,对于运维来讲,我们可能更关心的是站点的默认网页、自定义错误页面、禁止列目录等功能。
由于,正常生产环境中,肯定不会直接由tomcat对公网提供服务,前端肯定放的有apache或者nginx。因此,针对站点的默认主页和自定义错误页面,我们均在前端的apache或者nginx中做。另外,公司也可能交由程序猿在项目内的WEB-INF/web.xml中去做定义。
在tomcat新版本中,自动默认已经禁止列目录功能。
下面,我列出几种常见功能,在web.xml中的表现形式:
站点默认主页,
自定义错误页面,
定义会话超时时间,
禁止列目录.
四、优化 tomcat-user.xml
该文件含有用户名、角色以及密码的清单文件。负责提供webapps下manager项目的登录认证管理。
在生产环境中,我们需要将该文件全部注释。
五、优化 server.xml
Tomcat的主配置文件,该文件中包含很多主要元素,比如Service、Connector、Host等,这些元素都会创建软件"对象"、排序及进程管道中设置的这些元素嵌套方,使我们可以执行过滤、分组等工作。
如果要对改文件做优化,我们需要先了解该文件的结构!









