SpringMVC笔记

首先了解下SpringMVC是什么

1.SpringMVC是一种思想,也是当前最优秀的MVC框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高。Spring 3.0更加完善,实现了对Struts 2的超越。现在越来越多的开发团队选择了Spring MVC。

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

简单来说:分层,解耦,简化开发

2.Spring3 MVC的优点:

Spring3 MVC使用简单,学习成本低。学习难度小于Struts2,Struts2用不上的多余功能太多。呵呵,当然这不是决定因素。

Spring3 MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序(指MVC部分)

Spring3 MVC的灵活是你无法想像的,Spring框架的扩展性有口皆碑,Spring3 MVC当然也不会落后,不会因使用了MVC框架而感到有任何的限制。

核心原理

1、      用户发送请求给服务器。url:user

2、      服务器收到请求。发现Dispatchservlet可以处理。于是调用DispatchServlet。

3、      DispatchServlet内部,通过HandleMapping检查这个url有没有对应的Controller。如果有,则调用Controller。

4、     Control开始执行

5、      Controller执行完毕后,如果返回字符串,则ViewResolver将字符串转化成相应的视图对象;如果返回ModelAndView对象,该对象本身就包含了视图对象信息。

6、      DispatchServlet将执视图对象中的数据,输出给服务器。

7、      服务器将数据输出给客户端


一些注解的意思

@Controller 通常在一个类的上面,表示这是一个控制器,让springmvc的配置文件可以扫描到控制器。

@RequestMapping("test")  是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。/*为了做一个标识,和url做匹配的,多个控制器时可以一边区分*/

@PathVariable 获取url中的参数(form表单中action="/HelloWorld/findUser/aa" )

@RequestParam获取form表单input里面的值

@ResponseBody返回的不是页面,而是json格式,或者是字符串格式,对象,xml等等

@ModelAttribute  的三种用法:

1、 放在没有返回值的方法上,会优先执行此方法,会与所有方法前调用

2、用于有返回值的方法时,会与所有方法前调用,会自动把传进来的参数放进model,以return的值为value,以返回值类型小写的字符串为key存到model(没有自定义的情况),可以自定义,@ModelAttribute("name"),则key就是name*/

SpringMVC笔记_第1张图片

3、当RequestMapping修饰参数时,作用是从model里面获取到value对应名字的key的值

SpringMVC笔记_第2张图片

@SessionAttributes 一个值:@SessionAttributes("name"),当有两个值时:@SessionAttributes(value = {"name","name"})   把model中的值放到SessionAttributes中。

你可能感兴趣的:(SpringMVC笔记)