六、Java Web


六、Java Web


1. jsp 和 servlet 有什么区别?

JSP是Servlet技术的扩展,本质上还是Servlet

Servlet和JSP的不同点在于:

  • Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。

  • JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。

  • JSP侧重于视图,Servlet主要用于控制逻辑。


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

JSP共有以下9个内置的对象:

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

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

  1. application 在所有应用程序中有效
  2. session 在当前会话中有效
  3. request 在当前请求中有效
  4. page 在当前页面有效

4. session 和 cookie 有什么区别?

session存放在服务器端,cookie存在客户端,cookie又分为会话cookie和持久化cookie,回话cookie随着浏览器关闭消失,持久化cookie在客户端硬盘

session的信息是通过sessionid获取的,sessionid存在会话cookie中,浏览器关闭会话cookie消失,session的信息还在服务器端只是查不到了并不是不存在。session在服务器关闭或过期的情况下数据消失


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

  1. 用户第一次请求服务器时,服务器端会生成一个sessionid
  2. 服务器端将生成的sessionid返回给客户端,通过set-cookie
  3. 客户端收到sessionid会将它保存在cookie中,当客户端再次访问服务端时会带上这个sessionid
  4. 当服务端再次接收到来自客户端的请求时,会先去检查是否存在sessionid,不存在就新建一个sessionid重复1,2的流程,如果存在就去遍历服务端的session文件,找到与这个sessionid相对应的文件,文件中的键值便是sessionid,值为当前用户的一些信息
  5. 此后的请求都会交换这个 Session ID,进行有状态的会话。

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

默认情况下,在会话中,服务器存储 session 的 sessionid 是通过 cookie 存到浏览器里。如果浏览器禁用了 cookie,浏览器请求服务器无法携带 sessionid,服务器无法识别请求中的用户身份,session失效。

禁用 cookie 的情况下,通过url重写,把 sessionid 作为参数追加的原 url 中或者服务器的返回数据中包含 sessionid,可以继续使用session


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

  1. spring mvc 单例 非线程安全
    struts1单例 非线程安全
    struts2线程安全对每个请求都产生一个实例
  2. spring mvc的入口是servlet,而struts2是filter
    spring 的前端总控制器为 DispatcherServlet
    struts2 的前端总控制器为 FilterDispatcher
    struts1 的前端总控制器为 actionServlet
  3. struts在接受参数时,用属性来接受参数,参数是多个方法共享。
    springmvc 用方法来接受参数
  4. spring mvc是基于方法的设计,而sturts是基于类

8. 如何避免sql注入?

  • 首先在前台页面对用户输入信息进行js验证,屏蔽特殊字符,限制用户名输入的长度,
  • 对于用户的敏感信息我们进行Md5加密,
  • 给连接数据库用户满足需要的最低权限

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

XSS 攻击,即跨站脚本攻击,它是 web 程序中常见的漏洞
避免思路:
web 页面中可由用户输入的地方,如果对输入的数据转义、过滤处理,后台输出页面的时候,也需要对输出内容进行转义、过滤处理
前端对 html 标签属性、css 属性赋值的地方进行校验


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

CSRF(跨站点请求伪造)攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击页面,利用目标网站对用户的信任,以用户身份在攻击页面对目标网站发起伪造用户操作的请求,达到攻击目的

避免方法:

  • CSRF 漏洞检测的工具,如 CSRFTester、CSRF Request Builder…
  • 验证 HTTP Referer 字段
  • 添加并验证 token
  • 添加自定义 http 请求头
  • 敏感操作添加验证码
  • 使用 post 请求
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无痕YF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值