【Java面试题总结 4】Java Web

本文主要探讨了Java Web开发中的核心概念,包括forward与redirect的区别、jsp的作用域、session与cookie的对比、上下文切换、session工作原理以及跨域解决方案如JSONP、CORS和Nginx反向代理。此外,还提到了TCP的三次握手、HTTP响应码301和302、XSS和CSRF攻击的防范,以及设计模式在JDK中的应用。
摘要由CSDN通过智能技术生成
  1. config,取得服务器的配置信息。

[](()三、forward 和 redirect 的区别?


  1. forward是直接请求转发;redirect是间接请求转发,又叫重定向。

  2. forward,客户端和浏览器执行一次请求;redirect,客户端和浏览器执行两次请求。

  3. forward,经典的MVC模式就是forward;redirect,用于避免用户的非正常访问。(例如用户非正常访问,servlet就可以将HTTP请求重定向到登录页面)。

  4. forward,地址不变;redirect,地址改变。

  5. 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。

  1. 通过url重写,把 sessionid 作为参数追加的原 url 中,后续的浏览器与服务器交互中携带 sessionid 参数。

  2. 服务器的返回数据中包含 sessionid,浏览器发送请求时,携带 sessionid 参数。

  3. 通过 Http 协议其他 header 字段,服务器每次返回时设置该 header 字段信息,浏览器中 js 读取该 header 字段,请求服务器时,js设置携带该 header 字段。

[](()七、什么是上下文切换?


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值