Java Web 工程师招聘笔试题(含答案及详细解析)_第1页
Java Web 工程师招聘笔试题(含答案及详细解析)_第2页
Java Web 工程师招聘笔试题(含答案及详细解析)_第3页
Java Web 工程师招聘笔试题(含答案及详细解析)_第4页
Java Web 工程师招聘笔试题(含答案及详细解析)_第5页
已阅读5页,还剩5页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaWeb工程师招聘笔试题(含答案及详细解析)考试时长:120分钟满分:100分适用岗位:JavaWeb开发工程师、后端开发工程师答题说明:所有题目独立作答,简答题、编程题需书写核心步骤,结果准确、逻辑完整方可得分一、单项选择题(共15题,每题2分,共30分)1.下列关于JSP九大内置对象的说法,错误的是()A.pageContext可以获取其他所有内置对象B.request对象生命周期贯穿整个会话C.application对象作用域为整个Web应用D.out对象用于页面输出数据流2.Servlet的生命周期中,只会执行一次的方法是()A.doGet()B.doPost()C.init()D.service()3.下列会话域对象的作用域范围,从大到小排序正确的是()A.application>session>request>pageB.session>application>request>pageC.application>request>session>pageD.session>request>application>page4.解决GET请求中文乱码的核心方案是()A.request.setCharacterEncoding("UTF-8")B.修改Tomcat配置文件server.xml配置URIEncoding="UTF-8"C.response.setContentType("text/html;charset=UTF-8")D.配置web.xml全局编码过滤器5.下列关于Cookie和Session的区别,说法不正确的是()A.Cookie存储在客户端,Session存储在服务端B.Session依赖Cookie实现会话跟踪C.Cookie数据大小无限制,Session有大小限制D.Cookie可设置持久化,浏览器关闭后可保留6.SpringMVC中,处理请求参数绑定、视图跳转的核心核心组件是()A.DispatcherServletB.HandlerMappingC.ViewResolverD.HandlerAdapter7.下列注解中,用于实现请求跨域访问的是()A.@TransactionalB.@CrossOriginC.@RequestMappingD.@RequestBody8.MyBatis中,用于实现数据库字段和实体类属性映射的配置是()A.<setting>B.<resultMap>C.<sql>D.<include>9.Spring事务传播特性中,默认的传播行为是()A.REQUIREDB.SUPPORTSC.REQUIRES_NEWD.NESTED10.下列不属于HTTP请求方式的是()A.GETB.POSTC.SENDD.PUT11.JSP中,用于静态包含页面的指令是()A.<jsp:include>B.@includeC.<%@include%>D.<import>12.下列关于SpringIOC的说法,正确的是()A.IOC是主动创建对象、主动依赖赋值B.IOC容器通过反射机制实现对象管理C.Bean默认是多例的D.Bean创建时机默认是项目启动后首次调用时13.MySQL中,用于分页查询的关键字是()A.ORDERBYB.GROUPBYC.LIMITD.DISTINCT14.SpringMVC中@RequestBody注解的作用是()A.获取URL路径参数B.获取请求体JSON数据并封装为对象C.获取表单普通参数D.设置响应体数据格式15.下列关于过滤器(Filter)和拦截器(Interceptor)的说法,正确的是()A.拦截器是Servlet原生组件B.过滤器仅能拦截Controller请求C.过滤器执行时机早于拦截器D.拦截器可以操作request、response原生对象二、填空题(共10空,每空2分,共20分)1.Servlet接口的三个核心生命周期方法是init()、________、________。2.Web项目中,实现会话跟踪的两种核心技术是________和________。3.SpringMVC的工作流程中,________是整个请求的中央调度器。4.MyBatis中#{}和${}的区别是:#{}可以________,${}直接拼接字符串,存在________风险。5.Spring事务的四大特性简称ACID,分别是原子性、________、________、持久性。6.HTTP协议中,状态码404表示________,500表示服务器内部错误。三、简答题(共4题,每题6分,共24分)1.简述Servlet和JSP的区别与联系。2.详细说明Cookie和Session的使用场景及优缺点。3.简述SpringMVC的完整执行流程。4.简述Filter过滤器的工作原理及常用应用场景。四、编程应用题(共2题,共26分)1.(12分)使用Servlet实现用户登录功能,要求:接收用户名、密码参数,判断参数非空,模拟数据库校验,登录成功跳转成功页面,失败跳转登录页面并提示错误。2.(14分)使用SpringMVC+MyBatis实现简单的用户查询接口,要求:编写实体类、Mapper接口、Controller接口,实现根据用户ID查询用户信息,返回JSON格式结果。参考答案及详细解析一、单项选择题答案及解析(每题2分,共30分)1.答案:B解析:request对象的生命周期仅为一次请求,请求结束立即销毁;session对象生命周期贯穿一次用户会话,浏览器未关闭、会话未超时则持续存在。A、C、D选项表述均正确。2.答案:C解析:Servlet生命周期:init()初始化方法,服务器启动或首次访问时执行,仅执行一次;service()方法接收请求,每次访问都会执行,并根据请求方式调用doGet/doPost方法。3.答案:A解析:四大作用域范围:application(整个项目)>session(单次用户会话)>request(单次请求)>page(当前页面),作用域越小,数据生命周期越短。4.答案:B解析:request.setCharacterEncoding仅能解决POST请求乱码;GET请求参数拼接在URL中,需修改Tomcat核心配置文件server.xml,添加URIEncoding="UTF-8"统一编码格式。response设置编码用于解决响应输出乱码。5.答案:C解析:Cookie存在严格大小限制,单个Cookie最大容量约4KB,且单个域名下Cookie数量有限;Session存储在服务端,容量仅受服务器内存限制。其余选项表述均正确。6.答案:A解析:DispatcherServlet是SpringMVC核心中央调度器,负责接收所有请求、分发请求、调用处理器、解析视图、返回响应。HandlerMapping负责映射请求地址,HandlerAdapter适配处理器,ViewResolver解析视图。7.答案:B解析:@CrossOrigin注解用于解决前端跨域请求问题;@Transactional用于事务控制;@RequestMapping用于请求地址映射;@RequestBody用于接收JSON请求体数据。8.答案:B解析:MyBatis中<resultMap>标签用于自定义数据库表字段与实体类属性的映射关系,解决字段名和属性名不一致、复杂关联查询映射问题。9.答案:A解析:Spring事务默认传播行为为REQUIRED:当前有事务则加入当前事务,无事务则新建事务,是项目中最常用的传播特性。10.答案:C解析:常见HTTP请求方式:GET(查询)、POST(提交)、PUT(修改)、DELETE(删除),无SEND请求方式。11.答案:C解析:<%@include%>是静态包含,编译时合并文件,仅生成一个class文件;<jsp:include>是动态包含,运行时分别执行、合并结果。12.答案:B解析:IOC即控制反转,将对象创建、依赖注入的控制权交给容器,属于被动创建对象;SpringBean默认单例、项目启动时初始化,底层通过反射机制实现对象管理。13.答案:C解析:LIMIT是MySQL分页核心关键字,用法:LIMIT起始下标,每页条数;ORDERBY用于排序,GROUPBY用于分组,DISTINCT用于去重。14.答案:B解析:@RequestBody专门用于接收前端传递的JSON格式请求体数据,自动封装为Java实体对象;URL路径参数用@PathVariable,普通表单参数可直接参数绑定。15.答案:C解析:Filter是Servlet原生组件,拦截所有资源请求(静态资源、Servlet、Controller),执行时机早于Spring拦截器;Interceptor是Spring框架特有组件,仅拦截Controller请求,无法直接操作原生request、response对象。二、填空题答案及解析(每空2分,共20分)1.service()、destroy()解析:Servlet完整生命周期:init()初始化、service()处理请求、destroy()销毁容器关闭时执行,均由服务器自动调用。2.Cookie、Session解析:Web无状态协议,无法自动识别用户身份,通过Cookie客户端存储、Session服务端存储两种技术实现会话跟踪,识别同一用户的多次请求。3.DispatcherServlet解析:作为SpringMVC的核心调度中枢,统一接收、分发、处理所有客户端请求。4.预编译防SQL注入、SQL注入解析:#{}是预编译占位符,底层使用PreparedStatement,可有效防止SQL注入;${}直接拼接字符串,无预编译,存在极高的SQL注入风险,仅适用于动态表名、排序字段等场景。5.一致性、隔离性解析:事务ACID四大特性:原子性(不可分割)、一致性(数据前后一致)、隔离性(事务互不干扰)、持久性(提交后永久生效)。6.请求资源不存在解析:4xx为客户端错误,404代表访问的URL地址对应的资源不存在;5xx为服务端错误。三、简答题答案及详细解析(每题6分,共24分)1.Servlet和JSP的区别与联系联系:JSP本质上就是Servlet,JSP页面在服务器端会被容器编译转换为Servlet类,最终都是通过Servlet处理请求、响应数据;二者均属于JavaWeb原生组件,用于处理客户端请求。(3分)区别:①书写方式不同,Servlet以Java代码为主,输出页面需拼接字符串,前端展示繁琐;JSP以HTML为主,内嵌Java代码,适合页面展示;②职责不同,Servlet侧重业务逻辑处理、数据控制;JSP侧重页面视图渲染;③开发场景不同,传统架构中Servlet做控制器,JSP做视图,前后端分离架构下JSP基本被淘汰。(3分)2.Cookie和Session的使用场景及优缺点Cookie:存储在客户端浏览器,体积小、无服务器压力。优点:减轻服务端内存压力、可持久化存储;缺点:容量有限、不安全、可被用户手动禁用或篡改。适用场景:记住登录状态、保存用户偏好设置、免密登录。(3分)Session:存储在服务器内存,依赖Cookie传递sessionId。优点:安全性高、容量不受客户端限制、数据可控;缺点:占用服务器资源,用户量大时影响服务器性能。适用场景:用户登录会话管理、权限校验、临时数据存储。(3分)3.SpringMVC完整执行流程①客户端发送HTTP请求,请求被前端控制器DispatcherServlet拦截接收;(1分)②DispatcherServlet调用HandlerMapping处理器映射器,根据请求URL匹配对应的Controller处理器;(1分)③通过HandlerAdapter处理器适配器,调用匹配到的Controller业务方法;(1分)④Controller处理业务逻辑,返回ModelAndView(数据+视图名);(1分)⑤ViewResolver视图解析器解析视图路径,渲染页面;(1分)⑥封装响应结果,返回给客户端浏览器。(1分)4.Filter过滤器的工作原理及常用场景工作原理:Filter是JavaWeb原生过滤器,在请求到达目标资源之前、响应返回客户端之前执行拦截操作。通过重写doFilter方法,对request、response进行预处理,调用chain.doFilter()放行请求,实现请求拦截与放行控制。(3分)常用场景:统一设置请求响应编码、用户登录权限拦截、静态资源过滤、请求日志记录、非法参数过滤、跨域统一处理。(3分)四、编程应用题详细解析(共26分)1.Servlet实现用户登录功能(12分)核心代码如下(规范完整,可直接运行):java

