SpringMVC
2021-05-13 17:31:29 0 举报
AI智能生成
SpringMVC
作者其他创作
大纲/内容
概述
SpringMVC做Web开发的框架,实际是spring框架中的一个模块
SpringMVC的使用就是基于spring,容器的概念,springMVC会创建容器,WebApplicationContext,spring作为容器是创建和管理对象的,
使用@Controller创建控制对象
使用@Controller创建控制对象
三层和框架的对应
SpringMVC---界面层,接收用户请求,显示处理结果
Spring---业务层,处理业务逻辑的,Spring创建Service,Dao工具类对象
MyBatis---持久层,访问数据库的,对数据增删改查
SpringMVC底层访问依然是Servlet--DispatcherServlet(中央调度器)
1、创建WebAplicationContext对象,读取配置文件,进而创建控制器对象
2、它是一个Servlet,要接收用户的请求,显示处理结果
SpringMVC处理Web请求
注解
1、@Controller:创建控制器类的对象,接收请求,处理请求
2、@RequestMapping:请求映射,把请求绑定到一个方法,让这个方法处理请求
1、Value:请求的uri地址,唯一值
2、method:请求的方式,使用RequestMethod类的枚举值,例如get请求,RequestMethod.GET
接收用户提交的参数
1.HttpServletRequest, HttpServletResponse.HttpSession可以直接出现在处理器方法的参数位置
2.逐个接收参数,处理器方法的形参名和请求中参数名-样。按名称对应赋值
3.解决请求中post方式有中文乱码,使用过滤器解决问题。CharacterEncodingFilter
<!--注册声明过滤器,解决post请求乱码问题-->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!--设置项目中使用的字符编码-->
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<!--强制请求对象(HttpServeltRequest)使用encoding编码的值-->
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<!--强制应答对象(HttpServeltResponse)使用encoding编码的值-->
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<!--
/*:强制所有的请求先通过过滤器处理
-->
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!--设置项目中使用的字符编码-->
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<!--强制请求对象(HttpServeltRequest)使用encoding编码的值-->
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<!--强制应答对象(HttpServeltResponse)使用encoding编码的值-->
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<!--
/*:强制所有的请求先通过过滤器处理
-->
<url-pattern>/*</url-pattern>
</filter-mapping>
4.逐个接收中,请求中参数名和形参名不一样,使用@RequestParam解决问题
5.使用java对象接收请求的参数,要求请求中参数名和属性名一致
6.springmvc处理器方法的形参还可以是List,Map等集合类型,数组都可以
处理器方法的返回值:表示请求的处理结果
1.ModelAndView,表示数据和视图,对视图进行forward
2.String:表示视图的,可以是逻辑名称,完整视图路径,对视图进行forward
3.void:返回值本身不能表示数据和视图,可以响应ajax请求
4.对象Object:表示数据的,相应ajax请求
5.springmvc处理器方法返回对象,转为ison响应ajax步骤
1.加入处理java到jison转换的工具库: jackson
2.在springmvc配置文件加入注解驱动<mvc:annotation-driven>
3.在处理器方法的上面加入@ResponseBody
url-pattern
设置中央调度器的url-pattern是“/”:导致静态资源访问都是404,动态代理可以正常访问
第一种解决静态资源访问的方案:在springmvc的配置文件中:1)<mvc:default-servelt-handler>
2)<mvc:annotation-driven>
2)<mvc:annotation-driven>
原理:给程序内存中增加一个处理器对象 , DefaultHttpReqeustHandler.让这个对象处理静态资源的访问。
第二种处理静态资源
使用的框架中的mvc:resources标签,有框架自己处理静态资源访问
ssm整合开发
ssm整合有两个容器,1)springmvc容器
2)spring的容器
2)spring的容器
1.springmvc容器:管理controller,视图等对象
2.spring容器:service,dao对象
创建容器的方式
1.创建springmvc容器对象:使用的中央调度器DispatcherServlet
2.创建spring容器对象,使用监听器ContextLoaderListener
配置文件
1.spring配置文件
2.springmvc配置文件
3.mybatis配置文件
4.数据库的属性配置文件
核心技术
转发和重定向
转发:forward
重定向:redirect
特点:都不和视图解析器一同工作,就当项目中没有视图解析器
0 条评论
下一页