SpringMVC的框架:
DispatcherServlet前端控制器
接收请求request进行响应response
调用HandlerMapping处理器映射器,根据url查找Handler(可以通过xml方式、注解方式)
HandlerAdapter处理器适配器:根据要求的特定的规则去执行Handler,编写Handler时需要按照适配器的要求去编写
Handler处理器(后端控制器):需要程序员编写,常用注解的方式开发
Handler处理器执行后的结果是ModelAndView
不管Handler返回啥,Adapter都会把他封装成ModelAndView,具体开发时handler返回方法值类型包括:
ModelAndView、String(逻辑视图名)、void(在Handler的形参中添加request、response,类似于原始的servlet开发方式,注意:可以通过来指定response响应结果的类型,可以实现json数据输出)
视图:
viewresolver视图解析器:根据逻辑视图名,生成真正的视图(在SpringMVC中使用View对象表示)
View视图界面(jsp页面):
jsp页面,仅是数据展示,没有业务逻辑
注解开发:
使用注解方式的处理器映射器和适配器
在实际开发中使用MVC注解驱动标签来代替单独的配置
@controller
必须要加,标识此类是一个Handler处理器
@RequestMapping
必须要加,作用:
1、对url和Handler的方法进行映射
2、可以窄化请求映射,设置Handler的根路径,url就是根路径+子路径
3、可以限制Http请求的方法
映射成功后,SpringMVC会生成一个Handler对象
这个对象中只包含一个所映射成功的Method
注解开发的参数绑定:
将request请求过来的key/value的数据(理解成一个串),通过转换(参数绑定的一部分),将key/value的串转换成形参,然后将转换后的结果传给形参(整个参数绑定的过程)
Spring所支持的参数绑定:
默认支持很多类型:
1、HttpServletRequest、HttpServletResponse、HttpSession、Model/ModelMap(将模型数据填充到request域)
2、支持简单数据类型:整型、字符串、日期,只要保证request请求的参数名和形参名称一致,自动绑定成功
如果request请求的参数名称和形参名称不一致,可以使用@RequestParam(指定request请求的参数名)
@RequestParam加在形参的前边,如果有多个形参,需要用多个@RequestParam
3、支持pojo类型
只要保证页面提交的input名称、或者request提交的参数的名称和pojo中的属性名称一致,会自动将request请求的参数设置到pojo的属性中
注意:形参里面既有简单类型,又有pojo类型,最后绑定参数是互不影响的,各自绑定各自的
4、自定义参数绑定:
日期类型的参数绑定:
定义了一个converter接口的实现类
Converter<S,T>第一个参数是源类型,第二个参数是目标类型
注意:要转换的目标类型,一定是和要接收的pojo的属性的类型一致
将定义的converter实现类注入到处理器适配器中
Spring和Struts的区别:
Spring是面向方法开发(更接近service接口的开发方式),Struts是面向类开发的
SpringMVC可以单例开发,Struts只能是多例开发
SpringMVC入门知识5
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
- 别人问我自闭症是不可能康复的,为什么还要给孩子做康复? 我的回答是:如果不提升认知、理解能力,那么他的情绪行为就会...