## RequestMapping
用于建立请求URL和处理请求方法之间的对应关系.以下
~~~
@Controller
@RequestMapping(path = "/user")
public class HelloController
{
@RequestMapping(path = "/hello", params = {"username"}, method = {RequestMethod.POST}, headers = {"Accept"})
public String hello()
{
System.out.println("hello springMVC");
return "success";
}
}
~~~
解释:
访问路径:/user/hello
params:必须包含username参数.
method:请求方式为post.
headers:必须包含Accept请求头.
## @RequestParam
作用:吧请求中置地你那个名称的参数给控制器中的形参赋值.
属性:value:请求参数中的名称.required:请求参数中是否必须提供此参数,默认true,不提供将报错.
~~~
@RequestMapping(path = "/annotation")
public String testRequestParam(@RequestParam(name = "name", required = true) String username) //将表单中name为"name"的赋值给username,并且必须传递
{
System.out.println(username);
return "success";
}
~~~
## @RequestBody
作用:用于获取请求体内容,直接使用得到的是key&vakue结构的数据.
属性:required:是必须有请求体,默认是true.当取值为true时,get请求方式会报错.如果取值是false,get请求得到的是null.
~~~
@RequestMapping(path = "/annotation")
public String testRequestParam(@RequestBody String body)
{
System.out.println(body);
return "success";
}
~~~
结果:
```
name=jack&age=20
```
## @PathVariable
作用:用于绑定URL中的占位符.URL占位符是spring3.0之后加入的.是spring支持rest风格URL的一个重要标志.
属性:value:用于指定URL中占位符名称.required:是否必须提供占位符.
```
/annotation/10
```
~~~
@RequestMapping(path = "/annotation/{uid}")
public String testRequestParam(@PathVariable(name = "uid") Integer id) //PathVariable的值和占位符的值一致
{
System.out.println(id);
return "success";
}
~~~
## @RequestHeade
作用:用于获取请求消息头.
属性:value:提供消息头名称.required:是否必须有此消息头.
~~~
@RequestMapping(path = "/annotation")
public String testRequestParam(@RequestHeader(value = "Accept") String accept)
{
System.out.println(accept);
return "success";
}
~~~
## @CookieValue
作用:用于获取cookie的值.
属性:value:.. required:是否必须有此值.
![](https://box.kancloud.cn/b66881eda9c878a4589164c07178a018_2522x124.png)
~~~
@RequestMapping(path = "/annotation")
public String testRequestParam(@CookieValue(value = "name") String name)
{
System.out.println(name);
return "success";
}
~~~
## @ModelAttribute
作用:该注解是springMVC4.3版本以后加入的.它可以用于修饰方法和参数.
出现在方法上,表示当前方法会在控制器执行之前,先执行.它可以修饰没有返回值的方法,也可以修饰有具体翻番至的方法.
出现在参数上,获取指定的数据给参数赋值.
属性:value:用于获取数据的key.key可以是POJO的属性名称,也可以是map结构的key.
### 作用于方法
~~~
@RequestMapping(path = "/annotation")
public String testRequestParam(User user) //这里获取到了经过@ModelAttribute方法的user
{
System.out.println(user);
return "success";
}
/**
* 该方法会先执行
*/
@ModelAttribute
public User test(String username)
{
User user = new User();
user.setUsername(username);
user.setAge(20);
user.setDate(new Date());
return user;
}
~~~
### 作用于参数
~~~
@RequestMapping(path = "/annotation")
public String testRequestParam(@ModelAttribute("abc") User user) //这里通过"abc"这个key获取到参数
{
System.out.println(user);
return "success";
}
/**
* 该方法会先执行
*/
@ModelAttribute
public void test(String username, Map<String, User> map)
{
User user = new User();
user.setUsername(username);
user.setAge(20);
user.setDate(new Date());
map.put("abc", user);
}
~~~
## SessionAttributes
作用:用于多次执行控制器方法间的参数共享.
属性:value:用于指定存入的属性名称.type:用于指定存入的数据类型.
~~~
@Controller
@SessionAttributes(value = {"msg"}) //把msg存入到session域中
public class HelloController
{
@RequestMapping(path = "/annotation")
public String testRequestParam(Model model)
{
//将键值对存入到model中,底层帮我们存入到request域中了
model.addAttribute("msg", "hello world");
return "success";
}
@RequestMapping(path = "/get")
public String get(ModelMap modelMap)
{
System.out.println(modelMap.get("msg"));
return null;
}
@RequestMapping(path = "/delete")
public String delete(SessionStatus status)
{
status.setComplete(); //删除session
return null;
}
}
~~~
jsp:
~~~
${requestScope.msg}
${sessionScope.msg}
~~~
- Maven
- 概述
- 常用命令
- 生命周期
- scope详解
- maven概念模型图
- IDEA创建maven工程
- 创建maven web项目
- 冲突解决
- pom文件标签详解
- maven工程拆分与聚合的思想
- 父子工程的创建
- 工程和模块的关系以及集成和依赖的概念
- 父子工程添加依赖
- 父子工程的三种启动方式
- Struts2
- 执行流程
- 配置
- action的使用
- 获取Servlet的API
- result标签的视图配置
- struts2属性封装
- struts2模型封装
- OGNL
- 值栈(ValueStack)
- 值栈context区存数据
- 值栈root区
- struts2对el的增强
- #,%,$符号使用
- 值栈扩展
- 拦截器
- 自定义拦截器
- 方法拦截器
- 注解方式
- Hibernate
- 配置
- 简单crud
- 持久化类编写规范
- OID
- 持久化类三种状态
- 一级缓存
- 查询
- session与当前线程绑定
- hibernate一对多配置
- 冗余SQL语句的原因
- hibernate多对多配置
- 级联操作
- 对象导航查询
- JPA
- JPA单表CRUD
- JPA多种查询
- JPA一对多关系映射
- JPA一对多操作
- JPA多对多关系映射
- JPA多对多操作
- QBC查询
- 离线条件查询(DetachedCriteria)
- SpringMVC
- 环境搭建
- 常用注解
- 请求参数绑定
- 绑定基本类型和字符串
- 绑定实体类型
- 解决中文乱码
- 绑定集合类型
- 自定义类型转换器
- 获取Servlet的API
- 响应字符串
- 响应void
- 响应ModelAndView
- 响应forward和redirect
- 响应过滤静态资源
- 响应json
- 文件上传基础
- SpringMVC上传文件
- 跨服务器文件上传
- 拦截器
- SpringMVC异常
- ControllerAdvice
- SpringMVC默认处理方式
- 概述
- @ExceptionHandler
- 消息转换器
- SpringMVC跨域
- Spring
- 概述
- IoC快速入门
- ApplicationContext三个常用实现类
- beanFactory和ApplicationContext区别
- bean创建三种方式
- POJO和Javabean的区别
- bean作用范围
- bean对象生命周期
- spring的依赖注入
- DI的属性注入方式
- 常用注解
- Spring新注解
- Spring整合连接池
- Spring的IOC注解配置
- Spring完全使用注解
- Spring整合junit
- AOP
- AOP配置
- JDBCTemplate
- JDBCTemplate在IOC中使用
- JDBCTemplate的CRUD
- JDBCTemplate在dao中使用
- 声明式事务
- spring事务API
- 事务XML配置
- 事务注解配置
- 全注解事务
- Spring编程式事务
- 整合SSH(XML版本)
- 整合SSH(半XML半注解)
- Spring5新特性
- MyBatis
- 概述
- 用maven创建MyBatis
- 将数据库配置单独文件
- typeAliases标签
- MyBatis的CRUD
- MyBatis实现Dao层开发
- 使用dao和代理类的区别
- MyBatis连接池
- MyBatis事务
- MyBatis动态SQL
- 多表操作
- 多表一对一
- 多表一对多
- 多表多对多
- JNDI
- 延迟加载和立即加载
- 延迟加载
- 一级缓存
- 二级缓存
- MyBatis注解
- MyBatis注解CRUD
- 注解实体类属性和字段对应关系
- MyBatis注解一对一和一对多
- MyBatis注解二级缓存
- SSM整合
- 搭建环境
- SpringBoot
- SpringBoot核心功能
- 快速入门
- SpringBoot配置文件
- yml配置文件语法
- 配置文件与配置类的属性映射方式
- 端口和映射路径
- 日志级别
- 访问静态资源
- SpringBoot注入方式一
- SpringBoot注入方式二
- 拦截器
- HikariCP连接池
- SpringBoot集成MyBatis
- 通用mapper
- SpringBoot事务
- SpringBoot集成Junit
- SpringBoot集成DataJPA
- SpringBoot集成Redis
- 使用SpringBoot提供的测试启动类
- 使用MockMvc
- SpringCloud
- RestTemplate
- Eureka概述
- Eureka快速入门
- Eureka集群
- Eureka客户端
- Eureka失效剔除和自我保护
- 负载均衡Ribbon
- Hystrix
- Hystrix服务降级
- Hystrix服务熔断
- Feign
- Feign的熔断机制
- Feign的请求压缩和日志级别
- Zuul网关
- Zuul快速入门
- Zuul路由规则
- Zuul过滤器
- Zuul自定义过滤器
- Zuul负载均衡和熔断
- Zuul高可用
- Zuul网关缓存
- SpringSecurity
- 快速入门
- SpringSecurity使用数据库认证