Spring MVC小结

一、初识Spring MVC

初次看到Spring MVC这个IP,不禁想起那月黑风高的一晚,醉里挑灯看剑...咳咳咳,不禁想起Spring和MVC设计模式,经过一番学海遨游,果不其然,Spring为支持Web开发,提供了构建Web应用程序的MVC模块。

位置:Web层

同行:Struts2

二、工作流程

1、客户端发送一个HTTP请求,Web应用服务器接收到这个请求,如果匹配(在web.xml中指定)DispatcherServlet的请求映射路径,Web容器将改请求转交给DispatcherServlet处理。

2、DispatcherServlet接收到这个请求后,将请求的信息以及Handler Mapping的配置找到处理请求的处理器(Handle)。

注:Spring MVC中并没有定义一个Handler接口,实际上任何一个Object都可以成为请求处理器。

3、当DispatcherServlet根据HandlerMapping得到对应当前请求的Handler后,通过HandlerAdapter对Handler进行封装,再以统一的适配器接口调用Handler。

注:HandlerAdapter是Spring MVC的框架级接口,顾名思义,HandlerAdapter是一个适配器,它用统一的接口对各种Handler方法进行调用。

4、处理器完成业务逻辑的处理后将返回一个ModelAndView给DispatcherServlet,ModelAndView包含了视图逻辑名和模型数据信息。

5、ModelAndView中包含的是“逻辑视图名”而非真正的视图对象,DispatcherServlet借由ViewResolver完成逻辑视图名到真实视图对象的解析工作。

6、当得到真实的视图对象View后,DispatcherServlet就使用这个View对象对ModelAndView中的模型数据进行视图渲染。

7、最后响应给客户端。

三、注解

@RequestMapping :蹩脚翻译,请求映射,也就是请求地址映射,有两个参数

1、value:指定请求的实际地址;

2、method: 指定请求的method类型,GET、 PUT、POST、DELETE等

@RequestMapping("/testGet")
@RequestMapping(value = "/testPut/{id}", method = RequestMethod.PUT)
@RequestMapping(value = "/testPost/{id}", method = RequestMethod.POST)
@RequestMapping(value = "/testDelete/{id}", method = RequestMethod.DELETE)

@PathVariable :路径变量?此处敲黑板,这个注解是将请求URL中的变量映射到方法参数上,举个栗子(=.=),请求URL为: http://host:port/project/test/deleteById/id

@RequestMapping(value = "/deleteById/{id}",method = RequestMethod.DELETE)
    public String deleteById(@PathVariable("id") Integer id){
        //......
        return null;
    }

这里要区分一下 @RequestParam

@RequestParam:请求参数

举个栗子(=.=),请求URL为:http://.../test?param1=user&param2=123

@RequestMapping(value = "/test",method = RequestMethod.GET)
    public String testMethod(@RequestParam("param1") String name,@RequestParam("param2") String pwd){
        //......
        return null;
    }

@CookieValue获取Cookie中的值

@SessionAttributes将值放到session中,写在类上面

@ResponseBody:返回某种格式数据(json等)

 

 

猜你喜欢

转载自blog.csdn.net/sinat_41333476/article/details/81148023
今日推荐