SpringMVC基本概念和使用
SpringMVC基本概念和使用
- Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。
基本架构流程
- 核心思想 MVC分层设计
1.入门配置
- 导包: 最基本的Spring和SpringMVC 8个包,包括web
- 配置SpringMVC 设置
1 | <?xml version="1.0" encoding="UTF-8"?> |
- web 配置
1 | <?xml version="1.0" encoding="UTF-8"?> |
4.处理函数书写
1 | package code.controller; |
2.基本配置
- 架构图理解
- RequestMapping注解
1
2
3
4
5
6
7
8
91.RequestMapping注解Controller下形成一级路径,再书写在func下形成二级目录
2.path属性 = value 属性
3.method属性 post get
4.headers属性 选择接受必须携带哪些headers的url
5.params属性 选择接受符合规定的参数的url
6.参数绑定
1.普通数据类型,直接通过同名方法参数获取
2.bean对象类型,通过构建javabean 并通过与对象属性相同的属性名获取
3.绑定集合类型,通过 list[] 或 map[''] 对应封装 - 配置过滤器解决中文乱码问题 (web.xml)中
1 | <!--配置监听器解决中文乱码问题--> |
- 自定义类型转换
1 | 1.自建转换类 实现 Converter<>接口 |
- 获取 Servlet ,session , reqeust, response
1
2
3
4
5
6
7
8
9在参数位置引用: HttpServletRequest 和 HttpServletResponse
@RequestMapping("/Servlet")
public String testServlet(HttpServletRequest request, HttpServletResponse response){
System.out.println(request); //request
System.out.println(request.getSession()); //session
System.out.println(request.getSession().getServletContext()); //servlet
System.out.println(response); //response
return "success";
} 强制绑定该参数名的传入参数 @RequestParam(“”)
restfule 编程风格 @PathVariable
1
2
3
4
5
6
7通过 / 后直接跟{参数},减少使用 ?传参和方法名
@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable String id){
System.out.println(id);
return "success";
}- 拿到整个post请求的请求体: @RequestBody
- 拿到请求的Header @RequestHeader
- 拿到请求的cookie值 @CookieValue(value=””)
函数执行前的方法 @ModelAttribute
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16ModelAttribute 会先于当前目录下的方法执行,可以利用其性质先进行封装判断后把值传给处理函数
@ModelAttribute
public Account testModelAttribute1(String name,String passwd){
Account account = new Account();
account.setName(name);
account.setPasswd(passwd);
account.setUser(new User("kid",20));
return account;
}
@RequestMapping("/testModelAttribute")
public String testModelAttribute2(Account account){
System.out.println(account);
return "success";
}SessionAttributes 设置session域的共有数据
1 | Model默认吧数据存到request 如果要设置到session |
3.视图解析器
1. 返回值是String 配置视图解析器,正常转发
2. 返回值是void,使用HttpServletrequest / response 转发或者重定向
1 | @RequestMapping("/testVoid") |
3. 返回值是ModelAndView
1 | @RequestMapping("/testModelAndView") |
4. 开放静态资源加载 SpringMVC.xml
1 | <!--前段控制器,那些静态资源不控制--> |
5. AJAX的小案例
1 | 前段ajax请求 |
6. 传统文件上传
1 | 1.前端 设置 |
7. SpringMVC的文件上传
1 | 1.前端 |
8. 跨服务器文件上传 (略)
9. 异常处理
1 | 1.编写自定义异常类,做提示信息 SysException |
10. SpringMVC拦截器
1 | 1.编写拦截器,实现HandlerIntercepter |
4.SSM整合。。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kid1999' Blog!