1)Servlet配置
本程序的Servlet是使用的Struts中的ActionServlet,它是继承的HttpServlet类。ActionServlet支持多线程,目前的Struts框架只允许在应用中配置一个ActionServlet。它是Struts中的控制器,系统的指令由其中转,它从struts-config.xml中读取配置信息,并在服务器后台自动启动一个线程。
2)init-param设置
![](https://img-my.csdn.net/uploads/201205/03/1336025675_9028.jpg)
Init-param设置ActionServlet运行参数,对Servlet的运行环境进行初始化配置。实际上param-name的值是与ActionServlet中的属性相对应的。ActionServlet在创建时会调用init函数,函数会用配置文件中param-value值来设置相应的属性。
A)Struts配置文件设置
以相对路径的方式指明Struts应用程序的配置文件位置,在ActionServlet中默认值为/WEB-INF/struts-config.xml,所以如果是默认情况,在这里也可以不用配置。如果有多个配置文件可以用逗号分隔符。
B)debug设置
设置Servlet的debug级别,控制日志记录的详细程序。默认为0,记录相对最少的日志信息。
C)detail设置
设置Digester的debug级别,Digester是Struts框架所使用的用来解析xml配置文件的一个框架,通过该设置,可以查看不同详细等级的解析日志。默认为0,记录相对最少的日志信息。
D)load-on-startup设置
这个标记指示Web应用服务器在启动时加载这个Servlet(实例化并调用init方法),标记的内容必须使用一个整数指定Servlet的加载顺序。
如果这个整数是负值,或者这个值没有出现,那么窗口任意选择Servlet加载。
如果这个整数大于等于零以,那么窗口必须按照部署的顺序加载他们。
容器必须保证,拥有小的load-on-startup值的Servlet必须先被加载,如果Servlet有相同的load-on-startup值,那么,容器将自动选择这些Servlet的加载顺序。
![](https://img-my.csdn.net/uploads/201205/03/1336025685_2030.jpg)
这里*是通配符,表示服务器只要接收到的形如*.do的请求,就会把这个请求交由名为action的servlet实例来处理。请求的形式可以由开发者自己定义,Struts中通常都用do来做为后缀。而此处的servlet-name与上面servlet定义中的servlet-name是相对应的。
![](https://img-my.csdn.net/uploads/201205/03/1336025707_5792.jpg)
context-param是application范围内的参数,存放在servletcontext中。此所设定的参数,在JSP内页中可以使用${initParam.param_name}来取得,若在Servlet可以使用String param_name = getServletContext().getInitParamter(“param_name”);来取得。
在此程序中,参数contextConfigLocation用来定义要装入的Spring配置文件。如果想装入多个配置文件,可以在<param-value>标记中用逗号作为分隔符。
默认情况Spring的配置文件为applicationContext.xml。此程序是因为改变了spring配置文件名字,所以才需要在Web.xml中配置。如果是默认情况则不需要配置。
5)Spring的Bean工厂配置
![](https://img-my.csdn.net/uploads/201205/03/1336025805_3270.jpg)
listener元素用来定义Listerner接口,ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。它实现了ServletContextListener这个接口,在Web.xml配置这个监听器,启动容器时,就会默认执行它的实现的方法,加载相应的Spring类,以使当对象调用时,实现其相应的注入。
这是一个Spring的重要类,在ContextLoaderListener中关联了ContextLoader类。所以整个加载配置过程由ContextLoader来完成,它创建的是XmlWebApplicationContext这样一个类,这个类实现了BeanFactory接口,所以Spring中的所有的bean都由这个类来创建。
6)Filter配置
![](https://img-my.csdn.net/uploads/201205/03/1336025815_1620.jpg)
filter元素用来声明filter的相关设定。过滤器就是一个Servlet,只是比较特殊而已,可以用它来对客户端请求以及发出的响应进行部分的过滤操作。filter-name是过滤器的名称,filter-class为对应的类。filter-mapping元素的两个主要子元素为filter-name与url-pattern,用来定义filter所对应的url。”/*” 形如这样的url都会发送给相应的过滤器。
A)Spring中文乱码过滤器配置
在web开发中常常遇到中文乱码的问题,解决的方案常常是在Web.xml中配置一个过滤器,Spring为我们的web开发提供了一个过滤器,可以解决中文乱码的问题。
B)Hibernate延迟过滤器配置
Hibernate的session的生命周期横跨Servlet和Jsp,当我们的Jsp需要用到某个延迟属性的时候,发现session已经关闭了,就会发生延迟加载例外。这段配置就是使用Spring中的类解决hibernate因session关闭导致的延迟加载例外问题。
![](https://img-my.csdn.net/uploads/201205/03/1336025862_6090.jpg)
指定首先访问的页面,当客户访问Web应用时,如果仅仅给出Web应用的RootUrl,没有指定具体文件名,Web容器会自动调用Web应用的欢迎文件