Loading...

# Get 和 Post 的区别

get 和 post 都是 http 的请求方式,用户通过不同的请求方式来完成对资源的不同操作,get、post、put、delete 分别对应着资源的查、改、增、删四个操作,一般来说 get 用来获取资源,post 用于更新资源

  1. get 请求提交的数据会在地址栏显示出来,post 请求不会
  2. 由于地址栏长度有限,导致 get 传输的数据有限,而 post 不会
  3. 安全性,post 安全性比 get 高

# 对 Servlet 的理解

Servlet 是用 Java 程序编写的服务端程序,而这些 Servlet 都要实现 Servlet 接口,其主要功能是用于交互式的浏览和修改数据,生成动态网页

HttpServlet 重写 doget 和 dopost 方法或者重写 service 方式可以实现对 get 和 post 请求的响应

# Servlet 的生命周期

加载 Servlet 的生命周期,调用 init () 进行初始化,然后调用 service () 方法来处理客户端的请求,最后调用 destroy () 终止

# forward 与 redirect 的区别

  1. forward 地址栏不会发生改变,redirect 地址栏会发生改变
  2. forward 是服务器上的行为,redirect 是客户端的行为
  3. forward 是一次请求完成的,redirect 是两次请求完成的
  4. forward 效率较高

# JSP 与 Servlet 的相同点与不同点

相同点:JSP 是 Servlet 的扩展,所有的 JSP 文件最终都会被翻译成一个继承 HttpServlet 类,也就是说 JSP 最终也是一个 Servlet

不同点:JSP 侧重于视图,Servlet 侧重于控制逻辑

# JSP 的九大内置对象与四大作用域

九大内置对象

Request:客户端的请求

Response:网页传回客户端的响应

PageContext:网页属性的管理,通过该对象获取其他对象

Session:会话

Application:servlet 正在执行的内容

Out:传递回应的输出

Config:servlet 的架构不见

Page:Jsp 网页本身

Exception:针对错误的网页

四大作用域

page:只在一个页面保留数据

request:只在一个请求中保存数据

Session:再一次会话中保存数据,仅供单个用户使用

Application:在整个服务器中保存数据,全部用户共享

# Cookie 与 Session 的区别

cookie 和 session 都是会话跟踪技术

不同点

  1. cookie 的数据是存在客户端的,session 的数据是存在服务器上的
  2. cookie 是不安全的
  3. session 会在一定时间内存放在服务器上,当访问增多时,会占用服务器的性能
  4. 单个 cookie 的保存数据不能超过 4k, 很多浏览器一个站点最多存放 20 个 cookie

建议

将登录信息等重要信息保存在 session 中,其他信息如需保留,可以放在 cookie 中,如:购物车

购物车最好使用 cookie,范式 cookie 实在客户端禁用的,只是要我们需要使用 cookie + 数据库的方式实现,当从 cookie 中不能取出数据时,就从数据库中取

可以,session 只依赖 cookie 存储 sessionId,如果 cookie 被禁用了,可以使用 url 添加 sessionId 的方式保证 session 能正常使用。

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

XXS 攻击:即跨站脚本攻击,它是 web 程序常见的漏洞,原理是攻击者往 web ⻚⾯⾥插⼊恶意的脚 本代码(css 代码、javascript 代码等),当⽤户浏览该⻚⾯时,嵌⼊其中的脚本代码会被执⾏,从⽽达 到恶意攻击⽤户的⽬的,如盗取⽤户 cookie、破坏⻚⾯结构、重定向到其他⽹站等。

预防 XSS 的核⼼是必须对输⼊的数据做过滤处理。

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

CSRF:Cross-Site Request Forgery(跨站请求伪造),可以理解为攻击者盗用了你的身份,以你的名义恶意发送请求。

防御手段:

  • 验证请求来源地址
  • 关键操作添加验证码
  • 在请求地址添加 token 验证
更新于

请我喝[茶]~( ̄▽ ̄)~*

七音 微信支付

微信支付

七音 支付宝

支付宝