六、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验证
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/97006.html