SSM框架01--springmvc
来源:互联网 发布:python 幂律分布 编辑:程序博客网 时间:2024/06/05 05:40
springmvc的原理
springmvc的结构组成
一个中心
前端控制器 DispatcherServlet 负责请求的转发和响应的提交
三大组件
处理器映射器 HandlerMapping 负责根据url查找Handler
处理器适配器 HandlerAdapter 负责执行Handler
视图解析器 View resolver 负责解析view
经典MVC结构原理
以SSH框架为例
springmvc框架原理
springmvc的执行流程
1. 用户发起请求,请求到DispatcherServlet前端控制器
DispatcherServlet(中央调度),负责request和response,调用处理器映射器查找Handler,调用处理器适配器执行Handler,有了前端控制器降低了各各组件之间的耦合性,系统扩展性提高。
2. DispatcherServlet前端控制器请求处理器映射器HandlerMapping查找Handler
根据用户请求的url,根据一定的规则去查找(比如:xml配置,注解)
3. HandlerMapping处理器映射器将Handler返回给前端控制器
4. DispatcherServlet前端控制器调用HandlerAdapter处理器适配器
5. HandlerAdapter处理器适配器执行Handler
6. Handler执行完成,返回ModelAndView
ModelAndView是springmvc的封装对象,将model和view封装在一起。
7. HandlerAdapter处理器适配器将ModelAndView返回给前端控制器
8. 前端控制器调用视图解析器,进行视图解析,解析完成给前端控制器返回View
View是springmvc的封装对象,是一个接口,实现类包括jspview,pdfview……
9. 前端控制器调用view进行视图渲染,将模型数据填充到view(将model数据填充到request)响应给用户
10、前端控制器响应给用户
springmvc开发应用
配置式的springmvc开发
1. 在web.xml文件中配置springmvc前端控制器
contextConfigLocation指定 springmvc的全局配置文件 如果 contextConfigLocation不指定,默认找配置文件名称:servlet的name+"-servlet.xml"
1. 在springmvc.xml文件中配置三大组件
配置处理器映射器
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
配置处理器适配器
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
配置视图解析器
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
2. 编写Handler
由于使用SimpleControllerHandlerAdapter适配器,要求编写的Handler实现Controller接口。
3. 编写jsp页面
4. 配置Handler
由于使用处理器映射器BeanNameUrlHandlerMapping,要求在spring的容器配置Handler,Handler的name就是url。
<bean id="hello_controller"name="/helloworld.action" class="cn.itcast.springmvc.Hello"/>
配置式开发的注意事项
1. Handler的编写和配置要和映射器,适配器对应
处理器映射器和处理器适配器有多个,Handler的配置和编写根据处理器映射器和处理器适配器进行
2. 逻辑视图名
调用:modelAndView.setViewName指定逻辑视图名,如果这里指定jsp的完整路径也支持
在springmvc.xml中修改视图解析器
修改action
注解式的spingmvc开发
1. 在web.xml文件中配置springmvc前端控制器
2. 配置注解式springmvc三大组件
<!--注解映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!--注解适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
3. 编写Handler
//修改学生信息页面
// @RequestMapping指定url
@RequestMapping("/editstudent")
public String editstudent(Model model)throws Exception {
//将学生信息的显示在页面
//使用静态数据
Student student = new Student();
student.setName("张三");
student.setAge(32);
student.setBirthday(new Date());
//需要将学生信息传到页面
model.addAttribute("student", student);
//返回逻辑视图名
return"student/editstudent";
}
//学生信息修改提交
@RequestMapping("/editstudentsubmit")
public String editstudentsubmit(Student student)throws Exception{
System.out.println(student);
return"success";
}
一个url对应action的一个方法
4. 使用注解方式将action类配置到spring容器中
1. 在spring文件中配置
2. 给acton类添加注解
Struts2与springmvc的不同
1. springmvc的入口是servlet,struts是filter
2. springmvc是基于方法开发,struts是基于类开发
action类中,一个url对应一个方法,对Handler对象,springmvc框架将一个方法封装到Handler中(只有一个method)。
Struts对action类进行实例化。
Springmvc中的action可以使用单例也可以使用多例,建议使用单例(对相同的方法只new一个)。
Struts不能用单例,因为struts传递参数是通过成员变量。
Springmvc通过形参接收参数好处:更符合软件开发的思想,和service接口类似。
3. Struts采用值栈存储请求和响应的数据,通过OGNL存取数据, springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器默认使用jstl。
Springmvc的参数解析过程
1. 页面请求数据:key/value
2. 参数解析器:
Spring提供了很多参数解析器,将key/value的数据解析成形参,通过反射解析method中的参数(类型、名称),按照类型和名称规则解析形参
3. 属性编辑器:
将key/value转换成pojo中的属性
4. Action方法的形参
Springmvc开发常用注解
1. @controller
标识该类为控制器类,@controller、@service、@repository分别对应了web应用三层架构的组件即控制器、服务接口、数据访问接口
2. @RequestMapping
进行url映射,一个方法对应一个url,定义方法:在action方法上定义requestMapping
开发中经常使用根路径+子路径的方法管理url
例:
定义根路径:
在类名上边定义requestMapping
@RequestMapping("/stu")
定义子路径:
在方法上边定义requestMapping
@RequestMapping("/querystudent")
最终访问路径:根路径+子路径:/stu/ querystudent.action
- SSM框架01--springmvc
- SSM框架-SpringMVC篇
- SSM框架---SpringMVC
- 【SSM-SpringMVC框架】SpringMVC入门
- springmvc SSM后台框架源码
- SSM框架:SpringMVC + Spring + MyBatis
- 【SSM-SpringMVC框架】SpringMVC入门小程序
- SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
- SSM框架(Spring SpringMvc Mybatis)流程
- Spring,SpringMVC,Mybatis (SSM)框架的搭建
- SpringMVC+Mybatis框架整合源码 SSM
- ssm框架学习---springmvc和mybatis整合
- ssm(spring+springMVC+Mybatis)框架集成Mongodb
- SSM框架集成——SpringMVC
- springMVC框架开发笔记 lesson4 SSM实例
- SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
- springMVC框架--SSM整合开发(二)
- Spring+SpringMVC+MyBatis(SSM)框架整合
- LeetCode 131. Palindrome Partitioning
- http响应码
- 编写一个应用程序实现文件的复制。使用格式:java Copy 源文件目标文件,功能是将源文件的内容复制到目标文件。
- 关于a=c++,b++和a=(c++,b++)区别
- 《TCP/IP详解 卷1:协议》 读书笔记 第十一章 UDP:用户数据报协议
- SSM框架01--springmvc
- JVM调优
- LeetCode 79. Word Search
- 剑指offer——对称的二叉树
- 启用树莓派3的Uart
- 线程、进程和协程
- 矩阵 若干问题
- 大数据与机器学习中基本概念总结
- #error windows.h already included. MFC apps must not #include <windows.h>