Java面试题之Java Web

六、Java Web

64. jsp 和 servlet 有什么区别?

  • jsp擅长表现页面显示,servlet擅长逻辑控制
  • servlet没有内置对象,jsp有内置对象
  • servlet的应用逻辑在.java文件中,而jsp中,java和html组合为一个.jsp文件.
  • servlet在java代码中嵌入html代码,jsp是在html中嵌入java代码

65. jsp 有哪些内置对象?作用分别是什么?

jsp有9个内置对象:

  • request 用户端请求,此请求会包含来自GET/POST请求的参数
  • response 网页传回用户端的回应
  • pageContext 网页的属性是在这里管理
  • session 与请求有关的会话期
  • application  servlet正在执行的内容
  • out 用来传送回应的输出
  • config  servlet的构架部件
  • page JSP网页本身
  • exception 针对错误网页,未捕捉的例外

66. 说一下 jsp 的 4 种作用域?

  • application:它的有效范围是整个应用。整个应用是指从应用启动.application里的变量可以被所有用户共用。如果用户甲的操作修改了application中的变量,用户乙访             问时得到的是修改后的值。
  • session:如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间        的过程。这个过程可能包含多个请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session)
  • request:就说明它的作用域是request,它的有效范围是当前请求周期。所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过            程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。
  • page:代表变量只能在当前页面有效

67. session 和 cookie 有什么区别?

  • 数据存放位置不同.session在服务器,cookie在客户端浏览器
  • 安全程度不同,别人可以分析存放在本地的cookie进行cookie欺骗.
  • 单个cookie保存的数据不能超过4k,而session是在服务器的,所以没有限制
  • cookie只能存储string类型的数据,session可以存储对象.

68. 说一下 session 的工作原理?

当用户第一次访问一个服务器,服务器就会为该用户创建一个session,并生成一个和该session有关的session_id,
这个id是唯一的,不可重复.这个id将会在本次响应中返回,保存在客户端的cookie中,下次访问的时候,客户端浏览器的cookie中含有session_id,服务器基于这个id就可以识别该用户.

69. 如果客户端禁止 cookie 能实现 session 还能用吗?

可以,当cookie被禁用,我们可以使用"URL重写"来使session生效,简单来说就是将sessionid的信息作为请求地址的一部分 。这样服务器就可以解析URL,得到该sessionid,进而识别用户.

70. spring mvc 和 struts 的区别是什么?

  • mvc的入口是一个servlet,struts2的入口是一个filter
  • mvc是单例的,struts2是多例的
  • mvc面向方法开发,struts2面向类开发.
  • struts2采用值栈存储请求和响应数据,mvc通过参数解析器将request请求解析.

71. 如何避免 sql 注入?

  • 采用预编译语句
  • 使用正则过滤传入的参数.
  • 屏蔽不安全的字符

72. 什么是 XSS 攻击,如何避免?

XSS攻击,即跨站脚本攻击.是指攻击者在用户端注入恶意的可运行脚本,让其在用户浏览网页时运行,从而通过脚本来获得用户的信息.
    避免:

             对用户输入和URL参数进行过滤,过滤掉脚本相关的内容
             对输出进行编码

73. 什么是 CSRF 攻击,如何避免?

CSRF攻击也叫跨站请求伪造,攻击者通过伪造用户的浏览器请求,向用户自己曾经认证过的网站发送,使目标网站误以为 是用户的真实操作而去执行命令.
    避免:1.令牌机制 2.token验证

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值