Java Web 期末复习题集(2)内含答案_第1页
Java Web 期末复习题集(2)内含答案_第2页
Java Web 期末复习题集(2)内含答案_第3页
Java Web 期末复习题集(2)内含答案_第4页
Java Web 期末复习题集(2)内含答案_第5页
已阅读5页,还剩18页未读, 继续免费阅读

付费下载

下载本文档

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

文档简介

JavaWeb期末复习题集(2)内含答案一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出。1.Servlet生命周期中,只会被调用一次,且在Servlet第一次被请求时执行的方法是()A.service()B.init()C.destroy()D.doGet()2.下列关于请求转发与重定向的描述,正确的是()A.重定向是服务器内部的跳转行为,浏览器地址栏不会发生变化B.转发会产生两次HTTP请求,对服务器来说压力更大C.转发可以共享同一个request域中的数据,重定向不可以D.重定向不能跳转至当前Web应用以外的资源3.HttpSession中存储的用户数据保存在()A.客户端浏览器B.服务器端C.客户端硬盘D.数据库4.JSP中,用于导入项目依赖的外部类的指令是()A.page指令B.include指令C.taglib指令D.plugin指令5.Filter接口中,用于对请求和响应进行预处理、放行请求的核心方法是()A.init()B.destroy()C.doFilter()D.doPost()6.下列选项中,不属于JSP内置对象的是()A.outB.sessionC.cookieD.pageContext7.Servlet代码中`request.getRequestDispatcher("/login.jsp").forward(request,response);`中,路径开头的`/`代表的含义是()A.Web服务器站点根路径B.当前Web应用的根路径C.当前类所在的路径D.项目当前工作目录8.web.xml中Servlet配置项`<load-on-startup>2</load-on-startup>`的作用是()A.标记Servlet的加载顺序,数值越大优先级越高B.Web服务器启动时就实例化并初始化该ServletC.该Servlet最多可以处理2个并发请求D.只有当第2次请求该Servlet时才会实例化9.下列会话跟踪技术中,数据存储在客户端,存在数据安全隐患且存储容量有限的是()A.CookieB.HttpSessionC.URL重写D.隐藏表单域10.JSP文件最终会被Web容器编译转换为哪种程序运行()A.CGI程序B.Servlet程序C.HTML程序D.ASP程序11.一个JavaWeb应用程序中,ServletContext对象的个数是()A.1个B.每个用户1个C.每个请求1个D.每个Servlet1个12.要从HttpSession对象中移除指定名称的属性,应当调用的方法是()A.invalidate()B.removeAttribute()C.deleteAttribute()D.close()13.Filter映射匹配规则中,优先级最高的是()A.精确路径匹配B.模糊路径匹配C.扩展名匹配D.默认匹配14.当客户端通过复选框提交多个同名称的参数时,在Servlet中获取全部参数值应当调用的方法是()A.getParameter()B.getParameterNames()C.getParameterValues()D.getParameterMap()15.EL表达式中,用于获取单个请求参数的隐式对象是()A.paramB.paramValuesC.requestScopeD.sessionScope单项选择题答案1.B2.C3.B4.A5.C6.C7.B8.B9.A10.B11.A12.B13.A14.C15.A二、填空题(本大题共10小题,每空2分,共20分)1.Servlet接口定义的三个核心生命周期方法是init()、__________、destroy()。2.Web容器处理客户端的每次请求,会创建两个核心对象,分别是__________对象和HttpServletResponse对象。3.需要对URL编码来实现URL重写会话跟踪时,需要调用HttpServletResponse对象的__________方法完成编码。4.JSP中用于将内容输出到客户端页面的内置对象是__________。5.过滤器链中,Filter对象调用__________方法将请求放行给下一个过滤器或目标资源。6.JavaWeb中,用于在整个Web应用范围内共享数据的域对象是__________,对应JSP内置对象为application。7.JSP的__________编译指令用于将其他JSP页面在当前页面编译阶段引入,实现静态包含。8.用户退出登录时,需要销毁整个Session对象,调用Session的__________方法可以实现该需求。9.web.xml中,配置Servlet监听器需要使用__________标签声明。10.传统AJAX技术中,用于实现异步HTTP请求的核心对象是__________。填空题答案1.service()2.HttpServletRequest3.encodeURL4.out5.doFilter6.ServletContext7.include8.invalidate()9.`<listener>`10.XMLHttpRequest三、简答题(本大题共5小题,每小题6分,共30分)1.简述请求转发(Forward)和重定向(Redirect)的核心区别。>答案:二者核心区别如下:>(1)请求次数不同:请求转发是服务器端一次请求完成跳转,整个过程只产生一次HTTP请求;重定向是服务器响应浏览器后,浏览器重新发起一次新请求,整个过程产生两次HTTP请求。(2分)>(2)地址栏表现不同:请求转发是服务器内部跳转,浏览器地址栏保持原请求地址不变;重定向是浏览器主动发起新请求,地址栏会变为跳转后的目标地址。(1分)>(3)数据共享不同:请求转发前后属于同一个请求,可以共享request域中的数据;重定向是两次不同请求,无法共享request域的数据。(1分)>(4)跳转范围不同:请求转发只能跳转至当前Web应用内部的资源;重定向可以跳转至当前应用外甚至其他站点的资源。(1分)>(5)路径含义不同:转发路径开头的`/`代表当前Web应用根路径;重定向路径开头的`/`代表整个Web站点的根路径。(1分)2.简述Servlet的完整生命周期。>答案:Servlet生命周期分为四个核心阶段:>(1)实例化阶段:Web容器收到请求后,若Servlet未被加载实例化,会加载Servlet类,创建Servlet实例对象。若配置了`load-on-startup`,则会在服务器启动时就完成实例化。(2分)>(2)初始化阶段:实例创建完成后,容器调用Servlet的`init()`方法完成初始化操作,该方法只会被调用一次。(1分)>(3)服务阶段:每次客户端请求到达Servlet后,容器都会调用Servlet的`service()`方法处理请求,`service()`方法会根据请求方式调用`doGet()`或`doPost()`方法,该方法会被多次调用。(2分)>(4)销毁阶段:当Web服务器停止、应用卸载或者Servlet需要被销毁时,容器会调用Servlet的`destroy()`方法释放资源,该方法也只会被调用一次,调用完成后Servlet实例被JVM垃圾回收。(1分)3.什么是会话跟踪?常用的会话跟踪技术有哪些?>答案:HTTP协议是无状态协议,无法记录同一用户多次请求之间的关联关系,会话跟踪就是指服务器跟踪同一用户从打开浏览器访问应用到关闭浏览器整个访问过程,保存该用户在访问过程中产生的状态数据的技术。(2分)>常用的会话跟踪技术有四种:>(1)Cookie:客户端技术,将会话标识和少量数据存储在客户端浏览器,服务器通过Cookie识别用户,优点是无需占用服务器资源,缺点是容量有限、存在安全风险。(1分)>(2)HttpSession:服务器端技术,将会话状态数据存储在服务器端,通过Cookie传递会话标识SessionID,是JavaWeb最常用的会话跟踪技术,安全性和容量都远优于Cookie。(1分)>(3)URL重写:将会话标识SessionID编码追加到URL地址后,传递给服务器,适合客户端禁用Cookie的场景。(1分)>(4)隐藏表单域:将会话标识存储在HTML表单的隐藏input标签中,提交表单时随请求传递给服务器,仅适合表单提交场景。(1分)4.简述过滤器的作用和常见应用场景。>答案:过滤器是JavaWeb中用于对请求和响应进行预处理、后处理的组件,它可以拦截请求和响应,在请求到达目标资源之前进行处理,也可以在响应输出到客户端之前进行处理,不影响核心业务逻辑的开发,实现功能解耦。(2分)>常见应用场景包括:>(1)统一处理全站请求的中文乱码问题,在请求到达Servlet之前设置统一编码;(1分)>(2)权限验证,拦截需要权限的请求,判断用户是否登录,未登录则跳转登录页,不用在每个业务Servlet中重复编写权限判断代码;(1分)>(3)统一日志记录,记录所有请求的访问日志,统计访问量;(1分)>(4)敏感内容过滤,过滤用户提交内容中的敏感违规字符,统一做内容审核;(1分)5.请列举JSP的九大内置对象,并简述每个内置对象的核心作用。>答案:JSP九大内置对象及作用如下:>(1)request:`HttpServletRequest`对象,封装客户端的请求信息,用于获取请求参数、请求头,管理request域的共享数据;>(2)response:`HttpServletResponse`对象,封装服务器的响应信息,用于设置响应内容、实现重定向、添加Cookie等;>(3)out:`JspWriter`对象,用于输出动态内容到客户端页面;>(4)session:`HttpSession`对象,会话对象,用于在同一用户的多次请求之间共享会话级数据;>(5)application:`ServletContext`对象,整个Web应用的上下文对象,用于在所有用户之间共享全局应用数据;>(6)pageContext:当前JSP页面的上下文对象,用于获取其他内置对象,管理page域的属性;>(7)config:`ServletConfig`对象,存储当前JSP对应Servlet的初始化配置信息;>(8)page:当前JSP转换后的Servlet对象,代表当前JSP页面本身;>(9)exception:`Throwable`对象,存储JSP页面运行抛出的异常对象,仅在错误配置的页面中可以使用。(每个作用0.6分,共6分)四、编程题(本大题共2小题,每小题10分,共20分)1.请编写一个全局UTF-8编码过滤器,解决项目POST请求的中文乱码问题,要求实现Filter接口,拦截所有请求,写出完整代码和web.xml配置。>答案:>过滤器实现类代码:>```java>packagecom.example.filter;>importjavax.servlet.*;>importjava.io.IOException;>>publicclassCharacterEncodingFilterimplementsFilter{>privateStringencoding;>@Override>publicvoidinit(FilterConfigfilterConfig)throwsServletException{>//从初始化参数获取编码,默认UTF-8>this.encoding=filterConfig.getInitParameter("encoding");>if(encoding==null){>this.encoding="UTF-8";>}>}>@Override>publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{>//设置请求、响应编码>request.setCharacterEncoding(encoding);>response.setContentType("text/html;charset="+encoding);>//放行请求>chain.doFilter(request,response);>}>@Override>publicvoiddestroy(){>this.encoding=null;>}>}>```>web.xml配置:>```xml><filter>><filter-name>CharacterEncodingFilter</filter-name>><filter-class>com.example.filter.CharacterEncodingFilter</filter-class>><init-param>><param-name>encoding</param-name>><param-value>UTF-8</param-value>></init-param>></filter>><filter-mapping>><filter-name>CharacterEncodingFilter</filter-name>><url-pattern>/*</url-pattern>></filter-mapping>>```>评分标准:实现Filter接口正确(2分),init方法读取配置正确(2分),doFilter设置编码正确(3分),放行逻辑正确(1分),web.xml配置正确(2分)。2.编写一个处理登录请求的LoginServlet,要求:获取前端登录页提交的username和password参数,约定正确用户名密码为admin/123456,验证通过则将用户名存入Session域,重定向到首页index.jsp;验证失败则将错误提示信息`用户名或密码错误`存入request域,转发回登录页login.jsp。请写出完整的Servlet代码。>答案:>```java>packagecom.example.servlet;>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("/login")>publicclassLoginServletextendsHttpServlet{>@Override>protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{>//1.获取请求参数>Stringusername=request.getParameter("username");>Stringpassword=request.getParameter("password");>//2.验证用户名密码>if("admin".equals(us

温馨提示

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

评论

0/150

提交评论