版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaWeb高频面试题及详细答案(真实面试版)一、JavaWeb基础面试题1、什么是JavaWeb?和普通Java项目有什么区别?详细答案:JavaWeb是基于Java语言开发的网页端、服务端应用程序,主要用于开发网站、后台管理系统、接口服务等B/S架构项目。和普通JavaSE项目的核心区别:1、运行环境不同:普通Java项目运行在JVM中即可;JavaWeb项目需要运行在Tomcat、Jetty等Web容器中,依托容器完成项目部署、请求监听、资源调度。2、交互方式不同:普通Java项目多是本地控制台、桌面交互;JavaWeb是基于HTTP协议,实现浏览器和服务器的跨网络交互。3、生命周期不同:普通Java程序main方法启动,执行完毕即结束;Web项目启动后常驻内存,持续监听客户端请求,服务器关闭才会终止。4、组件不同:Web项目独有Servlet、Filter、Listener、JSP、Cookie、Session等Web专属组件。2、简述HTTP协议的特点和常用请求方式详细答案:HTTP是超文本传输协议,是Web开发的核心协议,基于TCP/IP实现。核心特点:1、无连接:每次请求完成后,连接自动断开,不会长期占用连接资源,HTTP1.1之后支持长连接复用。2、无状态:服务器不会记录客户端的状态,每次请求都是独立的,无法识别用户身份,所以需要Cookie、Session来维持会话。3、简单快速:请求格式简单,服务器处理效率高,传输速度快。4、支持B/S架构:适配浏览器访问,跨平台、跨终端。常用请求方式:1、GET:从服务器获取数据,参数拼接在URL中,明文传输、有长度限制、可缓存、不安全。2、POST:向服务器提交数据,参数在请求体中,无长度限制、不缓存、相对安全,常用于登录、表单提交。3、PUT:修改服务器资源。4、DELETE:删除服务器资源。3、GET和POST的详细区别(面试高频)详细答案:1、参数位置不同:GET参数在URL地址栏;POST参数在请求体内部。2、安全性不同:GET参数明文可见,容易泄露;POST参数隐藏在请求体,安全性更高。3、数据长度限制:GET有URL长度限制,无法传输大量数据;POST无长度限制,适合上传文件、提交长文本。4、缓存机制:GET请求会被浏览器缓存,重复请求会读取缓存数据;POST默认不缓存。5、书签收藏:GET可以保存为书签;POST无法收藏。6、编码格式:GET只支持ASCII字符;POST支持多种编码格式,可传输中文、二进制文件。二、Servlet核心面试题1、什么是Servlet?作用是什么?详细答案:Servlet是JavaWeb的核心组件,是运行在Web服务器端的Java小程序,用来接收、处理客户端的HTTP请求,并响应数据给浏览器。核心作用:1、接收浏览器发送的HTTP请求,解析请求参数。2、调用业务层、数据层代码,完成业务逻辑处理。3、封装处理结果,响应页面、数据、跳转路径给客户端。4、实现动态资源交互,替代静态页面的固定展示。2、Servlet的生命周期(必考)详细答案:Servlet生命周期分为实例化、初始化、服务、销毁四个阶段,由Tomcat容器统一管理。1、实例化阶段:客户端第一次请求该Servlet,或者服务器启动时(load-on-startup配置),容器通过反射创建Servlet实例,只会执行一次。2、初始化阶段:执行init()方法,仅执行一次。主要用于加载配置文件、初始化资源、创建连接等全局操作。3、服务阶段:执行service()方法,每次请求都会执行。容器根据请求方式调用doGet()或doPost()方法处理请求。4、销毁阶段:执行destroy()方法,仅执行一次。服务器关闭、项目卸载时触发,用于释放资源、关闭连接、清理缓存。补充:Servlet是单例多线程,全局变量存在线程安全问题,开发中禁止在Servlet中定义成员变量存储请求数据。3、service、doGet、doPost方法的区别详细答案:1、service():核心调度方法,接收所有类型的请求,判断请求方式后,自动分发调用doGet或doPost,重写该方法会覆盖默认分发逻辑。2、doGet():专门处理GET请求。3、doPost():专门处理POST请求。开发规范:实际开发中为了防止请求方式不匹配报错,通常让doGet和doPost互相调用,统一处理逻辑,避免代码冗余。4、Servlet的线程安全问题及解决方案详细答案:问题原因:Servlet是单例,整个项目中只有一个Servlet实例,多个用户同时访问时,多线程共享成员变量,会出现数据覆盖、数据错乱的线程安全问题。解决方案:1、不在Servlet中定义成员变量,所有临时数据使用局部变量(局部变量存在栈空间,线程独立,互不干扰)。2、如果必须使用共享变量,添加同步锁synchronized,保证同一时间只有一个线程操作。3、使用ThreadLocal存储线程私有数据,隔离多线程数据。三、Cookie与Session高频面试题1、Cookie和Session的区别(面试必问)详细答案:1、存储位置不同:Cookie存储在客户端浏览器;Session存储在服务器端。2、安全性不同:Cookie保存在本地,可被篡改、窃取,安全性低;Session数据存在服务器,用户无法直接修改,安全性高。3、容量限制:Cookie容量小,单个Cookie最大4KB,单个网站最多20个Cookie;Session无明确容量限制,仅受服务器内存影响。4、生命周期:Cookie可以设置持久化,关闭浏览器不失效;Session默认浏览器关闭即失效,也可手动设置过期时间。5、依赖关系:Session的使用依赖Cookie,服务器生成SessionId后,通过Cookie返回给浏览器,下次请求携带SessionId匹配会话。6、资源消耗:Cookie不占用服务器资源;Session常驻服务器内存,用户量大会占用大量服务器资源。2、Session的工作原理详细答案:1、用户第一次访问服务器时,服务器会创建一个唯一的Session对象,并生成唯一的SessionId。2、服务器将SessionId以Cookie的形式响应给浏览器,浏览器保存该Cookie。3、用户后续每次请求,浏览器都会自动携带该Cookie中的SessionId。4、服务器接收请求后,根据SessionId匹配对应的Session对象,识别用户身份,维持会话状态。5、浏览器关闭后,临时Cookie失效,SessionId丢失,服务器端Session等待超时后自动销毁。3、浏览器禁用Cookie后,Session如何使用?详细答案:浏览器禁用Cookie后,无法保存SessionId,默认情况下Session失效。可以通过URL重写解决:服务器在所有跳转、请求URL后拼接SessionId,使每次请求都携带会话标识,无需依赖Cookie。常用方法:response.encodeURL(),自动判断浏览器是否禁用Cookie,禁用则自动拼接SessionId,不禁用则返回原URL。四、JSP核心面试题1、JSP是什么?JSP和Servlet的区别详细答案:JSP是嵌入了Java代码的HTML页面,本质上就是Servlet,是Servlet的升级版,专门用于做页面展示。JSP和Servlet区别:1、职责不同:Servlet侧重业务逻辑处理、控制跳转;JSP侧重页面展示、数据渲染。2、代码结构不同:Servlet以Java代码为主,HTML拼接输出;JSP以HTML为主,嵌入少量Java代码。3、运行方式不同:JSP第一次访问时会被容器编译成Servlet文件,再执行;Servlet直接编译运行。4、开发效率:JSP页面开发更便捷;Servlet适合复杂业务控制。2、JSP的九大内置对象(熟记常用)详细答案:JSP内置对象是容器自动创建,无需手动new,可直接使用的对象:1、request:请求对象,获取请求参数、请求域数据。2、response:响应对象,设置响应头、跳转、输出数据。3、session:会话对象,保存用户会话数据。4、application:全局对象,整个项目共享数据,服务器启动创建,关闭销毁。5、pageContext:页面上下文对象,可获取其他所有内置对象,页面级域对象。6、out:输出对象,向页面输出内容。7、page:当前JSP页面本身,等同于this。8、config:配置对象,获取web.xml配置信息。9、exception:异常对象,获取页面异常信息(需设置isErrorPage=true)。3、JSP四大域对象及作用范围详细答案:作用范围从小到大依次为:1、pageContext(页面域):仅当前页面有效,页面跳转后数据失效。2、request(请求域):一次请求有效,请求转发有效,重定向、页面刷新后失效。3、session(会话域):一次浏览器会话有效,浏览器不关闭、会话不超时,数据一直存在。4、application(全局域):整个项目运行期间有效,所有用户共享数据,服务器关闭才失效。五、转发与重定向面试题1、转发(Forward)和重定向(Redirect)的区别(高频必考)详细答案:1、请求次数不同:转发是一次请求;重定向是两次请求。2、地址栏变化:转发地址栏不变;重定向地址栏更新为新地址。3、数据保留:转发可以保留request域数据;重定向会丢失request域数据。4、跳转范围:转发只能跳转到当前项目内资源;重定向可以跳转到任意外网地址。5、实现方式:转发通过request.getRequestDispatcher().forward();重定向通过response.sendRedirect()。6、效率:转发效率更高,少一次请求;重定向效率稍低。六、Filter过滤器&Listener监听器1、Filter过滤器的作用和生命周期详细答案:Filter是JavaWeb的拦截器,用于拦截客户端请求和服务器响应,在请求到达Servlet之前、响应返回浏览器之前做统一预处理。核心作用:统一编码设置、登录权限拦截、资源过滤、日志记录、防重复提交、过滤非法字符。生命周期:1、初始化init():服务器启动项目加载时执行,仅一次,初始化过滤器资源。2、过滤doFilter():每次匹配请求都会执行,放行则调用chain.doFilter(),拦截则直接返回响应。3、销毁destroy():项目卸载、服务器关闭时执行,释放资源。2、Listener监听器的作用详细答案:监听器用于监听Web项目中域对象的创建、销毁、属性变更,自动触发对应方法。常用场景:统计在线人数、项目启动初始化数据、监听Session失效、系统日志监控。主要监听对象:ServletContext、HttpSession、ServletRequest。七、Web乱码问题解决方案(实战必考)1、JavaWeb项目中文乱码如何彻底解决?详细答案:1、POST请求乱码:在Servlet或统一过滤器中设置request.setCharacterEncoding("UTF-8"),仅对请求体生效。2、GET请求乱码:修改Tomcat配置文件server.xml,添加URIEncoding="UTF-8",统一URL编码格式。3、响应乱码:设置response.setContentType("text/html;charset=UTF-8"),告诉浏览器以UTF-8解码。4、页面乱码:JSP页面头部添加page编码指令,HTML页面设置meta编码为UTF-8。5、数据库乱码:数据库、数据表、连接URL统一设置UTF-8编码。八、项目实战面试题1、项目中如何实现登录拦截?详细答案:项目中统一使用Filter过滤器实现登录拦截,核心逻辑:1、配置拦截路径:拦截所有需要登录访问的资源,放行登录页面、登录接口、静态资源(css、js、图片)。2、拦截逻辑:获取当前用户Session中的登录用户信息。3、判断处理:如果Session存在用户信息,说明已登录,直接放行;如果Session为空,未登录,重定向到登录页面。4、优化处理:排除静态资源和登录接口,避免无限拦截跳转。2、如何防止表单重复提交?详细答案:1、令牌机制(主流):服务器生成唯一token存入Session,随表单带入页面;提交表单时携带to
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年突发公共卫生事件应急条例试题带答案
- 2026年云南省开远市高三生物上册期末考试检测卷带答案
- 2026年湖南省津市市高一化学上册期末考试测试卷及答案一套
- 2026年湖南省汨罗市高三物理下册期末考试模拟卷及答案
- 2026年四川省马尔康市高一化学上册期末考试考试卷含答案(完整版)
- 2026年安徽省桐城市高三历史上册期末考试测试卷附参考答案(满分必刷)
- 2026年辽宁省新民市高一化学上册期末考试模拟卷及参考答案【基础题】
- 2026年黑龙江省五大连池市高三物理下册期末考试模拟试卷带答案
- 2026年河南省卫辉市高一化学上册期末考试检测卷及答案【基础+提升】
- 2026年湖南省涟源市高一历史上册期末考试自测卷及参考答案【突破训练】
- 2026年新版《医疗器械监督管理条例》培训试题及答案
- 2026人教版四年级数学上册第七单元第1课《数与运算》课件
- 辣椒基质育苗操作指引
- 行政执法监督条例全文解读
- 2026年金属非金属矿山(地下矿山)安全管理人员考试试题及答案(完整版)
- 2027年高考历史一轮复习:必修《中外历史纲要(上)》全册知识点考点提纲
- 商铺招租委托书
- 金匮要略绪论
- 【《国企混合所有制改革路径及影响案例分析-以云南白药企业为例》14000字(论文)】
- 双人演讲稿励志英语版
- 2026年药品批发企业质量管理员培训试卷及答案解析
评论
0/150
提交评论