【spring mvc】基础概念
1、容器
- servlet容器
负责管理servlet生命周期。
- web容器–tomcat
负责管理和部署web应用,其本身可能具备servlet容器组件;如果没有,一般能将第三方servlet容器作为组件整合进web容器。 web容器好比”电视机”,servlet容器好比”VCD”。没有VCD你可以看电视,但是有了VCD没有电视机,你从哪看起? 没有servlet容器,你也可以用web容器直接访问静态页面,比如安装一个apache等,但是如果要显示jsp/servlet,你就要安装一个 servlet容器了,但是光有servlet容器是不够的,因为它要被解析成html输出,所以你仍需要一个web容器.大多数servlet容器同时提供了web容器的功能,也就是说大多servelt可以独立运行你的web应用。
- IOC容器–Spring Bean Factory
BeanFactory负责配置、创建、管理Bean,他有一个子接口:ApplicationContext,因此也称之为Spring上下文。Spring容器负责管理Bean与Bean之间的依赖关系。
- Spring容器–Spring Application Context
2、Spring Application Context
- 路径相关疑问可参考:http://blog.csdn.net/jackieliulixi/article/details/24556403
- ClassPathXmlApplicationContext
只能读放在web-info/classes目录下的配置文件,如图所示:
1.没有前缀:默认为项目的classpath下相对路径 ApplicationContext appCt = new ClassPathXmlApplicationContext(“app.spring.xml”);
2.前缀classpath:表示的是项目的classpath下相对路径 ApplicationContext appCt = new ClassPathXmlApplicationContext(“classpath:app.spring.xml”);
3.使用前缀file 表示的是文件的绝对路径 ApplicationContext appCt = new ClassPathXmlApplicationContext(“file:D:/app.spring.xml”);
4.可以同时加载多个文件 String[] xmlCfg = new String[] { “classpath:base.spring.xml”,”app.spring.xml”}; ApplicationContext appCt = new ClassPathXmlApplicationContext(xmlCfg);
5.使用通配符加载所有符合要求的文件 ApplicationContext appCt = new ClassPathXmlApplicationContext(“*.spring.xml”); ClassPathXmlApplicationContext是spring的容器,用于解析spring的beans.xml,获取响应的bean。 ApplicationContext实例是spring的核心,它既是一个巨大的工厂,还是一个功能超强的工厂。spring框架的绝大部分功能都是通过该容器实现的。 spring就是使用xml配置文件来实现程序中对象的调用,指定实例间的依赖关系。所谓依赖关系,如果a调用了b的方法,就可以称a依赖于b。
- FileSystemXmlApplicationContext
1.默认为项目工作路径 即项目的根目录 ApplicationContext appCt2 = new FileSystemXmlApplicationContext(“src/main/resources/app.spring.xml”);
2.前缀classpath:表示的是项目的classpath下相对路径 ApplicationContext appCt2 = new FileSystemXmlApplicationContext(“classpath:app.spring.xml”);
3.使用前缀file 表示的是文件的绝对路径 ApplicationContext appCt2 = new FileSystemXmlApplicationContext(“file:D:/app.spring.xml”); ApplicationContext appCt2 = new FileSystemXmlApplicationContext(“D:/app.spring.xml”);
4.可以同时加载多个文件 String[] xmlCfg = new String[] { “src/main/resources/base.spring.xml”,”classpath:app.spring.xml”}; ApplicationContext appCt2 = new FileSystemXmlApplicationContext(xmlCfg);
5.使用通配符加载所有符合要求的文件 ApplicationContext appCt2 = new FileSystemXmlApplicationContext(“classpath:*.spring.xml”);
3、servletContext
参考:https://my.oschina.net/u/1398304/blog/261236
Servlet容器在启动一个Web应用时,会为它创建一个servletContext对象。每个web应用有唯一的servletContext对象。同一个web应用的所有servlet对象共享一个serveltContext,servlet对象可以通过它来访问容器中的各种资源。
如果一个参数为整个web应用所用,那么就配置为ServletContext参数,如下所示:
<context-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</context-param>
如果一个参数仅为一个Servlet所用,那么就应该配置为ServletConfig参数,如下所示:
<servlet>
<servlet-name>affice_add</servlet-name>
<servlet-class>servlet.Affice_add</servlet-class>
<init-param>
<param-name>filepath</param-name>
<param-value>/webContent/affice</param-value>
</init-param>
</servlet>
最新文章
- Android studio debug模式获取变量的值
- Selenium2+python自动化3-解决pip使用异常
- iOS开发 multipart 上传多张图片
- eclipse workspace出错而导致启动不了
- nohup.out
- 敏捷开发用户故事系列之十一:CSDN博客用户故事分析
- CentOS 7下安装X Window
- 用DriverStudio开发USB驱动程序
- 【LOJ#2402】[THUPC2017]天天爱射击(整体二分)
- (最完美)小米平板3的USB调试模式在哪里开启的流程
- 【Linux】Jenkins安装(二)
- Django项目中自定义manage命令
- p6spy简介
- EF code first,set composite primary key 复合key问题
- mysql 查看建表语句
- Lodop打印条码二维码的一些设置
- Android手机刘海屏(附工具类)
- ubuntu18.10安装网易云音乐
- java 并查集
- Could not find a version that satisfies.... No matching distribution found for .....
热门文章
- Java 中 Map与JavaBean实体类之间的相互转化
- Cocostudio学习笔记(2) Button + CheckBox
- linux下更改vncserver的密码
- ASP代码审计学习笔记-1.SQL注入
- Python 对目录做遍历
- CentOS5.5环境下布署LVS+keepalived
- List转换为数组Array的方法
- /usr/local/java/jdk1.8.0_11
- java基础---->;多线程之ThreadLocal(七)
- java高级---->;Thread之Condition的使用