版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Servlet高频面试题及详细真实答案(实战版)一、Servlet基础概念1、什么是Servlet?它的作用是什么?答案:Servlet是Java编写的、运行在服务器端的小程序,是JavaWeb最核心的原生组件。它属于JavaEE规范,本质就是一套处理客户端HTTP请求、响应数据给浏览器的接口标准。主要作用:接收浏览器发来的HTTP请求(参数、请求头、请求体)处理业务逻辑(调用Service、DAO操作数据库)封装结果,响应HTML、JSON、跳转页面等给客户端简单说:Servlet就是Java后端接收和处理浏览器请求的入口。2、Servlet和普通Java类有什么区别?答案:普通Java类需要main方法手动运行;Servlet不需要main方法,由Tomcat服务器容器管理和调用。普通类独立运行;Servlet运行在Web容器中,能直接接收HTTP请求。Servlet遵循固定生命周期,由容器创建、调用、销毁,程序员不能手动控制。3、Servlet有哪些实现方式?常用的是哪种?答案:三种实现方式:直接实现Servlet接口(最底层,方法多,繁琐)继承GenericServlet抽象类(通用Servlet,不区分协议)继承HttpServlet抽象类(专门针对HTTP协议,实际开发100%使用)HttpServlet重写doGet、doPost即可,不用管底层协议解析,开发最简单。二、Servlet生命周期(超高频必问)4、说一下Servlet的完整生命周期?各个阶段执行时机?答案:Servlet生命周期由Tomcat全权管理,分为实例化、初始化、服务、销毁四个阶段,对应三个核心方法:实例化(构造方法)执行时机:第一次请求访问该Servlet时执行一次(默认)作用:创建Servlet对象实例初始化init()方法执行时机:实例化完成后,只执行一次作用:加载配置、初始化资源(连接池、参数、缓存数据)服务service()/doGet/doPost执行时机:每一次请求都会执行原理:Tomcat调用service方法,根据请求方式分发到doGet/doPost销毁destroy()方法执行时机:服务器关闭、项目卸载时,只执行一次作用:释放资源、关闭连接、清理缓存核心总结:Servlet是单例、一次初始化、多次服务。5、Servlet为什么是单例?会不会有线程安全问题?怎么解决?答案:为什么单例:Tomcat为了节省内存、减少对象创建开销,一个Servlet类只会创建一个实例,所有用户请求共用这一个对象。线程安全问题:会有!因为多线程并发访问同一个Servlet对象,如果在Servlet中定义了成员变量,多个线程同时修改,就会出现数据错乱、并发冲突。解决方案:尽量不要在Servlet中定义可修改的成员变量变量全部定义在方法内部(局部变量,每个线程独立栈空间,安全)必须用成员变量时,加synchronized锁,或者使用ThreadLocal6、load-on-startup作用是什么?数值大小有什么区别?答案:默认Servlet是第一次访问才创建初始化,会导致第一次请求很慢。load-on-startup配置后,服务器启动时就自动创建并初始化Servlet,不用等用户访问。数值规则:数值越小,优先级越高,越先加载负数:默认规则,首次访问加载正数/0:启动加载,数字越小越优先三、请求与响应(Request/Response)7、HttpServletRequest和HttpServletResponse作用?答案:HttpServletRequest:请求对象封装了浏览器发来的所有请求数据:请求参数、请求头、请求方式、客户端地址、Cookie、Session等,由Tomcat创建。HttpServletResponse:响应对象用于给浏览器返回数据:输出页面、返回JSON、重定向、设置响应头、Cookie、状态码等。两个对象每次请求都会新建,请求结束立即销毁,不存在线程安全问题。8、get和post请求的区别?面试常用版答案:参数位置不同GET:参数拼接在URL后面POST:参数放在请求体中安全性不同GET参数暴露在地址栏、历史记录、日志中,不安全POST参数隐藏在请求体,相对安全数据大小限制GET受URL长度限制,只能传少量数据POST无明确限制,可传大文本、文件缓存特性GET会被浏览器缓存,适合查询POST不会缓存,适合提交数据、修改数据书签/历史记录:GET可收藏,POST不行9、转发(Forward)和重定向(Redirect)的区别?答案:高频必考,记住5点核心差异跳转主体不同转发:服务器内部跳转,浏览器无感知重定向:浏览器二次请求,服务器告诉浏览器重新访问新地址地址栏变化转发:地址栏不变重定向:地址栏变成新地址请求次数转发:1次请求重定向:2次请求request数据是否保留转发:共享同一个request对象,参数、属性保留重定向:全新request,数据丢失跳转范围转发:只能跳转到本项目内资源重定向:可以跳转到任意网站、外部地址使用场景:查询页面用转发,提交表单、防止重复提交用重定向。四、会话技术Cookie&Session10、Cookie和Session的区别?答案:存储位置Cookie:客户端浏览器保存Session:服务器端保存安全性Cookie:不安全,可被篡改、窃取Session:安全,数据存在服务端存储大小Cookie有限制,很小;Session无限制依赖关系Session默认依赖Cookie存储JSESSIONIDCookie独立存在,不依赖Session生命周期Cookie可设置持久化,关闭浏览器不失效Session默认浏览器关闭失效,服务端超时自动销毁11、Session失效的方式有哪些?答案:主动调用session.invalidate()销毁服务器默认超时(一般30分钟无操作自动失效)项目重启、服务器重启客户端清空Cookie(JSESSIONID丢失,相当于新会话)12、浏览器禁用Cookie,Session还能用吗?怎么解决?答案:默认不能用,因为找不到JSESSIONID,每次请求都会新建Session。解决方案:URL重写,将JSESSIONID拼接在地址栏后面,不需要Cookie也能识别会话。五、Filter过滤器(Servlet核心组件)13、Filter过滤器作用和执行流程?答案:Filter是JavaWeb三大组件之一,运行在Servlet之前,用来拦截所有请求和响应。常见用途:统一设置编码(解决乱码)登录权限校验过滤非法请求、拦截静态资源统一处理跨域、请求日志执行流程:请求进来→Filter前置处理→chain.doFilter()放行→执行Servlet→响应返回Filter后置处理14、Filter和Servlet的区别?答案:Servlet:处理业务请求、返回数据(核心业务)Filter:拦截请求、做预处理和统一控制(通用功能)执行顺序:先Filter,后Servlet六、乱码问题(面试实操高频)15、Servlet中文乱码怎么解决?GET和POST区别?答案:POST乱码解决:在获取参数前设置:request.setCharacterEncoding("UTF-8");GET乱码解决:GET参数在URL中,上面代码无效,需要修改Tomcat配置,或者手动解码编码。响应乱码解决:response.setContentType("text/html;charset=UTF-8");七、Servlet底层与细节面试题16、Servlet的service()、doGet()、doPost()关系?答案:HttpServlet中核心方法是service()。当请求过来,Tomcat调用service方法,service内部会判断请求方式:GET请求→调用doGet()POST请求→调用doPost()开发中我们只重写doGet/doPost,不用重写service。17、web.xml和注解方式配置Servlet区别?答案:web.xml:传统XML配置,所有请求地址统一管理,适合大型项目统一维护注解@WebServlet:Servlet3.0+支持,简洁、不用写xml,现在开发主流18、Servlet3.0新特性有哪些?答案:支持注解开发,告别大量web.xml配置支持异步请求处理新增文件上传API动态注册Servlet、Filter、Listener19、Servlet异步处理了解吗?作用是什么?答案:普通Servlet是同步阻塞:请求过来,主线程一直占用,直到业务处理完、响应结束,高并发下线程耗尽,服务器卡顿。异步Servlet可以释放主线程,把耗时业务交给子线程处理,主线程回收去处理其他请求,提升服务器吞吐量。适合:接口耗时久、IO操作多、批量处理的场景。八、综合面试问答(压轴)20、说说一次HTTP请求从浏览器输入地址到Servlet执行的完整过程?答案:真实面试口述版流程浏览器解析域名,DNS解析得到服务器IP地址浏览器和服务器建立TCP连接浏览器组装HTTP请求报文,发送给Tomc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026及未来5年中国OPP薄膜市场现状数据分析及前景预测报告
- 2026年中级经济师资格考试(农业经济专业知识和实务)历年试题及答案
- 电击伤的急救与护理
- 2026年无人机操控员执照考试题库(含答案)
- 2026年企业年金管理人全真模拟题及答案详解
- 2026年肺水肿模拟试卷(含答案)
- 2026年工地安全证模拟试题(含答案)
- 2026年旅行用品模拟题及答案详解
- 月嫂考试填空题及答案详解
- 2026年水电考模拟题题及答案详解
- 烟草专卖局(公司)招聘考试试题题库(含答案)
- 6.4民生福祉持续增进 议题式教学课件(共24张)+内嵌视频 2026-2027学年统编版道德与法治9年级上册
- 2026年多旋翼无人机超视距驾驶员执照考试题库(新版)
- 旧房翻新施工方案模板(3篇)
- 2026安徽日报报业集团招聘工作人员专业测试及有关工作笔试历年常考点试题专练附带答案详解
- 2026年生物实验室风险评估与风险控制
- 2026年宁波市海曙区社区工作者招聘考试真题(附答案)
- 心内科冠脉介入治疗进展汇报
- 多胎妊娠孕妇的营养需求与补充策略
- 2025党课结业考试题及答案
- 牧羊少年奇幻之旅
评论
0/150
提交评论