JavaWeb测试题
【第四小组】【姓名:郑梦飞】
说明:
上方【组】填入所在的组,上方【姓名】填入自己的真实姓名。
答题方式,基于Word文档基础上答题
编程题可利用工具编程完以后,复制到该文档内。
答完以后,导成PDF。以姓名.PDF命名。上传至老师指定邮箱。
一、 选择题(共10题,每题2分)
1、Tomcat默认端口号(B)
A) 80
B) 8080
C) 3306
D) 6379
2、 在Servlet中四大作用域不包含(B)
A) request。
B) response
C) session
D) application
3、在Servlet中,当获取到session对象后,下面哪行代码可以销毁session(C)
A) session.clear()
B) session.remove()
C) session.invalidate()
D) session.stop()
4. 在Servlet中,向请求域中设置参数名为name,值为张三的写法(C)
A) response.setAttribute(“name”,”张三”);
B) response.setAttribute(“张三”,”name”);
C) request.setAttribute(“name”,”张三”);
D) request.setAttribute(“张三”,”name”);
5、以下哪个表达式可以产生一个0~7之间(含0,7)的随机整数?(C )
A) Math.floor(Math.random()*6)
B)Math.floor(Math.random()* 7)
C) Math.floor(Math.random()*8))
D) Math.ceil(Math.random()*8)
6、如果需要在JSP页面中引入web根目录下的名为util文件夹中的checkLogin.jsp时,以下代码正确的是(A )
A) <% include file=”util/checkLogin.jsp”%>
B) <%= include file=”util/checkLogin.jsp”%>
C)<%! include file=”util/checkLogin.jsp”%>
D)< include file=”util/checkLogin.jsp”%>
7、使用response对象进行重定向时,使用的方法是(C)
A)getAttribute()
B)setContentType()
C) sendRedirect()
D)setAttribute()
8、以下关于session对象说法错误的是(C)。
A)session对象是用户首次访问服务器时由服务器自动为其创建的
B) 在JSP中可以通过pageContext对象获得session对象
C) 只有访问JSP、Servlet等程序时才会创建session对象
D) 只访问HTML、IMAGE等静态资源并不会创建session对象
9、获取本地所有Cookie的方法是(A)
A)request.getCookies()
B)request.getCookie()
C)response.getCookies()
D)response.getCookies()
10、 servlet中request.getParameter(String)得到的数据,其类型是(C)
A)Double
B)int
C) String
D)Integer
二、 填空题(共5题,每题2分)
1、在实际编程中,不需要编写service()方法,只需编写相应的___doGet()________和____doPost()________方法。
2、过滤器执行doFilter( )方法时,会自动获得___过滤器链_________对象,使用该对象的doFilter()方法可继续调用下一级过滤器。
3、JSP页面的字符编码方式默认是_____ISO8859-1_______________。
会话跟踪技术有 Cookie , Session
在servlet中,使用HttpServletRequest.setCharacterEncoding("utf-8")设置请求的字符集。
三、 判断题(共5题,每题2分)
1、不能用一个page指令指定多个属性的取值。(F)
2、JSP内置对象是指不用声明就可以在JSP页面的脚本部分使用的对象。(T)
3、session对象的存在期限是指浏览器未关闭之前及默认时间内。(T)
4、过滤器是特殊的Servlet。(T)
5、仅通过pageContext对象不能访问到本页面中所有的其他对象。(T)
四、简答题(共5题,每题4分)
1、 写出JSP的九大内置对象以及其对应的含义。
Requset: request对象是javax.servlet.httpServletRequest类型的对象。
Response:response代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。
Session:一个会话中设置的内容,只要与此项目相关的页面都可以访问。关了浏览器就不见了。
Out—JspWriter:向客户端去输出内容。
Page:当前Jsp页面本身,实际上是一个对象,是当前jsp页面转换成.java类的对象。
Application:当前应用。
PageContext:域对象。page对象代表JSP本身,只有在JSP页面内才是合法的
Config:配置,servlet初始化的时候用到的参数,config来获取。
Exception:异常,前提是当前jsp是一个错误页。
2、JSP的include标签和include指令的区别。
从效果上来书没区别。
Include指令是把两个页面合成一个jsp,再编译成.class。
Jsp:include标签是N个JSP页面单独编译.class之后,再进行合并。
3、cookie和session的区别。
Cookie保存在客户端,Session保存在服务端
Cookie如果不设置最大时效,生命周期和session相同,关闭浏览器cookie失效。Session关闭浏览器则失效。Session可以利用cookie和JSESSIONID来持久化存储session,根据JSESSIONID来找到之前创建的。Session,cookie(”JSESSIONID”,session.getId()),
把cookie保存在客户端。
4、JSP和servlet的区别
JSP就是servlet
JSP更加侧重于视图的展示,servlet更加注重逻辑的处理。
5、请求转发与重定向的异同
请求转发是服务器行为、重定向是客户端浏览器行为
请求转发是request对象调用方法、重定向是response对象调用方法
请求转发只有一次请求所以可以实现request域对象中的数据共享,而重定向是多次请求、多次响应
请求转发的效率要高于重定向
请求转发url地址栏不变,而重定向会发生变化
既然请求转发是服务器内部的行为,所以只能访问服务器内部资源!而重定向既然是浏览器行为,地址栏会变,所以可以访问服务器外部资源!
如果既想要实现路径跳转,又需要实现数据共享,使用请求转发!
如果只是纯粹的想要实现路径跳转,我们可以使用重定向!
五、编程题(共2题,每题20分)
1、利用cookie实现7天内自动登录案例。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<script>location.href="index.do";
</script></body>
</html> package com.jsoft.test;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;@WebServlet("/index.do")
public class IndexServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {Cookie[] cookies = request.getCookies();if(cookies!=null&&cookies.length>0){for (Cookie cookie : cookies) {if(cookie.getName().equals("islogin")&&cookie.getValue().equals("1")){//如果进入此if,说明登陆过!response.sendRedirect("main.html");return;}}}response.sendRedirect("login.html");}
}<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>主页</h1>
</body>
</html> package com.jsoft.test;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;@WebServlet("/login.do")
public class LoginServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String username = request.getParameter("username");String password = request.getParameter("password");if(username.equals("admin")&&password.equals("123456")){//登录成功,新建一个cookie并放入到cookieCookie cookie=new Cookie("islogin","1");cookie.setMaxAge(7*24*60*60);response.addCookie(cookie);//登陆成功,跳转到主页response.sendRedirect("main.html");}}
}2、编写登录案例以及登录过滤器,包含登录以及安全退出功能。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>登陆成功!</h1></body>
</html> package com.jsoft.test.filter;import javax.servlet.*;
import javax.servlet.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.Objects;@WebFilter("/success.do")
public class HelloFilter implements Filter {@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterchain) throws ServletException, IOException {HttpServletRequest request=(HttpServletRequest) servletRequest;HttpServletResponse response=(HttpServletResponse) servletResponse;HttpSession session=request.getSession();Object username=session.getAttribute("username");if(Objects.nonNull(username)){filterchain.doFilter(request,response);return;}response.sendRedirect("login.html");}
}
相关文章:
JavaWeb测试题
【第四小组】【姓名:郑梦飞】说明:上方【组】填入所在的组,上方【姓名】填入自己的真实姓名。答题方式,基于Word文档基础上答题编程题可利用工具编程完以后,复制到该文档内。答完以后,导成PDF。以姓名.PDF命…...
Java EE|TCP/IP协议栈之数据链路层协议详解
文章目录一、数据链路层协议感性认识数据链路层简介以太网简介特点二、以太网数据帧格式详解帧头不同类型对应的载荷三、关于MTU什么是MTUMTU有什么作用ip分片(了解)参考一、数据链路层协议感性认识 数据链路层简介 从上图可以看出 , 在TCP/…...
Lighthouse组合Puppeteer检测页面
如上一篇文章lighthouse的介绍和基本使用方法结尾提到的一样,我们在实际使用Lighthouse检测页面性能时,通常需要一定的业务前置条件,比如最常见的登录操作、如果没有登录态就没有办法访问其他页面。再比如有一些页面是需要进行一系列的操作&a…...
【C++】仿函数、lambda表达式、包装器
1.仿函数 仿函数是什么?仿函数就是类中的成员函数,这个成员函数可以让对象模仿函数调用的行为。 函数调用的行为:函数名(函数参数)C中可以让类实现:函数名(函数参数)调用函数 自己写一个仿函数: 重载()运算符 cla…...
二叉树(二)
二叉树——堆存储1.堆的初始化2. 堆的销毁3.堆的插入4.堆的删除5.堆的打印6.取堆顶的数据7.堆的数据个数8.堆的判空9.堆的构建10.向上调整11.向下调整12.使用堆进行排序13.交换14.完整代码🌟🌟hello,各位读者大大们你们好呀🌟&…...
爬虫知识简介
爬虫简介 爬虫与网络请求 网络爬虫是一个自动提取网页的程序,一般都分为3步:数据爬取,数据解析,数据存储。数据爬取就是模拟浏览器发送请求,所以需要对网络请求HTTP/HTTPS有一定了解 相关概念: H…...
2023年全国最新会计专业技术资格精选真题及答案6
百分百题库提供会计专业技术资格考试试题、会计考试预测题、会计专业技术资格考试真题、会计证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 11.下列各项中,企业根据本月“工资费用分配汇总表”分配所列财务部门…...
同时学习C++语言和C#语言好吗?
同时学习两门编程语言并不是不好的选择,尤其是对于初学者而言,这样做能够帮助你更好地理解编程语言的基本概念和原则。C和C#都是常用的编程语言,它们都有各自的优点和用途。同时学习这两门语言能够让你更好地理解它们之间的异同点,…...
Android8,source与lunch流程解析
source 流程 # build/make/envsetup.sh ---- # Execute the contents of any vendorsetup.sh files we can find. for f in test -d device && find -L device -maxdepth 4 -name vendorsetup.sh 2> /dev/null | sort \ test -d vendor && find -L vendo…...
大数据NiFi(二十):实时同步MySQL数据到Hive
文章目录 实时同步MySQL数据到Hive 一、开启MySQL的binlog日志 1、登录mysql查看MySQL是否开启binlog日志 2 、开启mysql binlog日志 3、重启mysql 服务,重新查看binlog日志情况 二、配置“CaptureChangeMySQL”处理器 1、创建“…...
mac 如何设置 oh my zsh 终端terminal 和添加主题powerlevel10k
Oh My Zsh 是什么 Oh My Zsh 是一款社区驱动的命令行工具,正如它的主页上说的,Oh My Zsh 是一种生活方式。它基于 zsh 命令行,提供了主题配置,插件机制,已经内置的便捷操作。给我们一种全新的方式使用命令行。 **Oh …...
王道《操作系统》学习(一)——计算机系统概述
1.1 操作系统的概念、功能 1.1.1 操作系统的概念(定义) (1)操作系统是系统资源的管理者 (2)向上层用户、软件提供方便易用的服务 (3)是最接近硬件的一层软件 1.1.2 操作系统的功能…...
什么是自适应平台服务?
总目录链接==>> AutoSAR入门和实战系列总目录 文章目录 什么是自适应平台服务?1.1 自适应平台服务包含哪些功能簇呢?1.1.1 ara::sm 状态管理 (SM)1.1.2 ara::diag 诊断管理 (DM)1.1.3 ara::s2s 信号到服务映射1.1.4 ara::nm 网络管理 (NM)1.1.5 ara::ucm 更新和配置管…...
QML Image and Text(图像和文字)
Image(图片) 图像类型显示图像。 格式: Image {source: "资源地址" } source:指定资源的地址 自动检测文件拓展名:source中的URL 指示不存在的本地文件或资源,则 Image 元素会尝试自动检测文件…...
图解LeetCode——剑指 Offer 25. 合并两个排序的链表
一、题目 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 二、示例 2.1> 示例1: 【输入】1->2->4, 1->3->4 【输出】1->1->2->3->4->4 限制: 0 < 链表长度 < 1000 三、…...
2023年全国最新安全员精选真题及答案7
百分百题库提供安全员考试试题、建筑安全员考试预测题、建筑安全员ABC考试真题、安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 11.(单选题)进入盾构机土仓进行维修工作时,需经&am…...
TypeScript笔记-进行中
学习来源: 本笔记由尚硅谷教学视频整理而来 文章目录学习来源:一.TS简介TypeScript是什么TypeScript增加了什么二环境搭建安装nvm环境搭建二.TypeScript中的基本类型类型声明类型类型示例代码三.编译配置自动编译文件自动编译整个项目四.使用webpack打包…...
阅读HAL源码之重点总结
HAL库的封装特点 HAL封装中有如下特点(自己总结的): 特定外设要设置的参数组成一个结构体; 特定外设所有寄存器组成一个结构体; 地址基本都是通过宏来定义的,定义了各外设的起始地址,也就是对应…...
常见的http请求响应的状态码
常见的http请求响应的状态码 一些常见的状态码为: 200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务不可用 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码。 代码 说明 100 (继续)…...
UML类图中的类图、接口图、关联、聚合、依赖、组合概念的解释
文章目录UML类图依赖和关联的主要区别UML类图 类:类有三层结构 第一层:类的名字第二层:类的属性第三层:类的方法 接口:接口跟类相似,不过多了一个<<interface>>来表示它是一个接口 第一层&a…...
手把手教你:没有ST-LINK,如何用USB给STM32烧录程序(DFU模式保姆级教程)
零成本玩转STM32:USB-DFU模式烧录全攻略 当你深夜调试STM32项目时,突然发现手边没有ST-LINK,而快递至少要等三天——这种场景我经历过太多次。直到发现DFU模式这个隐藏技能,所有问题迎刃而解。本文将分享如何仅用一根USB线完成固件…...
Docker多阶段构建与镜像优化实战
Docker多阶段构建与镜像优化实战:从1GB到50MB的瘦身之旅 🐳 镜像太大?构建太慢?安全隐患太多?本文通过真实 Node.js + Python 项目,手把手教你用多阶段构建把 Docker 镜像从 1GB 压缩到 50MB,附带完整的优化策略和踩坑指南。 一、为什么你的 Docker 镜像这么大? 很多…...
2026年市面上的培训机构管理系统对比,谁才是性价比之王
教务是培训机构的 “心脏”,而排课是教务最核心、最耗时、最容易出错的环节。传统人工排课:打开 Excel,手动填教师、教室、学员、时间,反复核对冲突,排一周课表要 1–3 天,还经常出现:老师时间撞…...
AI图像编辑中的性别擦除现象与视觉公平性测试
1. 项目概述:当AI“擦除”男性面孔时,我们到底在测试什么?“AI Erases Men Too: A Visual Test of Bias Across Four Leading Tools”——这个标题乍看像一则科技媒体的警示快讯,但背后是一次扎实、可复现、有明确方法论支撑的视觉…...
AI创业从模型竞赛到场景落地:2026年生态爆发与实战指南
1. 从HumanX 2026归来:我眼中的AI创业生态爆发图景刚从HumanX 2026的会场回来,整个人还沉浸在那种高速迭代、热气腾腾的氛围里。如果你问我最大的感受是什么,我会毫不犹豫地说:AI创业的“场景化落地”竞赛,已经进入了白…...
AI工作流自动化实践:Claude数据同步工具架构与实现
1. 项目概述与核心价值 最近在折腾AI应用集成的时候,发现一个挺有意思的项目,叫 cam901051/claude-sync 。乍一看这个标题,你可能会有点懵,这到底是干嘛的?简单来说,这是一个旨在实现Claude(…...
我们给大模型接上了CI/CD流水线,测试通过率从60%飙升到95%
在软件测试领域,质量保障体系的进化从未停歇。当大语言模型(LLM)从实验性项目走向生产环境,测试团队面临一个尖锐的矛盾:模型迭代速度以天甚至小时计,而传统的人工评估与回归测试却需要数周。我们团队在将大…...
动手写一个 JVM 调优学习项目:6 个真实场景带你掌握性能优化
动手写一个 JVM 调优学习项目:6 个真实场景带你掌握性能优化 项目地址: https://gitee.com/jiucenglou/jvm-tuning-lab 技术栈: Java 8 Maven 适合人群: Java 开发者、性能调优初学者、面试准备者 🤔 为什么写这个项目? 在实际开发和面试中…...
5分钟彻底解决Windows软件DLL缺失问题:VisualCppRedist AIO完整修复方案
5分钟彻底解决Windows软件DLL缺失问题:VisualCppRedist AIO完整修复方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过新安装的软…...
Vulkan学习笔记
顺序很重要:#define 必须在 #include <GLFW/glfw3.h> 之前出现,否则不起作用。作用:当 GLFW 的头文件看到这个宏被定义后,它就会知道你需要 Vulkan 支持,并自动执行 #include <vulkan/vulkan.h>࿰…...