importjavax.servlet.ServletException;

importjavax.servlet.annotation.WebServlet;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importjava.io.IOException;

@WebServlet("/login")

publicclassLoginServletextendsHttpServlet{

@Override

protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

//1.设置统一编码

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=UTF-8");

//2.接收前端参数

Stringusername=request.getParameter("username");

Stringpassword=request.getParameter("password");

//3.参数非空校验

if(username==null||"".equals(username.trim())||password==null||"".equals(password.trim())){

request.setAttribute("errorMsg","用户名和密码不能为空!");

request.getRequestDispatcher("/login.jsp").forward(request,response);

return;

}

//4.模拟数据库账号密码校验

if("admin".equals(username)&&"123456".equals(password)){

//登录成功,跳转成功页面

request.getRequestDispatcher("/success.jsp").forward(request,response);

}else{

//登录失败,返回错误提示

request.setAttribute("errorMsg","用户名或密码错误!");

request.getRequestDispatcher("/login.jsp").forward(request,response);

}

}

@Override

protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

doPost(request,response);

}

}得分要点:编码设置(3分)、参数接收与非空校验(3分)、账号校验逻辑(3分)、请求转发跳转(3分)。2.SpringMVC+MyBatis用户查询接口(14分)1.用户实体类User.java(4分)java

publicclassUser{

privateIntegerid;

privateStringusername;

privateStringphone;

privateStringemail;

//无参、有参构造

publicUser(){}

publicUser(Integerid,Stringusername,Stringphone,Stringemail){

this.id=id;

this.username=username;

this.phone=phone;

this.email=email;

}

//getter、setter方法

publicIntegergetId(){returnid;}

publicvoidsetId(Integerid){this.id=id;}

publicStringgetUsername(){returnusername;}

publicvoidsetUsername(Stringusername){this.username=username;}

publicStringgetPhone(){returnphone;}

publicvoidsetPhone(Stringphone){this.phone=phone;}

publicStringgetEmail(){returnemail;}

publicvoidsetEmail(Stringemail){this.email=email;}

}2.Mapper接口UserMapper.java(4分)java

importorg.apache.ibatis.annotations.Param;

importorg.apache.ibatis.annotations.Select;

publicinterfaceUserMapper{

//根据ID查询用户信息

@Select("selectid,username,phone,emailfromuserwhereid=#{id}")

UsergetUserById(@Param(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论