Spring MVC 相关知识点

1、 Spring Mvc
    1、 基础知识  spring mvc 是spring框架的一个模块,springmvc 和spring 无需通过中间整合层进行整合
      spring mvc是一个基于mvc 的web框架
spring mvc 框架原理解析 :1、浏览器发出request 请求 到前端控制器(DispatcherServlet)接口用户请求,
2、前端控制器调用处理器映射器(Handlermapping)对请求的url 进行解析,找到对应的handler(又叫controller)
处理器映射器(Handlermapping) 执行后返回一个执行连(HandlerExecution)
3、处理器映射器(HandlerMapping)向前端控制器返回Handler
4、前端控制器调用 处理器适配器(HandlerAdapter) 去执行Handler
5、处理器适配器去执行Handler
6、 handler 执行完 向处理器适配器返回ModelAndView 
7、处理器适配器向前段控制器返回 ModelAndView (他是spring mvc 的一个底层对象)
8、前端控制器请求视图解析器去进行视图解析 (根据逻辑视图名解析成真正的视图(jsp))
9、视图解析器向前端控制器放回view
10、前端控制器进行视图渲染(视图渲染将模型数据在ModelAndView对象中,)填充到request域中
11、前端控制器向用户响应结果
组件讲解: 1、前端控制器,DispatherServlet 作用是接受请求,响应结果,相当于转发 (不需要程序员开发)
   2、处理器映射器HandlerMapping 作用根据请求的url 查找Hadnler (不需要程序员开发)
   3、处理器handler (需要程序员开发)注意在编写Handler是要按照HandlerAdapter的要求去做,这样的适配器才可以去正确Handler

           4、处理器适配器HandlerAdapter 作用根据特定的规则(HandlerAdapther 要求的规则,)去执行Handler

   5、视图解析器,作用是将视图进行解析,根据逻辑视图名解析成真正的视图(view)
   6、视图 view 是一个接口,实现类支持不同的view的类型(jsp freemaker pdf)


  <!-- 配置handler的bean -->
      
      <bean name="/quertItem.action"  class="com.springmvc.controller.ItemController"/>
      <!-- 处理器适配器,所有的处理器适配器都实现HandlerAdapter接口,会根据实现不同的接口的处理器适配器 执行不同的handler
       -->
      <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
      
      <!-- 
      处理器映射器 将bean的name作为url进行查找,是那个bean的name ?需要配置handler的bean 并且指定name属性 name值是url
       -->
      <bean class="Open Declaration org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<!-- 配置视图解析器
解析jsp视图 默认解析的是jstl 标签
-->
  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>



在spring 3.1之前 用org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping 注解映射器
在spring 3.1之后 用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping 注解映射器




在spring 3.1之前 用org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter 注解适配器
在spring 3.1之后 用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter注解适配器


在注解中,handler 不需要实现任何借口,直接编写一个handler 类,用@Controller修饰这个类 表示这是一个handler类
@RequestMapping("queryItem") 修饰这个handler类中的方法,@RequestMapping实现对queryItems方法和url 进行映射,


一个方法对应一个url

对于注解的Handler 在spring文件中进行配置 也可以使用组件扫描
<bean class="注解handler类的位置" /> <context:compent-scan  base-package="controller所在的包名"></context:compent-scan>


请求过程讲解:第一步调用前端控制器接受请求,调用doDiapath()方法,2、前端控制器调用处理器映射器查找handler 得到handler
3、调用处理器适配器执行handler 得到执行结果modelandview  4、视图渲染 将model数据填充到request域中





spring mvc 和 mybatis 整合




Spring MVC 高级知识

  SPRING 框架原理
DispatherServlet 前端控制器 接受request 进行 response
HandlerMapping 处理器映射器 根据特定的规则去执行handler 编写 handler 时候需要按照handlerAdapter的要求去编写
handler 处理器(后端控制器) 要求程序猿去编写, 常用的是注解的形式进行开发,
handler处理器执行后返回的结果是modelandView  具体开发时handler 返回的是ModelAndView  string(逻辑视图名)
void  (通过handler 形参中添加request response 类似原始 servlet 开发,注意 可以通过指定的response 响应的结果类型是json 数据)
View  resolver 视图解析器,根据逻辑视图名生成真正的视图名,(在spring mvc中使用view 对象表示)

注解开发 试用注解开发方式的映射器和适配器  在实际开发过程中 我们使用<mvc :annotation-driven  />


@Controller 注解必须使用,作用是标识这个类是属于一个Handler 处理器
@RequestMapping 注解必须要用,
1、对url 和Handler 的方法进行映射,
  2、可以窄化请求映射,是指Handler的跟路径,url就是根路径 + 子路径的请求方式
3、可以限制http的请求方式
映射成功后,springmvc框架生成一个Hadnler对象,对象中只包含一个映射成功的method

注解中的参数绑定
将request 中的请求数据 大部分是 key/value 形式的,通过转化(参数绑定的一部分,) 将key/value 串转化成形参
将转换后的结果传递给映射方法中的形参
springmvc 中所支持的参数绑定,
1、默认支持很多类型的参数 httpservlerequest  response session model /modelmap(将模型数据最终填充到request域)
2、支持简单的数据类型, 整形,字符串,日期行 只要满足request 请求参数的名称和形参中参数的名称保持一致,自动完成绑定
如果请求的参数名称和形参不一致  可以使用@requestParam 注解 (作用是指定request请求的参数名 和形参中参数名(不一致)进行绑定)
加在形参的前面
3、支持pojo 的类型
只要保证request提交的参数名称 和pojo中的属性名称一致,会自动将请求的参数绑定到pojo的属性中
注意:形参中既有pojo类型 又有简单类型,他们之间互相不影响,各种绑定
4、自定义参数绑定
如 日期类型的绑定自定义
定义的Converter<源类型,目标类型> 接口的实现类 Converter(String,Date)表示将请求的日期串转换成java中的日期类型
注意:要转换的目标类型一定要和接受参数绑定的pojo中的属性类型一致
最后将定义的converter的实现类注入到处理器适配器中。
















spring mvc是面向方法开发的 struts2 是面向类进行开发的
springmvc 是可以单例开发的, struts 只能多例开发的








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值