springMVC搭建流程:
- 1.导入相关jar包
- 2.在web.xml中配置前端控制器
- 3.springMVC-beans 的配置文件中扫描包中的直接,配置视图解析器 4.在需要springMVC管理的实体上配置相应的注解。
springMVC工作流程:
- 前端发送请求到前端控制器(dispathcherServlet)
- 前端控制器根据URI找到处理器映射器(handleMapping);处理映射器根据URI找到对应的handle(controller),解析requestMapping,如果有拦截器等,统一找到。
- handleMapping将映射结果返回给dispathcherServlet;其根据handle找到对应的处理器适配器(handleAdapter)
- handleAdapter执行拦截,数据校验,及controller中对应的操作,执行完毕后会得到视图和模型对象(ModelAndView),并将其返回给dispatcherServlet。
- dispatcherServlet将ModelAndView交给视图解析器(ViewResolver),视图解析器根据view找到对应视图,并将Model的数据渲染到界面上。
- ViewResolver将结果反会给dispatcherServlet,然后再返回给浏览器。
常用的注解:
@Controller | 在spring IOC容器中注册该实体 且表明该实体是后端控制器 |
@RequestMapping | 设置请求映射: 1.修饰类:等同于命名空间 2.修饰方法 相当于一个请求路径 |
@Pathvariable | 获取请求路径中占位符的值 |
@RequestParam | 获取请求参数。如果方法的参数名 和前端的参数名一致,可不写。 |
@SessionAttributes | 将Model中的属性存放在session中 |
@CookieValue | 后去前端cookie中的值 |
@Scope | 设置当前对象的作用范围 |
@Service | 表明是service层实体 |
@Repository | 表明是dao层注解 |
@Resource | 按照id进行依赖注入 |
@Autowired | 按照type进行依赖注入。 配合Qualifier则可按照id注入 |
@Validated | 表名该数据需要校验。被校验的参数列表中必须 有一个BindingResult,用于存放校验相关的信息 |
@ExceptionHandler | 异常处理,只能处理当前类的异常。 |
@Component | 通用注解,用于需要在IOC注册的类 |
@RequestBody | 处理前端提交过来的json数据 |
@responseBody | 返回给前端json数据 |
URL的形式:
- 1.占位符形式:/aa/{name},name就是占位符,前端可以为name赋值
- 2.Ant风格:?代表一个任意字符,*代表0个或多个字符,**0个或者多个目录。
返回给前端数据的方式:
- ModelAndView。将要返回给前端的视图逻辑名称和数据set到ModelAndView对象中,然后作为方法的返回值返回。
- ModelMap。将数据加入参数列表的ModelMap对象中,方法的返回值为视图的逻辑名称。
- Map。将参数加入参数列表的Map对象中,方法的返回值为视图的逻辑名称。
- Model。将参数加入参数列表的Model对象中,方法的返回值为视图的逻辑名称。
- 所有的数据都是在request域中,前端界面获取都是从该区域获取到所有的数据
将参数绑定到POJO中:
- 将方法的参数指定为POJO。
- 前端的参数名必须和POJO对象中的成员变量名一致
springMVC高级部分:Ajax请求,数据校验,异常处理,国际化,拦截器,文件上传下载。