Java Web 综合测试题(含详细答案解析)_第1页
Java Web 综合测试题(含详细答案解析)_第2页
Java Web 综合测试题(含详细答案解析)_第3页
Java Web 综合测试题(含详细答案解析)_第4页
Java Web 综合测试题(含详细答案解析)_第5页
已阅读5页,还剩4页未读, 继续免费阅读

下载本文档

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

文档简介

JavaWeb综合测试题(含详细答案解析)适用范围:JavaWeb基础学习者、期末考核、入门笔试考试时长:90分钟满分:100分一、单项选择题(共15题,每题2分,共30分)说明:每题只有一个正确答案,多选、错选、不选均不得分1.以下不属于JavaWeb三大组件的是()A.ServletB.FilterC.ListenerD.Spring2.HTTP协议中,用于提交表单数据、参数不可见的请求方式是()A.GETB.POSTC.PUTD.DELETE3.Servlet的生命周期中,只执行一次的方法是()A.init()B.service()C.doGet()D.destroy()4.在JSP中,用于定义全局变量和方法的脚本元素是()A.<%%>B.<%=%>C.<%!%>D.<%----%>5.以下哪个对象是JSP内置对象,代表页面上下文,可获取其他所有内置对象()A.pageB.pageContextC.requestD.application6.关于GET和POST请求,说法错误的是()A.GET参数拼接在URL中,POST参数在请求体中B.GET请求有长度限制,POST无明确长度限制C.GET请求更安全,适合传输敏感数据D.GET可被缓存,POST不会被缓存7.Servlet中,处理所有请求的核心方法是()A.doPost()B.doGet()C.service()D.init()8.会话对象session的默认有效时长为()A.10分钟B.30分钟C.60分钟D.永久有效9.实现请求转发的方法是()A.response.sendRedirect()B.request.getRequestDispatcher().forward()C.response.forward()D.request.redirect()10.JSP中,page指令中用于设置页面编码格式的属性是()A.languageB.contentTypeC.importD.session11.Filter过滤器的主要作用是()A.处理客户端具体业务请求B.拦截请求和响应,做预处理和后处理C.监听服务器状态变化D.存储全局数据12.以下属于服务器端跳转的是()A.forwardB.sendRedirectC.HTML超链接D.JS跳转13.application对象的作用域是()A.单次请求B.一次会话C.整个Web应用D.单个页面14.解决Web项目中文乱码问题,针对POST请求的代码是()A.request.setCharacterEncoding("UTF-8");B.response.setCharacterEncoding("UTF-8");C.System.setProperty("encoding","UTF-8");D.pageEncoding="UTF-8"15.Listener监听器的作用是()A.过滤用户请求B.监听Web容器中对象的状态变化并触发对应操作C.处理表单提交D.转发页面请求二、填空题(共10空,每空2分,共20分)1.JavaWeb中,四大作用域从小到大依次是:page、________、________、application。2.JSP九大内置对象中,________对象用于向客户端输出数据。3.客户端跳转会产生________次请求,服务器端跳转会产生________次请求。4.Servlet是运行在________端的Java小程序,用于处理HTTP请求。5.Cookie存储在________端,session存储在________端。6.Filter的执行流程是:客户端请求→________→Servlet→响应客户端。7.结束当前会话,手动销毁session的方法是________。三、简答题(共4题,每题8分,共32分)1.简述Servlet的完整生命周期及各阶段执行时机。2.详细说说forward(请求转发)和redirect(重定向)的区别,至少写出4点。3.简述Cookie和Session的异同点。4.简述Filter过滤器的工作原理及常用应用场景。四、编程题(共1题,18分)需求:编写一个简单的登录功能,实现核心逻辑1.编写登录页面login.jsp,提供用户名、密码输入框和提交按钮,表单以POST方式提交;2.编写LoginServlet,接收表单参数,设置编码格式;3.设定固定账号密码(用户名:admin,密码:123456);4.登录成功:将用户名存入session,转发到success.jsp页面,展示欢迎信息;5.登录失败:重定向到登录页,提示用户名或密码错误。参考答案及详细解析一、单项选择题答案及解析1.答案:D解析:JavaWeb原生三大核心组件为Servlet(业务处理)、Filter(请求过滤)、Listener(事件监听),Spring是第三方开源框架,不属于原生Web组件。2.答案:B解析:POST请求将表单数据封装在请求体中,地址栏无参数,保密性更好;GET请求参数直接拼接在URL后,可见且有长度限制。3.答案:A解析:Servlet生命周期:服务器启动或首次访问Servlet时执行一次init()初始化方法;每次请求都会执行service()及对应doGet/doPost方法;服务器关闭时执行一次destroy()销毁方法。4.答案:C解析:<%!%>用于声明JSP全局变量、方法;<%%>用于编写局部代码;<%=%>用于输出数据;<%----%>为注释语句。5.答案:B解析:pageContext是页面上下文对象,是九大内置对象的核心,可通过该对象获取request、response、session等所有其他内置对象。6.答案:C解析:GET请求参数暴露在URL中,可被浏览器缓存、历史记录记录,安全性极低;POST请求参数在请求体,适合传输敏感数据。7.答案:C解析:service()是Servlet核心调度方法,会根据请求方式自动调用doGet()或doPost(),直接重写service()可处理所有类型请求。8.答案:B解析:Tomcat服务器中,session默认超时时间为30分钟,无任何会话操作时自动销毁,可在web.xml中自定义配置时长。9.答案:B解析:请求转发的固定写法为request.getRequestDispatcher("跳转路径").forward(request,response);sendRedirect()是重定向方法。10.答案:B解析:contentType属性用于设置页面响应类型和编码格式,解决页面输出乱码;pageEncoding用于设置JSP文件编译编码。11.答案:B解析:Filter是拦截器,在请求到达Servlet之前拦截,完成编码过滤、权限校验、资源放行等预处理操作,不处理具体业务逻辑。12.答案:A解析:forward是服务器内部跳转,属于一次请求;sendRedirect、超链接、JS跳转均为客户端跳转,会发起新请求。13.答案:C解析:application作用域全局有效,整个Web项目运行期间,所有用户共享该对象数据,服务器关闭后数据销毁。14.答案:A解析:request.setCharacterEncoding("UTF-8")专门解决POST请求参数乱码;GET乱码需修改服务器配置或手动转码。15.答案:B解析:监听器用于监听Web域对象(request、session、application)的创建、销毁、属性增删改等事件,自动执行对应业务逻辑。二、填空题答案及解析1.request、session解析:四大作用域范围:page(当前页面)<request(单次请求)<session(单次会话)<application(全局项目)。2.out解析:out内置对象是JspWriter实例,用于向客户端浏览器输出文本、HTML内容。3.2、1解析:客户端重定向:服务器返回302状态码,浏览器重新发起请求,共2次请求;服务器转发:服务器内部跳转,仅1次请求。4.服务解析:Servlet运行在Tomcat等Web服务器端,接收客户端浏览器的HTTP请求,处理后返回响应结果。5.客户(浏览器)、服务解析:Cookie数据保存在客户端浏览器,可手动清除;Session数据保存在服务器内存,安全性更高。6.Filter(过滤器拦截处理)解析:完整请求流程:客户端发起请求→过滤器拦截预处理→目标Servlet处理业务→响应返回客户端。7.session.invalidate()解析:该方法可手动强制销毁当前用户会话,清空session中所有存储数据,常用于退出登录功能。三、简答题详细答案1.Servlet完整生命周期及执行时机Servlet生命周期分为三个核心阶段,由服务器自动管理,全程只初始化和销毁一次:(1)初始化阶段:执行init()方法。时机为服务器启动加载项目,或用户首次访问该Servlet时执行,全局仅执行一次,用于完成资源初始化、参数加载等操作;(2)服务处理阶段:执行service()方法。时机为每一次用户请求访问该Servlet时都会执行,该方法会根据HTTP请求方式,自动调用doGet()或doPost()方法处理业务;(3)销毁阶段:执行destroy()方法。时机为服务器正常关闭、项目卸载时执行,全局仅执行一次,用于释放占用的资源、关闭连接等。2.forward和redirect的核心区别(1)请求次数不同:forward是服务器内部跳转,仅一次请求;redirect是客户端跳转,产生两次请求;(2)地址栏变化不同:forward跳转后地址栏URL不变,隐藏真实跳转路径;redirect地址栏会更新为跳转后的路径;(3)数据共享不同:forward属于同一次请求,request作用域数据可共享;redirect是两次独立请求,原request数据会丢失;(4)跳转范围不同:forward只能跳转到当前项目内的资源;redirect可跳转任意外网、内网地址,不受项目限制;(5)使用场景不同:forward多用于业务处理后跳转页面、携带请求数据;redirect多用于登录退出、防止表单重复提交。3.Cookie和Session的异同点相同点:二者均为Web会话跟踪技术,用于解决HTTP协议无状态的问题,实现用户数据的临时存储和会话识别。不同点:(1)存储位置:Cookie存储在客户端浏览器,Session存储在服务器端;(2)安全性:Cookie数据可被查看、篡改、清除,安全性低;Session数据在服务器,安全性更高;(3)存储容量:Cookie有严格容量和数量限制,仅能存储少量字符串数据;Session无明显容量限制,可存储任意对象;(4)生命周期:Cookie可手动设置永久有效或指定过期时间;Session默认30分钟无操作自动销毁;(5)依赖关系:Session的正常使用依赖Cookie存储会话JSESSIONID。4.Filter过滤器工作原理及应用场景工作原理:Filter是JavaWeb拦截组件,部署在服务器中,在客户端请求到达目标资源(Servlet、JSP、静态资源)之前,自动拦截所有匹配路径的请求。开发者可在过滤器中自定义预处理逻辑,处理完成后放行请求至目标资源;资源响应客户端前,也可完成响应后处理,全程不影响核心业务逻辑。常用应用场景:统一设置请求响应编码、用户登录权限拦截、非法资源访问过滤、静态资源缓存设置、请求日志记录、防止表单重复提交等。四、编程题完整代码答案1.login.jsp登录页面jsp

