6. 高频面试题 - JAVA WEB

高频面试题 - JAVA WEB

  1. cookie和session的区别
  • cookie数据保存在客户端,session数据保存在服务端。
  • cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,相当重要的数据,应该使用session保存到服务端。
  • session会在一定时间内保持在服务器上,但是会占用内存资源,当访问的用户过多,会加重服务器的负载,考虑到减轻服务器的压力,可以将不重要的数据放在cookie中持久的保存。
  • 单个cookie保存的数据不能超过4k,很多浏览器都限制站点最多保存20个cookie。
  • session与浏览器得会话默认会以cookie实现
  1. http协议简单协议
  • HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式。http请求由三部分组成,分别是:请求行、消息报头、请求正文,响应也包含三部分:状态行(包含HTTP版本、状态码、状态码的原因短语)、响应首部字段、响应内容实体
  1. Get和Post请求方式的区别?
  • get地址栏有参数显示 post不会再地址栏显示参数(参数是放在了请求体)
  • get不安全 post相对安全
  • get限制大小 post理论上不限制
  1. JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?

-JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑

  1. jsp九大内置对象
  • request:负责得到客户端请求的信息,对应类型:javax.servlet.http.HttpServletRequest
  • response:负责向客户端发出响应,对应类型:javax.servlet.http.HttpServletResponse
  • session:负责保存同一客户端一次会话过程中的一些信息,对应类型:javax.servlet.http.httpsession
  • out:负责管理对客户端的输出,对应类型:javax.serlvet.jsp.jspwriter
  • application:表示整个应用环境的信息,对应类型:javax.servlet.servletcontext
  • config:表示ServletConfig,对应类型:javax.servlet.servletconfig
  • exception:表示页面中发生的异常,可以通过它获得页面异常信息,对应类型:java.lang.exception
  • pagecontext:表示这个JSP页面上下文,对应类型:javax.servlet.jsp.pagecontext
  • page:表示当前JSP页面本身
  1. jsp四大作用域
  • page是代表一个页面相关的对象和属性。
  • request一个请求可能跨越多个页面。
  • session一个web回话也可以经常跨域多个请求。
  • application是代表与整个web应用程序相关的对象和属性。
  1. servlet的生命周期
  • 第一次请求的时候servlet被初始化,而且只初始化一次,所以tomcat容器中每一个servlet只有一个对象存在
  • 初始化后先调用init方法,只执行一遍
  • 每个请求,调用一遍service -> service -> doGet/doPost。以多线程的方式运行
  • 卸载前调用destroy方法
  1. 重定向和转发的区别?
  • 重定向是客户端行为,转发是服务器端行为
  • 重定向两次请求两次响应,转发一次请求一次响应
  • 重定向路径需要加工程名,转发的路径不需要加工程名.
  • 重定向可以跳转到任意网站,转发只能在服务器内部进行转发.
  • 重定向会导致request对象信息丢失。转发则不会
  1. 如何防止表单重复提交?
  • JavaScript控制
  • 使用session实现令牌机制

15) 过滤器有哪些作用,以及过滤器的生命周期

  • 生命周期:每个Filter在tomcat启动时进行初始化,每个Filter只有一个实例对象
    (1). Init:在服务器启动时会创建Filter实例
    (2). doFilto:这个方法会在用户每次访问“目标资源”时执行
    (3). destroy():服务器关闭时销毁Filter对象
  • 作用:
    (1). 验证客户是否来自可信网络
    (2). 对客户提交的数据进行重新编码
    (3). 过滤掉客户的某些不应该出现的词汇
    (4). 验证用户是否可以登录
    (5). 验证客户的浏览器是否支持当前的应用
    (6). 记录系统日志

16) session 共享怎么做的(分布式如何实现 session 共享)
(1) 可以使用tomcat广播机制实现session共享
(2) 可以使用redis+tomcat实现session共享
(3) 可以使用Spring Session完成session共享

  1. Servlet是安全的吗?
  • 是线程不安全的,因为servlet是单例模式,当多个客户端共同访问的时候线程不安全。
    尽量用局部变量,同步块,如果当前字段是不会改变的,用final修饰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值