servlet注解开发
文章目录
- servlet注解开发
- 内容回顾
- 响应对象 HttpServletResponse
- 重定向与请求转发
- ServletConfig
- 简介
- 案例
- ServletContext
- 简介
- 案例
- Servlet 注解开发
- 简介
- 注解使用
- 案例
- @WebServlet 注解详细参数
- 综合的增删改查案例
- 登录注册功能
servlet注解开发
内容回顾
响应对象 HttpServletResponse
针对页面发送的请求做出数据的响应,向页面输出信息,包括文本、图片、视频等格式的文
件;
响应的内容分为三部分:响应行、响应头、响应体
① 响应行主要是关于协议和状态码的描述
② 响应头主要是用来进行响应头信息的设置
③ 响应体主要是响应给页面数据
重定向与请求转发
实现页面跳转的两种方式;重定向是客户端行为,请求转发时服务端行为;
重定向客户端的请求地址会发生变化,请求转发客户端请求地址不会发生变化;
重定向客户端至少会有2次请求发送,请求转发客户端只有一次请求发送;
重定向在页面跳转时不能携带数据,因为两个请求 request 是不一样的;
请求转发可以在一次转发内进行数据的传递,多次转发则不允许携带数据;
请求转发是在服务器端使用 request 对象来实现;
转发的方法:getRequestDispatcher("请求/页面").forward(req,resp)
重定向也在在服务端使用 response 对象来实现;
重定向的方法:sendRedirect("请求/页面")
ServletConfig
简介
跟请求对象/响应对象一样,也是在容器初始化时被创建好的对象;
该对象可用于容器初始化时 servlet 辅助信息的设置;
例如:编码格式的设置、servlet 在执行时需要的一些数据。
在 web.xml 中 servlet 标签下可以进行 ServletConfig 辅助信息的设置
格式:
<servlet>
<servlet-name>**</servlet-name>
<servlet-class>**</servlet-class>
<init-param>
<param-name>key</param-name>
<param-value>value</param-value>
</init-param>
<init-param>
<param-name>key1</param-name>
<param-value>value1</param-value>
</init-param>
</servlet>
ServletConfig 对象和 Servlet 类是一对一的关系;只有 web.xml 配置文件中配置了
<init-param></init-param> 标签的 Servlet 类才能后进行ServletConfig 对象
中参数的获取;不能被其他 Servlet 类共享;
ServletConfig 对象获取,可以在 init(ServletConfig config) 方法中获取,也
可以 Servlet 类其他方法中通过 getServletConfig() 进行获取;
再使用方法 getInitParameter("key") 进行对象中数据的获取;如果是多个参数的获取
getInitParameterNames()
案例
jsp 页面

web.xml

servlet 类

ServletContext
简介
类似于 ServletConfig;只是作用范围比 ServletConfig 更大;ServletConfig 是
针对某一个 Servlet 类进行初始参数的设置;
ServletContext 是针对所有的 Servlet 类进行初始参数的设置;

ServletContext 参数的设置依然在 web.xml 中进行;
使用 <context-param></context-param> 标签进行设置;
格式:
<context-param>
<param-name>key</param-name>
<param-value>value</param-value>
</context-param>
注意:ServletContext 是全局的,所以 <context-param> 标签需要和所有 servlet
标签同级;
ServletContext 对象中参数的获取依然使用 getInitParamter(key) 方法 ;如果是
多个参数的获取用 getInitParameterNames()
案例
jsp 页面

web.xml

servlet 类

Servlet 注解开发
简介
Servlet 注解开发实际上就是使用 Java 注解替换 web.xml 配置文件;Servlet 注解
(@WebServlet)开发需要 Servet 版本 3.0 以上;
注解使用
传统的配置文件使用需要在 web.xml 中编写请求与Servlet关联的配置信息

如果使用注解模式,配置文件就可以简略不写

@WebServlet("/servletAnnotation") 注解就相当于是 web.xml 中的配置信息描
述;
但是需要注意,注解和配置文件不能共存,意思就是在 web.xml 中如果写了配置信息,那么
该 Servlet 类就不能使用注解;反之,如果某个 Servlet 类使用了注解的模式进行开
发,那么在 web.xml 中就不能有该 Servlet 类配置信息
案例
注解开发案例
jsp 页面

Servlet 类

运行结果

@WebServlet 注解详细参数
如果 @WebServlet("/servletAnnotation") 注解内部只有一个内容,那么该内容
"/servletAnnotation" 表示该 Servlet 要拦截的请求地址;
该注解内部有更多的关于请求参数、容器加载时机等属性的设置;

详细的注解模式参数使用

综合的增删改查案例
登录注册功能
① 创建一个 user 表,记录用户的账号密码以及注册的时间
② 编写注册登录的页面
③ 进行注册登录的功能实现
项目结构

user 表

登录页面

注册页面

