一.理论准备
xml规则, 必须有且只有一个根节点, 大小写敏感, 标签不嵌套, 必须配对。
web.xml不是必须的
只要你不用到里面的配置信息就不用,
不过在大型web工程下使用该文件是很方便的,若是没有也会很复杂。
web.xml能做都有哪些 web.xml的模式(Schema)文件中定义了多少种标签元素, web.xml中就可以出现它的模式文件所定义的标签元素, 它就能拥有定义出来的那些功能。
web.xml的模式文件是由Sun公司定义的,
每个web.xml文件的根元素中,
都必须标明这个web.xml使用的是哪个模式文件。
spring 框架解决字符串编码问题
过滤器 CharacterEncodingFilter(filter-name)
在web.xml
配置监听器ContextLoaderListener(listener-class)
ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。
因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。
3、部署applicationContext的xml文件:
contextConfigLocation(context-param下的param-name)
4、DispatcherServlet是前置控制器,配置在web.xml文件中的。
拦截匹配的请求,
Servlet拦截匹配规则要自已定义,把拦截下来的请求,
依据某某规则分发到目标Controller(我们写的Action)来处理。
DispatcherServlet
(servlet-name、servlet-class、init-param、param-name(contextConfigLocation)、param-value)
在DispatcherServlet的初始化过程中,框架会在web应用的 WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml 的配置文件,生成文件中定义的bean
在Spring框架中
解决从页面传来的字符串的编码问题
Spring框架给我们提供过滤器CharacterEncodingFilter
针对于每次浏览器请求进行过滤的,然后再其之上添加了父类没有的功能即处理字符编码。
其中encoding用来设置编码格式,
forceEncoding用来设置是否理会 request.getCharacterEncoding()方法,设置为true则强制覆盖之前的编码格式。
使用Spring 时,
applicationContext.xml配置文件中并没有BeanFactory,
要想在业务层中的class 文件中直接引用Spring容器管理的bean可通过以下方式
1、在web.xml配置监听器ContextLoaderListener
ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。
因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。
在ContextLoaderListener中关联了ContextLoader这个类,所以整个加载配置过程由ContextLoader来完成。
它的API说明 第一段说明ContextLoader 可以由 ContextLoaderListener和ContextLoaderServlet生成。 如果查看ContextLoaderServlet的API, 可以看到它也关联了ContextLoader这个类而且它实现了HttpServlet这个接口 第二段,ContextLoader创建的是 XmlWebApplicationContext这样一个类, 它实现的接口是 WebApplicationContext->ConfigurableWebApplicationContext->ApplicationContext-> BeanFactory 这样一来spring中的所有bean都由这个类来创建 IUploaddatafileManager uploadmanager = (IUploaddatafileManager)ContextLoaderListener.getCurrentWebApplicationContext().getBean("uploadManager");