web.xml文件作用,详解
一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程。web.xml主要用来配置Filter、Listener、Servlet等。但是web.xml并不是必须的,一个web工程可以没有web.xml文件。1 web.xml工作过程1 启动一个web项目时,容器(如tomcat)会去读web.xml,读取<listener>监听器和<...
一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程。web.xml主要用来配置Filter、Listener、Servlet等。但是web.xml并不是必须的,一个web工程可以没有web.xml文件。
1 web.xml工作过程
1 启动一个web项目时,容器(如tomcat)会去读web.xml,读取<listener>监听器和<context-param>两个结点
2 然后容器创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文
3 容器将<context-param></context-param>转换为键值对,并交给servletContext
4 容器创建<listener>中的类实例,创建监听器
5 在监听器中有contextInitialized(ServletContextEventargs)初始化方法,在这个方法中获得ServletContext=ServletContextEvent.getServletContext();context-param的值=ServletContext.getInitParameter("context-param的键")
6 得到这个context-param的值后,就可以做一些操作了,注意,这个时候web项目还没有完全启动成功,换句话说,这个时候对<context-param>中的键值得操作,将在web项目完全启动以前被执行
举例:可以在项目启动之前就打开数据库,那么就可以在<context-param>中设置数据库的连接方式,在监听类中初始化数据库的连接
2 常用配置详解
2.1 servlet-mapping
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/SpringMVC.xml</param-value>
</init-param>
<!-- 配置springmvc什么时候启动,参数必须为整数 -->
<!-- 如果为0或者大于0,则springMVC随着容器启动而启动 -->
<!-- 如果小于0,则在第一次请求进来的时候启动 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成
<servlet>元素用于注册Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。
<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径
2.2 init-param
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/SpringMVC.xml</param-value>
</init-param>
<!-- 配置springmvc什么时候启动,参数必须为整数 -->
<!-- 如果为0或者大于0,则springMVC随着容器启动而启动 -->
<!-- 如果小于0,则在第一次请求进来的时候启动 -->
<load-on-startup>1</load-on-startup>
web应用启动时,启动springmvc配置
如果WEB应用启动时就需要启动某个框架程序,那么可以把框架程序的启动代码放到一个Servlet的init方法中,并为这个Servlet配置</load-on-startup>。这样的话,当WEB应用启动时,框架也将随之启动。例如我们以后将要学习到的struts框架采用的就是这种启动方式。
2.3 filter过滤器
<!-- 配置过滤器,解决post的乱码问题 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
更多推荐
所有评论(0)