相关文章:
servlet注解开发
文章目录servlet注解开发内容回顾响应对象 HttpServletResponse重定向与请求转发ServletConfig简介案例ServletContext简介案例Servlet 注解开发简介注解使用案例WebServlet 注解详细参数综合的增删改查案例登录注册功能servlet注解开发 内容回顾 响应对象 HttpServletRespon…...
mysql一联合主键
联合主键就是用2个或2个以上的字段组成主键。用这个主键包含的字段作为主键,这个组合在数据表中是唯一,且加了主键索引。 可以这么理解,比如,你的订单表里有很多字段,一般情况只要有个订单号bill_no做主键就可以了&…...
openpnp - 判断吸嘴是否指定了正确的旋转轴
文章目录openpnp - 判断吸嘴座是否指定了正确的旋转轴概述笔记吸嘴单独矫正的时候Calibrate precise camera ↔ nozzle N1 offsets.ENDopenpnp - 判断吸嘴座是否指定了正确的旋转轴 概述 如果没有指定吸嘴座的正确旋转轴, 会因为对应吸嘴该旋转时不旋转, 而是另外一个空闲的吸…...
【办公类-19-03】办公中的思考——Python批量统一文件名的序号(保教主任整理打印文件)
背景需求:为迎接督导检查,保教主任从各条线收集文本资料。并在每个文件名称前手动编号。但是她嘀咕道:”为什么两套资料放在一个文件里就不是按照数字序号排序?,有的是1X-,有的是40X,看起来很乱…...
MySQL约束
约束约束总结约束 1、概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。 2、目的:保证数据库中数据的正确、有效性和完整性。 3、分类: 注意:约束是作用于表中字段上的,可以在创建表/修改表…...
x86 平台利用 qemu-user-static 实现 arm64 平台 docker 镜像的运行和构建
文章目录[toc]关于 docker 版本查看是否开启 experimental 功能开启 experimental 功能查看当前环境平台拉取一个 arm 平台的容器运行一个 arm 平台的容器整一个 qemu-user-static注册可支持的架构解释器尝试启动 arm64 镜像尝试启动 ppc64le 镜像后台运行 arm64 容器build 一个…...
找工作经验分享
好的简历的特点:简洁:不要使用花里胡俏的简历模板,一般就是一行行写下来那种就行主次分明:一定要有重点,让面试了解你强项是什么首先当然是突出技术,不要花大批篇幅在个人信息、兴趣爱好等,重点…...
C语言学习之路--操作符篇,从知识到实战
目录一、前言二、操作符分类三、算术操作符四、移位操作符1、左移操作符2、右移操作符五、位操作符拓展1、不能创建临时变量(第三个变量),实现两个数的交换。2、编写代码实现:求一个整数存储在内存中的二进制中1的个数。六、赋值操…...
【华为OD机试2023】端口合并 C++ Java Python
【华为OD机试2023】端口合并 C++ Java Python 前言 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议! 本文解法非最优解(即非性能最优),不能保证通过率。 Tips1:机试为ACM 模式 你的代码需要处理输入输出,input/cin接收输入、…...
C++常用头文件整理
#include <iostream> 输入输出流,调用该函数使用cin,cout#include <iomanip> mainp是mainpular(操纵器)的缩写,可以调用一些函数,如fixed()<<setprecision()等#include <cmath> 调用数学函数#include &l…...
Linux内核4.14版本——drm框架分析(2)——connector分析
目录 1. drm_connector结构体 1.1 struct list_head head 1.2 struct drm_mode_object base 1.3 base.properties 1.4 uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER] 1.5 struct drm_encoder *encoder 1.6 struct list_head probed_modes 1.7 struct list_head mod…...
dev GridControl 按条件纵向合并单元格
dev GridControl 按条件纵向合并单元格 gridView5.OptionsView.AllowCellMerge true; gridView5.CellMerge gridView5_CellMerge; //自定义合并单元格监听事件void gridView5_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e){int rowHandle1…...
aws eks 集群初始化过程中pause容器的启动逻辑
eks集群默认策略在磁盘使用量达到threshold时会清除镜像,其中pause镜像也可能会被清除 https://aws.amazon.com/cn/premiumsupport/knowledge-center/eks-worker-nodes-image-cache/ pause容器能够为pod创建初始的名称空间,pod的内的容器共享其中的网络空…...
Numpy专栏目录(长期更新)
文章目录数组基础文件与字符串多项式分布Numpy绝对可以说是支撑Python地位的最重要的包了,几乎所有能叫出名的Python计算库,都不可避免地调用了Numpy,Numpy官网也列出了一些,大致如下图这样,堪称科学计算领域的瑞士军刀…...
English Learning - L2 第1次小组纠音 [ɑː] [ɔː] [uː] 2023.2.25 周六
English Learning - L2 第1次小组纠音 [ɑː] [ɔː] [uː] 2023.2.25 周六共性问题分析大后元音 [ɑː]大后元音 [ɔː]后元音 [uː]我的发音问题后元音 [uː]大后元音 [ɑː] 和 [ɔː]纠音过程第一次第二次第三次共性问题分析 大后元音 [ɑː] 嘴唇过于松散,没…...
博客系统程序(页面设计)
咱们学习javaEE的目的就是完成一个网站.在当前学习的基础上,已经可以完成我们的博客系统的页面的设计了!!!首先我们要进行统筹规划:首先我们的博客页面将会有4个页面:1.博客列表页2.博客详情页显示一个博客的具体内容:3.登录页就是用户输入用户名和页面的地方4.博客编辑页发布新…...
【死锁的排查工具有哪些?】
死锁是指两个或多个进程(线程)相互等待对方持有的资源,导致无法继续执行的情况。在并发编程中,死锁是一个常见的问题,需要使用专门的工具来进行排查和解决。 以下是常用的死锁排查工具: jstack:…...
JUC包:CyclicBarrier源码+实例讲解
1 缘起 上篇文章讲到了CountDownLatch:https://blog.csdn.net/Xin_101/article/details/129116170 作为同系的佼佼者,不得不提CyclicBarrier, 设计理念相似,都是多线程等待,但是,应用的技术以及功能不同&a…...
Trace、Metrics、Logging 选型
背景分布式追踪的起源自从微服务的兴起开始,整个系统架构开始变得极为庞大和复杂,但是服务之间的调用关系,调用消耗时间等等信息却依然是半黑盒的状态。为了能够将调用的链路进行串联,将系统的各种指标数据展示出来以使得系统的链…...
Java验证码
文章目录一、验证码概述二、Java原生验证码1、随机数字验证码2、随机数字和字母验证码3、运算验证码三、引入三方验证码一、验证码概述 验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全…...
Qwen3.5-9B-AWQ-4bitWeb界面使用教程:上传/提问/防重复提交/结果解析全流程
Qwen3.5-9B-AWQ-4bit Web界面使用教程:上传/提问/防重复提交/结果解析全流程 1. 认识Qwen3.5-9B-AWQ-4bit模型 Qwen3.5-9B-AWQ-4bit是一个强大的多模态AI模型,它能够同时理解图片和文字。想象一下,你有一个既会看图片又会回答问题的智能助手…...
百川2-13B-Chat-4bits应用场景:开发者日常——代码审查、错误诊断、技术文档润色实战
百川2-13B-Chat-4bits应用场景:开发者日常——代码审查、错误诊断、技术文档润色实战 1. 引言:当大模型成为你的开发伙伴 想象一下这个场景:深夜,你盯着屏幕上那段运行了三次、报错信息却完全不同的代码,咖啡已经凉透…...
Wan2.2-I2V-A14B企业应用:法律文书解读AI动画视频生成系统
Wan2.2-I2V-A14B企业应用:法律文书解读AI动画视频生成系统 1. 系统概述与核心价值 法律行业每天需要处理大量文书材料,传统的人工解读和可视化呈现方式效率低下且成本高昂。Wan2.2-I2V-A14B法律文书解读AI动画视频生成系统正是为解决这一痛点而生。 这…...
中国信通院启动公文写作智能体评估,推动技术落地与规范发展
【导语:中国信通院在前期《智能体技术要求与评估方法》研制基础上,开展公文写作智能体技术规范编制,并联合多家单位共同参与。现正式启动首批评估工作,成果计划于2026年6月发布,将推动该技术落地与规范发展。】联合编制…...
深入理解 MySQL 事务:从基础到实战,一篇吃透
在开发和运维 MySQL 数据库的过程中,事务(Transaction) 是绕不开的核心知识点,它是保证数据库数据安全、一致、可靠的基石。无论是电商下单、银行转账、支付结算,还是日常的业务数据操作,都离不开事务的支撑…...
HuggingFace大语言模型实战:如何用Python脚本批量翻译YouTube字幕(含环境配置避坑指南)
HuggingFace大语言模型实战:Python脚本批量翻译YouTube字幕全攻略 当你在YouTube上发现一段精彩的英文技术讲座,或是需要研究某个外语行业报告时,自动翻译工具能大幅提升信息获取效率。本文将带你用HuggingFace生态构建一个本地化翻译工作流&…...
MongoDB:如何构建“数据回收站“,防止人为误删数据(延迟节点)
更多内容请见: 《深入掌握MongoDB数据库》 - 专栏介绍和目录 一、引言:数据误删的现实挑战 在企业级数据库系统中,人为误删数据是导致业务中断的常见原因。根据2023年数据库安全报告,37%的数据丢失事件是由人为错误引起的,其中误删除操作占主要部分。MongoDB作为企业级No…...
抖音批量下载神器:免费一键收藏创作者全部作品
抖音批量下载神器:免费一键收藏创作者全部作品 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音…...
【NX二次开发】cam对象类型
//此函数的功能是打印当前坐标系试图的所有坐标系名称 static void geom_list_name(tag_t group_tag) { //ask_member_list int count=0; tag_t *list=NULL; //ask_name char name[UF_OBJ_NAME_LEN+1]; //ask_type_and_subtype int type=0; in…...
独立站页面结构优化的注意事项是什么_独立站 SEO 与品牌建设的关系是什么
独立站页面结构优化的注意事项是什么 在当今的数字化时代,独立站(独立网站)已经成为个人品牌和企业展示自我、推广产品和服务的重要平台。单凭一个美观的独立站,难以在竞争激烈的网络环境中脱颖而出。因此,独立站页面…...
