SpringMvc学习总结

1.DispatcherServlet的配置,它是核心控制器
注意事项:1.初始化参数指向当前SpringMvc的配置文件的路径
   2.配置当前Servlet映射修改为/
配置application.xml:1.@controller @Service
   2.视图解析器:逻辑视图、物理视图
配置Spring文件:必须与web.xml中DispatcherServlet配置化参数保持一致
注意事项:1.自动扫描的包
   2.配置一个bean:视图解析器将逻辑视图转化为物理视图
   IntervalResourceViewResover
配置控制器:1.任何的javabean都可以作为控制器 @Controller
方法可以转化为请求并做出响应
public String hello(){}
方法的返回值:当前业务完毕后,跳转到web资源("逻辑视图的名称")
SpringMVC中Ant的三种风格:
1.?:匹配文件名中任意一个字符  localhost:8080/SpringMvc/s/antStyle
2.*:比配文件名中任意字符localhost:8080/SpringMvc/sss/antStyle
3.**:匹配多层路径localhost:8080/SpringMvc/sss/aaa/antStyle
REST风格:(资源)表现层状态转化
四个操作动词:1.GET获取资源 2.POST新建资源 3.PUT更新资源 4.DELETE删除资源
HiddenHttpMethodFilter:可以过滤我问所有的请求,并将请求方式分为Get、Post、Delete、Put四种
Get-->就是Get请求方式
Post-->查看是否有一个method的请求方式并且是Delete、Put请求它将细分
         如果没有它就是Post请求
        具体步骤1.

     
     
          批注:将类型改为hidden,name必须为_method value=delete或put
    2.在web.xml中添加过滤器filter,配置HiddenHttpFilter过滤器
   
HiddenMethodHttpFilter
org.springframework.web.filter.HiddenHttpMethodFilter
     

   
HiddenMethodHttpFilter
/*
     

      3.将请求方法改为 RequestMethod.DELETE修改为delete
      @RequestMapping(value="/**/testDelete/{id}",method=RequestMethod.DELETE)
       
    
@RequestParam I.作用将请求参数与控制器中的方法形参进行绑定
   II.使用技巧:1.如果形参与请求参数名字一致可以省略RequestParam的value
    2.如果形参与请求参数名字不一致必须使用@RequestParam(value="请求参数")
3.@RequestParam常用属性:value="请求参数的名称"
   Require:是否为必须的
@RequestHeader:作用获取报头信息
         具体用法:@RequestHeader(value="Accept")
@CookieValue:作用cookie就像是积分卡,可以保存积分,商品就是我们的信息,超市的系统就像服务器后台,http协议就是交易的过程。
   具体用法:testCookieValue(@CookieValue(value="JSESSIONID") String Id)
使用Servlet API作为入参:HttpServletRequest:testServletAPI(HttpServletRequest request)
HttpServletResponse
HttpSession
InputStream
OutPutStream
Reader
Writer
Out:
Locale
ModelAndView:既包含视图信息也包含模型数据信息
  添加数据模型的方法:1.ModelAndView addObject(String atrributeName,Object atrributeValue)
    2.ModelAndView addAllObject(Map modelMap)
设置视图:1.void setView(View view)
   2.void setNameView(String viewName)
在方法的内部,创建ModelAndView
注意:ModelAndView 数据模型的值放置在Request里
Map、Model、ModelMap处理模型数据:
Map.put(String,Object);
Modle.addArtrribute(String,Object);
ModelMap.addAtrribute(String,Object);

@SessionAtrributes(value={""})
I.要求放如的值必须在数据模型里(在Request请求域中是有效的)
II.属性标注:1)通过数据模型中的key值完成session中的数据共享的设置
  value里的值是String[]
  2.value={"a","b"}
  2)可以通过模型数据中的类型,完成共享数据的设置
---------------------------------------------------------
@ModelAtrribute:主要作用是对象合并
I.对象合并具体流程:
1.再调用核心业务前,先从数据库中查出指定数据并封装到User对象中
2.原始User对象的引用,使用方法的入参即可
3.将用户输入的请求参数的值映射到方法作为参数
    II. 1.方法:在业务方法执行之前,被调用的方法
      I.修饰无返回值的方法
      II.修饰有返回值的方法
    2.业务方法的入参
    III、业务方法的入参,告知方法入参进行与前端控件绑定之前,需要获取相对应的key值
视图解析流程:
1.视图页面的渲染。View视图来做render
2.跳转到目标视图,使用请求转发。
3.遍历视图解析器的集合,将逻辑视图转化为物理视图

SpringMvc当中进行视图解析器的配置
protected View resolverViewName(String viewName,Map
model,locale,locale,HttpRequest request){
 
for(ViewResolver viewResolver:this.viewResolvers){
View view=viewResolver.resolverViewName(viewName,locale);
if(view!=null){
return view;
}

return null;

}

  -------------------------------------------------------------------
  国际化:
  1.写对应的资源文件以.properties结尾(key=value)
  2,配置文件名字要求:资源文件名称_语言编码_国家编码.properties
  举例:steven_zh_CN.properties 中文编码
  steven_en_US.properties 英文编码
  3.1)国际化资源
    2)告知SpringMvc所使用的配置文件
   

 

  注意事项:id必须为messageSource,通过id注入而不是通过类型注入

4.JSTL
1)Core:
2)ftm:格式化标签message


如何给视图直接定义一个映射

如果给某一个视图配置映射信息,其他的映射信息全部无效,解决方案

  -------------------------------------------------------
  自定义视图
  I.视图类型:实现View接口
  1).ContentType:告知SpringContentType的类型
  2).页面渲染( render view )
  II.视图加载到SpringMvc容器中去
  III.写出对应的视图解析器:BeanNameResolver
 

value值越大优先级越小,InternalResourceViewResolver value是整数的最大值



path:是首字母小写的类名  view-name是对应的显示页面
  注解:
  @Component //只是一个原注解,它可以标注其他注解,被标记的注解起到相同或类似的作用
  @Controller对应控制层的Bean,也就是Action
  @Service对应的是业务层Bean
  @Repository对应数据访问层Bean

   
      
  
   
    搜索类快捷键:Ctrl+Shift+T





   

你可能感兴趣的:(SpringMvc学习总结)