Spring常用注解以get,post,cookie,session的简答区别
Spring以及SpringMVC常用的注解
- @component:用于标记一个类上,表示当前类是Spring的一个组件,是ioc的一个容器,他有三个衍生注解@service,@controller,@Repository
- @Controller:用于标记一个类上,代表这个类是控制层组件
- @Service:用于标记一个类上,代表这个类是业务层组件
- @Repository:用于标记一个类上,代表这个类是数据访问层组件
- @RequestMappering:是一个用于处理请求地址的注解,可作用于类或者方法上,用于类,表示类中所有响应请求的放大都是以该地址作为父路劲
- @RequestParam:用于将指定的请求参数赋值给方法中的形参
- @PathVariable: 用于获取URL中的动态参数
- @RequestBody:用于读取request请求的body部分数据
- @ResponseBody:用于controller方法返回的对象,用流响应给客户端
- @RestController:@Controller+@ResponseBody,用于标记一个类上
- @Transactional:写在类上用于指定当前类中的方法支持事务,写在方法上表示当前方法支持事务
SpringBoot常用注解
- @SpringBootApplication:包含了@Configuration,@EnableAutoConfiguration,@ComponentScan 通常用于主类上
- @ComponentScan:组件扫描,如果扫描到有@Component,@Controller,@Service等这些注解的类,就把这些类注册成bean*
- @Configuration:指出该类是Bean配置的信息源,相当于XML中的,一般加在主类上
- @Bean:相当于XML中的,放在方法的上面,而不是类,意识是产生一个bean,并交给spring管理
- @Import: 用于代入其他配置
- @ImportResoure:用来加载xml配置文件
- @ControllerAdvice:包含了@Component,可以被扫描到。统一异常处理
- @ExceptionHandler:{Exception.class}:用在方法上表示遇到这个异常就就执行以下方法
GET和POST 有什么区别
get:查询,请求参数,不安全,提交的数据小
post:添加或者更新数据,提交数据比较安全,提交的数据量无限制
- get方法用于信息获取,他是安全的,而post方法用于修改服务器上资源的请求
- get请求的数据会附在url之后,而post方法提交的数据则放置在http报文实体的主体里,所有post的方法的安全性比get方法要高
- get方法传输的数据量一般限制在2kb,而post方法对数据的大小没有限制的
请求报文和响应报文的简单区别
请求报文:1.请求方法,2.请求URL,3.Http请求协议及版本,4.报文头,5.报文体
请求行:
①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。
②为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL。
③是协议名称及版本号。
请求头:
④是HTTP的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。
与缓存相关的规则信息,均包含在header中
请求体:
⑤是报文体,它将一个页面表单中的组件值通过param1=value1¶m2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但报文体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html? param1=value1¶m2=value2”的方式传递请求参数。
响应报文:1.报文协议以及版本 2.状态码以及状态描述 3.响应头 4.响应体
响应行:
①报文协议及版本;
②状态码及状态描述;
响应头:
③响应报文头,也是由多个属性组成;
响应体:
④响应报文体,即我们真正要的“干货”
cookie和session的简单区别和联系
- cookie数据存放在用户的浏览器上,session数据存放在服务器上
- 很多浏览器限制站点最多保存20gecookie,单个cookie保存的数据不能超过4k
- cookie不是很安全,考虑安全应该使用session
- 可以考虑将登录信息等重要信息存放在session,其他信息如果需要保留可以放在cookie中
- session会在一定时间内保存在服务器
- session会在浏览器关闭或者一段时间内销毁,也可以通过setMaxInactiveInterval(int)方法进行设置,或者通过invalidate()方法强制结束当前会话,cookie可以通过setMaxAge(int) 方法设置缓存在客户端的时间
- 一般情况下,session生成的sessionid都是保存在cookie中
总结
cookie在客户端保存数据,不安全,只能保存String字符串,且是少量数据
session在服务端保存数据,安全,可以保存对象数据,数据无限制