一、SE部分
集合
二、 JavaWeb
cookie&session
Cookie:其实就是客户端储存的,什么是客户端,就是浏览器存储,
能看的见的,在浏览器设置-历史纪录中能看见,能手动清除Cookie。
所以它一般都会被用在不重要的地方,因为它很容易被发现(cookie以明文储存信息),
而且储存量很小(单个cookie保存的数据不能超过4K),
它的有效期也不咋地,一般你清除一下浏览器就没了,正常20分钟后,
cookie生命周期结束
*****
Session:服务端,也是放在服务器上(session的默认失效时间为30分钟),
Session是另一种记录客户状态的机制,基于Cookie实现,
不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上
客户端浏览器访问服务器的时候,
服务器把客户端信息以某种形式记录在服务器上,
这就是Session,
客户端浏览器再次访问时只需要从Session
中查找该客户的状态就可以
区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以从本地的cookie获取你的信息,
考虑到安全性应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,
会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。
4、个站点单个cookie保存的数据不能超过4K,
很多浏览器都限制一最多保存20个cookie。
5、可以考虑将登陆信息等重要信息存放为session,
其他信息如果需要保留,可以放在cookie中。
6、cookie的生命周期是累计的,从创建时,
就开始计时,20分钟后,cookie生命周期结束,
7、关机会造成session生命周期的结束,
但是对cookie没有影响
8、访问范围:
session为一个用户浏览器独享
cookie为多个用户浏览器共享
请求重定向&请求转发&请求包含
请求转发
请求转发:客户端的一次请求到达后,发现需要借助其他Servlet来实现功能
客户端浏览器发送一个请求到ServletA中,想借助ServletA去实现一些功能,但是ServletA完成不了这个功能,这时候它发现ServletB是可以实现这些功能的,所以ServletA就这次请求转发个ServletB
特点:
浏览器地址栏不变:(还是ServletA的地址)
域对象中的数据不丢失:(可以在ServletA中去设置一些共享数据,ServletB就能获取这些数据)
负责转发的Servlet转发前后的响应正文会丢失:(因为最终是由ServletB去响应给客户端的,所以ServletA的正文会丢失)
由转发的目的地来响应客户端
请求包含
请求包含:可以合并其他Servlet中的功能一起响应给客户端。
客户端浏览器发送一个请求,找到了ServletA实现一些功能,但是ServletA只能完成一部分,另一部分实现不了,替换ServletA发现ServletB可以把另外一部分的功能实现,所以这个时候ServletA就把ServletB包含了一下。能够在ServletA中合并其他Servlet当中的功能,一起响应给客户端
特点:
浏览器地址栏不变(还是ServletA的地址)
域对象中的数据不丢失(可以在ServletA中去设置一些共享数据,ServletB就能获取这些数据)
被包含的Servlet响应头会丢失(ServletB的消失)
请求重定向
请求重定向:客户端的一次请求到达后,发现需要借助其他Servlet来实现功能。
特点
1.浏览器地址栏会发生改变,
2.两次请求请求域对象中不能共享数据
3.可以重定向到其他服务器。
重定向是两次请求
三、 Spring
@Resource和@Autowired区别?
@Resource 默认通过名称注入,如名称无法找到,则通过类型注入;
@Autowired 默认通过类型注入,如存在多个类型则通过名称注入,也可以配合@Qualifier注解相当于限制bean的范围,在@Qualifier中指定bean的名字来注入你想要的那个bean,也可以使用@primary来指定bean的优先级