javaweb期末考试题及答案
昨天监考完隔壁班的末考javaweb期末考,卷子收上来那一刻,试题我听见有个学生小声嘀咕:“Servlet生命周期那道题我背了三天,及答结果考的末考是过滤器链。” 这场景太熟悉了——每次考试,试题总有人押错宝。及答实际上,末考javaweb这门课的试题核心就三件事:请求怎么进来、数据怎么处理、及答页面怎么回去。末考抓住这条线,试题考试题目翻来覆去就是及答那几个变体。
先看最常见的末考题型:“描述一次完整的HTTP请求在Servlet中的处理过程”。标准答案分四步——客户端发请求,试题Tomcat解析URL找到对应Servlet,及答调用service()方法,再根据请求类型分发到doGet或doPost。但阅卷时我发现,能拿满分的学生都会额外提到过滤器在Servlet之前执行。这个细节很多人丢分,因为教材里过滤器放在最后一章,老师讲得也快。
另一道高频题是“session和cookie的区别”。别小看这题,它每年换个问法出现——比如“用户登录状态怎么保持”或者“购物车数据存哪里”。核心答三点:cookie存在客户端浏览器,session在服务器端;cookie有大小限制(4KB左右),session理论上没上限;cookie明文传输不安全,session相对安全。我见过最搞笑的答案是“session是cookie的爸爸”,虽然话糙,但理不糙——sessionId确实通过cookie传回客户端。
JSP的考题更直白,常考“JSP九大内置对象”。这题纯靠记忆,但有个记忆技巧:除了request、response、session、application这四大件,剩下五个——out、pageContext、config、page、exception——可以联想成“输出页面配置页面的异常”。有学生问我为什么要记这些,我反问他:“你写JSP时用过out.println()吗?那out就是内置对象,考试不考你,你连自己天天用的工具叫啥名都不知道。”
最阴险的题往往出在“转发和重定向的区别”。表面考概念,实际考代码理解。转发是request.getRequestDispatcher().forward(),地址栏不变,是一次请求;重定向是response.sendRedirect(),地址栏变化,是两次请求。有一次我让学生现场写代码,有人把转发写成了重定向,导致表单重复提交——这错误在真实项目里就是钱的问题,比如用户点支付按钮,重定向会导致扣款两次。
最后一道压轴题通常是“MVC在javaweb中的具体实现”。这题没标准答案,但阅卷有得分点:Model是JavaBean或Service层,View是JSP页面,Controller是Servlet。能拿高分的学生会主动提一嘴“用EL表达式和JSTL替代页面里的Java脚本片段”——这直接反映出他是否真正做过项目,而不是死背分层概念。
说到备考,我其实不建议刷太多题。把往年卷子翻出来,你会发现70%的分数集中在Servlet生命周期、请求响应对象、session管理、JSP语法、数据库连接池这五个模块。剩下30%属于“超纲但合理”——比如考你web.xml里filter-mapping的配置顺序,或者问你怎么用ajax和Servlet做局部刷新。这些题目看着新,本质还是那三件事:请求、处理、响应。
有个学生考完跟我说:“老师,这卷子上的题我都会做,就是时间不够。” 我问他哪道题花时间最多,他说是最后一道MVC设计题——因为他把Controller代码写了二十行,其实用注解@WebServlet三行就能解决。这提醒了所有备考的人:javaweb考试不是考你代码写得多,而是考你代码写得多聪明。













