- config,取得服务器的配置信息。
[](()三、forward 和 redirect 的区别?
-
forward是直接请求转发;redirect是间接请求转发,又叫重定向。
-
forward,客户端和浏览器执行一次请求;redirect,客户端和浏览器执行两次请求。
-
forward,经典的MVC模式就是forward;redirect,用于避免用户的非正常访问。(例如用户非正常访问,servlet就可以将HTTP请求重定向到登录页面)。
-
forward,地址不变;redirect,地址改变。
-
forward常用方法:RequestDispatcher类的forward()方法;redirect常用方法:HttpServletRequest类的sendRedirect()方法。
[](()四、说一下 jsp 的 4 种作用域?
application、session、request、page
[](()五、session 和 cookie 有什么区别?
1、存储位置不同
-
cookie在客户端浏览器;
-
session在服务器;
2、存储容量不同
-
cookie<=4K,一个站点最多保留20个cookie;
-
session没有上线,出于对服务器的保护,session内不可存过多东西,并且要设置session删除机制;
3、存储方式不同
-
cookie只能保存ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据;
-
session中能存储任何类型的数据,包括并不局限于String、integer、list、map等;
4、隐私策略不同
-
cookie对客户端是可见的,不安全;
-
session存储在服务器上,安全;
5、有效期不同
-
开发可以通过设置cookie的属性,达到使cookie长期有效的效果;
-
session依赖于名为JESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session达不到长期有效的效果;
6、跨域支持上不同
-
cookie支持跨域;
-
session不支持跨域;
[](()六、如果客户端禁止 cookie 能实现 session 还能用吗?
一般默认情况下,在会话中,服务器存储 session 的 sessionid 是通过 cookie 存到浏览器里。
如果浏览器禁用了 cookie,浏览器请求服务器无法携带 sessionid,服务器无法识别请求中的用户身份,session失效。
但是可以通过其他方法在禁用 cookie 的情况下,可以继续使用session。
-
通过url重写,把 sessionid 作为参数追加的原 url 中,后续的浏览器与服务器交互中携带 sessionid 参数。
-
服务器的返回数据中包含 sessionid,浏览器发送请求时,携带 sessionid 参数。
-
通过 Http 协议其他 header 字段,服务器每次返回时设置该 header 字段信息,浏览器中 js 读取该 header 字段,请求服务器时,js设置携带该 header 字段。
[](()七、什么是上下文切换?