Java面试题(六)JavaWeb

64.jsp 和 servlet 有什么区别?

jsp本质上就是一个servlet,它是servlet的一种特殊形式,每个jsp页面都是一个servlet实列

Servlet 是由 Java 提供用于开发 web 服务器应用程序的一个组件,运行在服务端,由 servlet 容器管理,用来生成动态内容。一个 servlet 实例是实现了特殊接口 Servlet 的 Java 类,所有自定义的 servlet 均必须实现 Servlet 接口

区别

Servlet 适合动态输出 Web 数据和业务逻辑处理,对于 html 页面内容的修改非常不方便;Jsp 是在 Html 代码中嵌入 Java 代码,适合页面的显示

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

JSP有9个内置对象: 
- request:封装客户端的请求,其中包含来自GET或POST请求的参数; 
- response:封装服务器对客户端的响应; 
- pageContext:通过该对象可以获取其他对象; 
- session:封装用户会话的对象; 
- application:封装服务器运行环境的对象; 
- out:输出服务器响应的输出流对象; 
- config:Web应用的配置对象; 
- page:JSP页面本身(相当于Java程序中的this); 
- exception:封装页面抛出异常的对象
 

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

application

在所有应用程序中有效

session

在当前会话中有效

request

在当前请求中有效

page

在当前页面有效

67.session 和 cookie 有什么区别?

1、cookie存放在客户端浏览器上,session存放在服务器上

2、单个cookie保存的数据要<=4kb 最多可以保存20个cookie,session没有限制

3、cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据

      session中可以存储任何数据类型

4、cookie可以设置长期有效,session不能长期有效

5、cookie支持跨域名访问,session不支持

6、session存储到服务器比cookie存储在客户端本地安全

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

浏览器通过访问服务器的servlet 服务器会自动创建session并把sessionId通过cookie返回给浏览器存储,这样客户端每次访问时都会带着sessionId,服务器根据sessionid 获取出会话中存储的信息,服务器会默认给 session 一个过期时间,即从该 session 的会话在有效时间内没有再被访问就会被设置过超时,需要重新建立会话

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

默认情况下 session 无法生效

其他方法:

1、把 sessionid 作为参数追加的原 url 中,后续的浏览器与服务器交互中携带 sessionid 参数

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

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

1、SpringMVC是方法级别的拦截,struts是类级别的拦截

2、Struts2采用Filter实现,SpringMVC则采用Servlet实现

3、Struts2每次加载都需要加载所有属性,SpringMVC加载一次单例模式bean注入,所以SpringMVC开发效率和性能高于Struts2

4、spring MVC和Spring是无缝的,从这个项目的管理和安全上也比Struts2高

71.如何避免 sql 注入?

1、对用户的输入进行校验,可以通过正则表达式,或限制长度

2、预编译 SQL(Java 中使用 PreparedStatement),参数化查询方式,避免 SQL 拼接

3、永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接,最大限度的减少注入攻击对数据库的危害

4、对进入数据库的特殊字符进行转义处理,或编码转换

5、报错信息不要包含 SQL 信息输出到 Web 页面

6、发布前,利用工具进行 SQL 注入检测

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

XSS攻击是指跨站脚本攻击,是一种代码注入攻击,攻击者通过在网站上注入恶意脚本,使之在用户浏览器上运行,从而盗取用户信息如Cookie等

如何避免:

1、关键字转义:可以在后端对"<",">"等符号进行转译成HTML能试别的转义符

2、长度限制:一般XSS嵌入的恶意代码无论是那种类型,都需要相当的长度才能实施

3、开启CSP:白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行

4、设置cookie的httpOnly属性:浏览器的cookie不能通过js脚本获取,即不能通过document.cookie获取

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

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

如何避免:

1、CSRF 漏洞进行检测的工具

2、同源检测:禁止外域对我们发起请求

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值