javaweb期末考试试题及答案_第1页
javaweb期末考试试题及答案_第2页
javaweb期末考试试题及答案_第3页
javaweb期末考试试题及答案_第4页
javaweb期末考试试题及答案_第5页
已阅读5页,还剩18页未读, 继续免费阅读

付费下载

下载本文档

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

文档简介

javaweb期末考试试题及答案一、单项选择题(每小题2分,共30分)1.JavaWeb项目中,Tomcat服务器默认的HTTP服务端口是()A.80B.8080C.3306D.84432.下列选项中,不属于Servlet生命周期核心方法的是()A.init()B.service()C.destroy()D.getServletInfo()3.JSP的内置对象out的类型是()A.PrintWriterB.ServletOutputStreamC.JspWriterD.OutputStream4.下列关于请求转发的描述,正确的是()A.转发是客户端行为,会产生两次请求B.转发后浏览器地址栏会发生变化C.转发可以共享同一个request域中的数据D.转发不能跳转到当前项目以内的资源5.Session对象默认存储位置是()A.客户端浏览器B.服务器端C.数据库D.客户端硬盘6.以下JSP四个作用域中,作用范围最小的是()A.pageContextB.requestC.sessionD.application7.在Servlet中,处理GET请求的标准方法是()A.doHeadB.doGetC.doPostD.doPut8.EL表达式${pageContext.request.contextPath}的作用是()A.获取当前项目的虚拟根路径B.获取当前请求的完整URLC.获取当前Session的IDD.获取服务器的端口号9.过滤器Filter的初始化方法是()A.doFilterB.initC.destroyD.service10.要监听Web应用的启动和关闭事件,需要使用下列哪个监听器()A.ServletRequestListenerB.HttpSessionListenerC.ServletContextListenerD.ServletRequestAttributeListener11.以下HTTP状态码中,表示服务器内部错误的是()A.404B.403C.500D.30212.Servlet中url-pattern的匹配优先级从高到低排序,正确的是()A.精确匹配>前缀路径匹配>后缀扩展名匹配>默认匹配B.精确匹配>后缀扩展名匹配>前缀路径匹配>默认匹配C.默认匹配>精确匹配>前缀路径匹配>后缀扩展名匹配D.前缀路径匹配>精确匹配>后缀扩展名匹配>默认匹配13.下列关于Cookie的描述,错误的是()A.Cookie默认存储在客户端B.Cookie可以长期存储用户敏感登录信息C.Cookie默认生命周期是浏览器关闭后失效D.单个Cookie大小限制一般为4KB左右14.要在JSP页面中使用JSTL的核心循环标签,需要引入哪个标签库()A.<%@taglibprefix="c"uri="/jsp/jstl/core"%>B.<%@taglibprefix="fmt"uri="/jsp/jstl/fmt"%>C.<%@taglibprefix="fn"uri="/jsp/jstl/functions"%>D.<%@taglibprefix="sql"uri="/jsp/jstl/sql"%>15.下列哪个技术不属于JavaWeb的动态资源技术()A.JSPB.ServletC.HTMLD.Thymeleaf二、多项选择题(每小题3分,共15分,多选、少选、错选均不得分)1.下列属于JSP九大内置对象的有()A.outB.configC.pageD.driver2.下列关于重定向和转发的区别,描述正确的有()A.转发是服务器端行为,重定向是客户端行为B.转发只产生一次请求,重定向产生两次独立请求C.转发后地址栏不发生变化,重定向后地址栏发生变化D.转发可以共享request域数据,重定向不可以共享同一次请求的request域数据3.过滤器Filter的常见应用场景有()A.全站统一编码处理B.未登录用户访问拦截C.访问日志统一记录D.响应内容压缩处理4.下列关于MVC设计模式的描述,正确的有()A.M代表模型Model,负责封装业务数据和业务逻辑B.V代表视图View,负责页面展示、接收用户输入C.C代表控制器Controller,负责接收调度请求,协调模型和视图D.MVC模式可以降低代码耦合,提高项目的可维护性和可扩展性5.下列关于Session的描述,正确的有()A.不同用户的Session是相互隔离的B.Session默认服务器端有效期是30分钟(可通过配置修改)C.关闭浏览器后Session会立刻被服务器销毁D.Session可以用来持久化保存用户的登录状态信息三、简答题(每小题5分,共25分)1.简述Servlet的完整执行流程。2.对比说明Cookie和Session的核心区别。3.简述JSP四个作用域的范围和典型使用场景。4.简述过滤器Filter的完整工作流程。5.简述MVC模式在JavaWeb开发中的核心优势。四、综合编程题(共30分)1.(15分)请编写一个JavaWeb全站中文乱码处理过滤器,要求支持POST请求中文乱码处理,设置响应的字符编码,支持通过初始化参数自定义编码格式,过滤所有请求,给出完整代码和配置说明。2.(15分)实现简单的用户登录功能,要求:接收前端登录页面提交的用户名和密码,预设正确用户名密码为admin/123456,验证通过后将用户名存入Session域,重定向到系统主页;验证失败则将错误信息存入request域,转发回登录页显示错误信息。请写出核心Servlet代码。参考答案:一、单项选择题1.B2.D3.C4.C5.B6.A7.B8.A9.B10.C11.C12.A13.B14.A15.C二、多项选择题1.ABC2.ABCD3.ABCD4.ABCD5.ABD三、简答题1.Servlet的完整执行流程如下:(1)客户端浏览器发送HTTP请求到Tomcat服务器;(2)Tomcat服务器根据请求URL匹配对应的Servlet,若该Servlet未实例化,则调用Servlet构造方法创建实例,接着调用init()方法完成初始化(整个生命周期仅调用一次);(3)容器调用Servlet的service()方法,根据请求方法类型(GET/POST)调用对应的doGet()或doPost()方法处理业务逻辑,处理完成后生成响应内容;(4)服务器将响应结果组装后返回给客户端浏览器;(5)当Web应用停止、卸载或Servlet实例被容器移除时,容器调用Servlet的destroy()方法销毁Servlet实例,释放占用的资源。(得分点:覆盖初始化、服务处理、销毁三个核心阶段得5分,描述遗漏酌情扣分)2.Cookie和Session的核心区别如下:(1)存储位置不同:Cookie存储在客户端浏览器,Session存储在服务器端;(2)安全性不同:Cookie安全性较低,信息存储在客户端容易被窃取篡改,Session安全性较高,敏感信息不会暴露在客户端;(3)存储容量不同:单个Cookie大小限制约4KB,一个站点最多保存20个Cookie,Session没有容量上限,可存储更多业务数据;(4)生命周期不同:Cookie可以通过设置maxAge属性,长期保存在客户端硬盘,Session默认服务器端存活30分钟,关闭浏览器后客户端存储的SessionID消失,对用户来说Session失效,服务器端Session会等待超时后自动销毁;(5)服务器压力不同:Cookie存储在客户端,不占用服务器资源,Session存储在服务器端,大量并发访问会占用服务器内存资源。(答对5个核心区别得5分,少一个扣1分)3.JSP四个作用域的范围和使用场景如下:(1)pageContext(page域):作用范围仅当前JSP页面,仅在当前页面处理请求时有效,跳转后数据失效,使用场景:存储当前页面的临时变量;(2)request域:作用范围是一次完整的HTTP请求,请求转发属于同一次请求,可以共享域中数据,使用场景:一次请求内的参数、业务数据传递;(3)session域:作用范围是一次用户会话,同一个浏览器与服务器的多次请求共享同一份Session,不同浏览器会话相互隔离,使用场景:存储用户登录信息、会话级私有业务数据;(4)application域(ServletContext):作用范围是整个Web应用,所有用户、所有请求共享该域的数据,Web应用启动时创建,关闭时销毁,使用场景:存储全局共享数据,比如网站访问计数器、全局配置参数、共享的业务对象。(每个点1分,共5分)4.Filter的完整工作流程如下:(1)Web应用启动时,容器会扫描并初始化所有配置好的Filter,调用Filter的init()方法完成初始化,读取初始化参数,准备拦截资源;(2)当客户端发送的请求URL匹配Filter的拦截规则时,请求会被拦截进入当前Filter,调用doFilter()方法处理;(3)在doFilter方法中,符合放行条件的请求会调用FilterChain对象的doFilter方法,将请求传递给下一个过滤器或目标Servlet/JSP;不符合放行条件的请求会被直接拦截,转发或重定向到指定页面;(4)目标资源处理完成后,响应会原路返回,再次经过所有拦截的过滤器,过滤器可以对响应内容进行二次处理后再返回给客户端;(5)Web应用关闭时,容器调用Filter的destroy()方法销毁过滤器实例,释放占用的资源。(描述完整得5分,描述不完整酌情扣分)5.MVC模式在JavaWeb开发中的核心优势如下:(1)分层解耦:将模型、视图、控制器三层职责分离,各层只负责对应功能,降低代码耦合度;(2)可维护性好:修改页面视图不需要改动业务逻辑,修改业务逻辑不需要调整视图,便于后期功能迭代和bug修复;(3)可复用性好:同一个业务模型可以被多个视图复用,同一个控制器可以调度多个视图,减少重复代码,提高开发效率;(4)便于分工协作:前端开发人员专注于视图层开发,后端开发人员专注于业务逻辑开发,分工清晰,适合团队协作开发;(5)扩展性强:新增功能只需要对应开发对应层的代码,不需要改动原有核心结构,便于项目扩展。(答对5点得5分,合理描述即可得分)四、综合编程题1.完整代码如下:```javapackagecom.example.filter;importjavax.servlet.*;importjavax.servlet.annotation.WebFilter;importjavax.servlet.annotation.WebInitParam;importjava.io.IOException;//注解配置拦截所有请求,默认编码UTF-8@WebFilter(urlPatterns="/*",initParams=@WebInitParam(name="encoding",value="UTF-8"))publicclassCharacterEncodingFilterimplementsFilter{privateStringencoding;@Overridepublicvoidinit(FilterConfigfilterConfig)throwsServletException{//读取初始化参数的编码配置this.encoding=filterConfig.getInitParameter("encoding");}@OverridepublicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{//设置请求编码,解决POST请求中文乱码request.setCharacterEncoding(encoding);//设置响应类型和编码response.setContentType("text/html;charset="+encoding);response.setCharacterEncoding(encoding);//放行请求chain.doFilter(request,response);}@Overridepublicvoiddestroy(){this.encoding=null;}}```配置说明:如果使用Servlet3.0及以上版本,上述`@WebFilter`注解已经完成拦截配置,不需要额外修改web.xml;如果使用低版本Servlet,需要在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>```如果需要修改编码格式,只需要修改初始化参数的value即可,符合可扩展性要求。(得分点:实现Filter接口得3分,读取初始化参数得3分,设置请求和响应编码得5分,配置说明清晰得2分,共15分)2.核心Servlet代码如下:```javapackagecom.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{@OverrideprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//1.获取前端提交的用户名和密码Stringusername=request.getParameter("username");Stringpassword=request.getParameter("password");//2.验证用户名密码if("adm

温馨提示

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

评论

0/150

提交评论