<%@pagecontentType="text/html;charset=UTF-8"language="java"%>

<html>

<head>

<title>用户登录</title>

</head>

<body>

<h3>用户登录系统</h3>

<%--展示登录失败提示--%%>

<%Stringmsg=(String)session.getAttribute("msg");

if(msg!=null){

out.print(msg);

session.removeAttribute("msg");

}

%>

<formaction="loginServlet"method="post">

用户名:<inputtype="text"name="username"><br/>

密   码:<inputtype="password"name="password"><br/>

<inputtype="submit"value="登录">

</form>

</body>

</html>2.LoginServlet核心处理类java

importjavax.servlet.ServletException;

importjavax.servlet.annotation.WebServlet;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importjavax.servlet.http.HttpSession;

importjava.io.IOException;

@WebServlet("/loginServlet")

publicclassLoginServletextendsHttpServlet{

@Override

protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

//1.设置POST请求编码,解决乱码

request.setCharacterEncoding("UTF-8");

//2.获取表单参数

Stringusername=request.getParameter("username");

Stringpassword=request.getParameter("password");

//3.定义正确账号密码

StringrightName="admin";

StringrightPwd="123456";

//4.获取session对象

HttpSessionsession=request.getSession();

//5.校验账号密码

if(rightName.equals(username)&&rightPwd.equals(password)){

//登录成功:存入用户名,请求转发到成功页面

session.setAttribute("username",username);

request.getRequestDispa

温馨提示

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

评论

0/150

提交评论