SpringMVC基础
概述
SpringMVC是一个web层/表现层的框架,也叫MVC框架
它和Servlet的作用是一样的
SpringMVC是Spring中的一个模块,实现了MVC结构,便于简单,快速的开发MVC结构的Web程序,可以与Spring无缝集成
业务控制器的三种实现
第一种:实现Controller接口
1 | package com.ifueen.controller; |
第二种:实现HttpRequestHandler接口
1 | public class Controller02 implements HttpRequestHandler{ |
第三种:普通类加注解(常用)
1 | package com.ifueen.controller; |
📣SpringMVC中的注解
Spring不仅支持xml配置,也支持注解配置,使用注解配置会提高开发效率
SpringMVC中控制器建议使用注解方式,是官方推荐的,外面公司也是使用此方式
实例化bean的注解
控制层注解:@Controller
业务层注解@Service
持久层注解@Repository
通用注解@Component
注意:这些注解其实是通用的,但是为了更好地区分层级关系,所以每一层都用相对应的注解,如果不知道属于哪一层,则可以用通用注解
控制器的常用操作
处理中文乱码的过滤器
由Spring提供,只需去配置一下即可
接收请求参数
通过req对象(原生的方式)
通过形参(常用)
通过对象获取(常用)
通过@PathVariable获取
1 | /** |
向页面传值
通过req对象(原生方式)
通过Model对象(常用)
通过ModelAndView对象
1 | /** |
重定向和转发
转发
SpringMVC默认转发
显示的转发方式,不会经过视图解析器
重定向
return “redirect:xx.jsp”不会经过视图解析器
1 | /** |
视图解析器
通过处控制器返回的数据
如果配置了视图解析器,返回的字符串和ModelAndView会经过视图解析器
1 | /** |
SpringMVC返回Json对象
使用@ResponseBody注解,不会经过视图解析器
JSON(JavaScript Object Notation:JS对象简谱)是一种轻量级的数据格式
这种格式的数据可以用来在前后台之间做数据传递
Json表示对象:{“name”:”tom”,”age”:18}
Json表示一个集合:[{“name”:”tom”,”age”:18},{“name”:”jack”,”age”:30}]
🐱👓SpringMVC上传文件和下载
使用SpringMVC实现文件的上传Demo:
首先封装一个上传的工具类
1 | package com.ifueen.util; |
然后写控制器
1 | package com.ifueen.controller; |
Jsp页面
1 | <%@ page language="java" contentType="text/html; charset=UTF-8" %> |
SpringMVC拦截器
SpringMVC拦截器和Servlet的过滤器有点相似,不同的是过滤器是针对所有拦截,而拦截器只针对请求控制器进行拦截
编写拦截器,继承HandlerInterceptor接口
1 | package com.ifueen.interceptor; |
在xml中配置
1 | <!-- 配置拦截器组 --> |