Java每日5问(第24天)

响应乱码?

1、原因: 由服务器编码,默认使用 ISO-8859-1 进行编码由浏览器解码,默认使用 GBK 进行解码
2、解决方案
方法 1:设置响应头
response.setHeader(“Content-Type”,“text/html;charset=utf-8”);
方法 2:设置响应的内容类型

response.setContentType(“text/html;charset=utf-8”);
通过这种方式可以在响应头中告诉浏览器响应体的编码方式是 UTF-8;同时服务器也会采用该字符集进行编码
但需要注意的是,两种方法一定要在 response.getWriter()之前进行。

Cookie 对象的缺陷?

1、Cookie 是明文的,不安全
2、不同的浏览器对 Cookie 对象的数量和大小有限制
3、Cookie 对象携带过多费流量
4、Cookie 对象中的 value 值只能是字符串,不能放对象网络中传递数据只能是字符串

Session 的运行机制?

1、在服务器端创建 Session 对象,该对象有一个全球唯一的 ID
2 、在创建 Session 对象的同时创建一个特殊的 Cookie 对象, 该 Cookie 对象的名字是JSESSIONID,该 Cookie 对象的 value 值是 Session 对象的那个全球唯一的 ID,并且会将这个特殊的 Cookie 对象携带发送给浏览器
3、以后浏览器再发送请求就会携带这个特殊的 Cookie 对象
4、服务器根据这个特殊的 Cookie 对象的 value 值在服务器中寻找对应的 Session 对象,以此来区分不同的用户

钝化和活化?

1、Session 与 session 域中的对象一起从内存中被序列化到硬盘上的过程我们称为钝化。服务器关闭时会发生钝化。
2、Session 与 session 域中的对象一起从硬盘上反序列化到内存中的过程我们称为活化。服务器再次开启时会发生活化。
3、要保证 session 域中的对象能和 Session 一起被钝化和活化,必须保证对象对应的类实现
Serializable 接口

Filter 的工作原理?

Filter 接口中有一个 doFilter 方法,当我们编写好 Filter,并配置对哪个 web 资源进行拦截后,
WEB 服务器每次在调用 web 资源的 service 方法之前,
都会先调用一下 filter 的 doFilter 方法,因此,在该方法内编写代码可达到如下目的: 调用目标资源之前,让一段代码执行。
是否调用目标资源(即是否让用户访问 web 资源)。调用目标资源之后,让一段代码执行。
web 服务器在调用 doFilter 方法时,会传递一个 filterChain 对象进来,filterChain 对象是
filter 接口中最重要的一个对象,它也提供了一个
doFilter 方法,开发人员可以根据需求决定是否调用此方法,调用该方法,则 web 服务器就会调用 web 资源的 service 方法,即 web 资源就会被访问,
否则 web 资源不会被访问

猜你喜欢

转载自blog.csdn.net/qq_39899164/article/details/107071218