您当前的位置: 首页 >  spring

Dongguo丶

暂无认证

  • 0浏览

    0关注

    472博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SpringMVC

Dongguo丶 发布时间:2017-12-01 14:37:22 ,浏览量:0

什么是springmvc

springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。springmvc是一个基于mvc的web框架。

 springmvc框架

第一步:发起请求到前端控制器(DispatcherServlet)

第二步:前端控制器请求HandlerMapping查找 Handler

         可以根据xml配置、注解进行查找

第三步:处理器映射器HandlerMapping向前端控制器返回Handler

第四步:前端控制器调用处理器适配器去执行Handler

第五步:处理器适配器去执行Handler

第六步:Handler执行完成给适配器返回ModelAndView

第七步:处理器适配器向前端控制器返回ModelAndView

         ModelAndView是springmvc框架的一个底层对象,包括 Model和view

第八步:前端控制器请求视图解析器去进行视图解析

         根据逻辑视图名解析成真正的视图(jsp)

第九步:视图解析器向前端控制器返回View

第十步:前端控制器进行视图渲染

         视图渲染将模型数据(在ModelAndView对象中)填充到request域

第十一步:前端控制器向用户响应结果

Springmvc的使用

web.xml中配置前端控制器

springmvc.xml中配置处理器适配器、处理器映射器、处理器配置(Controller)、视图解析器。

配置前端控制器

在web.xml中配置springmvc前端控制器。

load-on-startup:表示servlet随服务启动;

servlet拦截方式解析:

1、拦截固定后缀的url,比如设置为 *.do、*.action,例如:/user/add.action

此方法最简单,不会导致静态资源(jpg,js,css)被拦截。

 

2、拦截所有,设置为/,例如:/user/add  /user/add.action

此方法可以实现REST风格的url,很多互联网类型的应用使用这种方式。

但是此方法会导致静态文件(jpg,js,css)被拦截后不能正常显示。需要特殊处理。

 

3、 拦截所有,设置为/*,此设置方法错误,因为请求到Action,当action转到jsp时再次被拦截,提示不能根据jsp路径mapping成功。

配置处理器适配器、处理器映射器、处理器配置(Controller)、视图解析器

此处配置的是非注解的处理器适配器和处理器映射器

[html] view plain copy
print ?
  1.   
  2.      
  3.      
  4.      
  5.      
  6.      
  7.      
  8.      
  9.      
  10.      
  11.      
 
    

    
    

    
    

    
    

处理器开发,也就是Controller需要实现Controller接口才能由org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter适配器执行。

配置注解处理器映射器和处理器适配器

注:注解的映射器和注解的适配器必须配对使用

springmvc.xml的配置

[html] view plain copy
print ?
  1.       
  2.      –>  
  3.       
  4.      –>  
  5.   
  6.       
  7.     
  8.         比如json转换解析器就默认加载了,如果使用mvc:annotation-driven不用配置上边的RequestMappingHandlerMapping和   
  9.         RequestMappingHandlerAdapter 实际开发时使用mvc:annotation-driven –>  
  10.       
  11.   
  12.   
  13.       
  14.       
  15.   
  16.       
  17.       
  18.           
  19.           
  20.           
  21.           
  22.       
  23.   
  24.       
  25.      –>  
  26.   
  27.       
  28.       
  29.       
  30.      –>  
    
    
    
    

    
    
    


    
    

    
    
        
        
        
        
    

    
    

    
    
    
    

  配置了视图解析器的前缀和后缀,在Handler中可以不用指定前缀和后缀:

注解Handler的开发:

   1、需要在类上面添加@Controller,说明这个类是一个控制器;

   2、@RequestMapping(“/queryItems”)用来定义访问Url,可以为整个类或者方法定义;

   3、可以在方法的参数上添加@PathVariable(“pageIndex”)注解,表示方法参数绑定到地址URL的模板。即,获取RequestMapping中的参数,如果RequestMapping中没有参数,则使用PathVariable将会报错。

   4、@ModelAttribute:应用于方法参数,参数可以在页面直接获取,相当于request.setAttribute。

   5、@ResponseBody:放在方法上,表示返回类型将会直接作为HTTP响应字节流输出。出去json格式的数据时,经常使用。和@ResponseBody类似的注解,@RequestBody,指定方法参数应该被绑定到HTTP请求Body上。

   6、@RequestParam:应用于方法参数,如果jsp传递的参数和方法中使用的参数不一致,可以使用此参数。

   7、@SessionAttributes:session管理,Spring 允许我们有选择地指定 ModelMap 中的哪些属性需要转存到 session 中,以便下一个请求属对应的 ModelMap 的属性列表中还能访问到这些属性,只能声明在类上,不能声明在方法上。

   8、@CookieValue: 获取cookie信息

   9、@RequestHeader: 获取请求的头部信息

关注
打赏
1638062488
查看更多评论
立即登录/注册

微信扫码登录

0.0382s