01-Spring集成web环境-基本三层架构环境搭建
web层如何调用的service层?
02-Spring集成web环境-ContextLoaderListener监听器的分析(了解)
ApplicationContext容器应该在什么时候初始化?
项目一启动就应该初始化
为什么要把ApplicationContext放在一个监听器中初始化?
只需要执行一次,创建一个spring容器即可,把容器放到ServletContext这个最大的域中,其他地方要使用,从域中拿即可;
***************************************
ServletContextListener:
监听ServletContext对象的创建与销毁:
ServletContext对象代表整个项目,所以也可说它在监听项目的启动与关闭;
contextIitialized():项目启动时会调用
contextDestoryed():项目关闭前调用
使用:
1.自定义类,实现 接口,重写方法
2.在web.xml中配置 <listener>自定义类的全路径名称</listener>
03-Spring集成web环境-自定义ContextLoaderListener1(了解)
如何配置的listener?
04-Spring集成web环境-自定义ContextLoaderListener2(了解)
为什么要把spring配置文件的名字配置到web.xml中?
提高程序的灵活性
为什么把容器对象的名字通过工具类的方式隐藏起来?
提高程序的灵活性
05-Spring集成web环境-Spring集成web环境代码实现(掌握)
ContextLoaderListener监听器是谁提供的?
WebApplicationContextUtils工具类是谁提供的?
*********************************************
1.导入spring整合到web层的坐标:spring-web
2.在web.xml中进行配置:
2.1配置全局参数;
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
2.2配置监听器:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3.可以在web层的servlet中,从域中就可以拿到spring容器;
06-SpringMVC简介-SpringMVC概述
什么是springmvc,有什么用?
springMVC是一个轻量级的web层框架,对web层的共性行为进行了封装,简化开发;
不同的Servlet,有什么共有行为?有什么特有行为?
共性行为:
接收请求参数;
响应数据;
特性行为:
调用service
使用springmvc,程序员关注的是共有行为还是特有行为?
特有!
**********************************************
/* > *.do > /
1.访问路径:
/ :
如果servlet的访问路径配置为/,那么会拦截静态资源(拦截其他的请求),但是不拦截jsp文件
*.jsp(*.do):
如果servlet的访问路径配置为*.do,那么不会拦截jsp和静态资源,但是会拦截xxx.do这种访问路径
/* :
如果servlet的访问路径配置为/*,那么会拦截jsp、静态资源(html、图片、js、css、字体)
2.反射问题:
通过反射执行Controller类的方法;
总结:
我们在开发中,就可以把一个servlet的路径配置为 /,目的拦截到请求,得到访问的资源,通过反射执行对应对象的对应方法;
07-SpringMVC简介-SpringMVC的开发步骤
1.导入spring-mvc坐标;
2.配置spring-mvc提供的servlet
3.定义控制器类
4.在控制器上完成注解配置
5.编写spring-mvc配置文件,开启注解扫描
6.测试
08-SpringMVC简介-SpringMVC快速入门代码实现
web.xml中配置前端控制器servlet时,拦截路径怎么配?
/:静态资源以及其他请求都会拦截,但是不拦截jsp文件;
spring-mvc配置文件怎么加载的?
在web.xml配置文件中配置核心前端控制器时,配置初始化参数:
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
@RequestMapping配置的是什么?
某个方法的访问路径;
控制器中方法的返回值写的是什么?
写的是视图的名称;
09-SpringMVC简介-快速入门的流程和小结
10-SpringMVC组件解析-SpringMVC执行流程(了解)
前端控制器:
它是springmvc的入口,并且它不干啥活,只是调度,调度其他的组件完成功能;
处理器映射器:
它会根据一个访问路径,找到一些处理器;
1.在处理器执行之前做一些准备工作;
例如把请求参数封装到一个实体对象中;
2.在处理执行之后,做一些善后工作;
例如,把处理器执行的结果转换成json字符串;
处理器(程序员最关注的东西):
真正干活的!!!
模型和视图:
封装数据和视图;
视图解析器:
解析数据,并把数据交给视图;
11-SpringMVC组件解析-SpringMVC注解解析
@RequestMapping可以在哪里使用?
类和方法上都可以
method属性?
指定请求的方式
params属性?
指定访问时必须携带的参数;
@RequestMapping 作用:用于建立请求 URL 和处理请求方法之间的对应关系
位置:
类上,请求URL 的第一级访问目录。此处不写的话,就相当于应用的根目录
方法上,请求 URL 的第二级访问目录,与类上的使用@ReqquestMapping标注的一级目录一起组成访问虚拟路径
属性:
value:用于指定请求的URL。它和path属性的作用是一样的
method:用于指定请求的方式
params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一 样
例如:
params = {“accountName”},表示请求参数必须有accountName
params = {“moeny!100”},表示请求参数中money不能是100
12-SpringMVC组件解析-SpringMVC组件扫描
<context:include-filter type=“annotaion” expression=“注解路径名称”></context:include-filter>
<context:exclude-filter type="?" expression="?"></context:exclude-filter>
13-SpringMVC组件解析-SpringMVC的XML配置解析(资源解析器)
默认情况下时请求转发:
如何完成请求转发?
forward:资源路径
如何完成重定向?
redirect:资源路径
配置文件中如何配置视图解析器
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- /jsp/success.jsp -->
<property name="prefix" value="前缀"></property>
<property name="suffix" value=".后缀"></property>
</bean>
************************
如果Controller中的方法返回的视图字符串中包含 forward: 或者 redirect: 字样,那么将不走自己配置的视图解析器
14-SpringMVC组件解析