在此原文的基础上做了一些改动,并增加了新的东西。

一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程。web.xml主要用来配置Filter、Listener、Servlet等。但是web.xml并不是必须的,一个web工程可以没有web.xml文件。

1 web.xml工作过程

1.1启动一个web项目时,容器(如tomcat)会去读web.xml,读取监听器和两个结点

1.2 然后容器创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文

1.3 容器将转换为键值对,并交给servletContext

1.4 容器创建中的类实例,创建监听器

1.5 在监听器中有contextInitialized(ServletContextEventargs)初始化方法,在这个方法中获得ServletContext=ServletContextEvent.getServletContext();context-param的值=ServletContext.getInitParameter("context-param的键")

1.6 得到这个context-param的值后,就可以做一些操作了,注意,这个时候web项目还没有完全启动成功,换句话说,这个时候对中的键值得操作,将在web项目完全启动以前被执行

举例:可以在项目启动之前就打开数据库,那么就可以在中设置数据库的连接方式,在监听类中初始化数据库的连接

2 常用配置详解

2.1 servlet-mapping

DispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/SpringMVC.xml
1
DispatcherServlet
*.action

由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用元素和元素完成

元素用于注册Servlet,它包含有两个主要的子元素:和,分别用于设置Servlet的注册名称和Servlet的完整类名。

元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:和,分别用于指定Servlet的注册名称和Servlet的对外访问路径

2.2 init-param

contextConfigLocation
classpath:spring/SpringMVC.xml
1

web应用启动时,启动springmvc配置

如果WEB应用启动时就需要启动某个框架程序,那么可以把框架程序的启动代码放到一个Servlet的init方法中,并为这个Servlet配置。这样的话,当WEB应用启动时,框架也将随之启动。例如我们以后将要学习到的struts框架采用的就是这种启动方式。

2.3 filter过滤器

encoding
org.springframework.web.filter.CharacterEncodingFilter
encoding
/*

2.4 context-param

2.5 welcome-file-list

暂未完成,有时间更