javaweb:--->Servlet技术
什么是Servlet:
Servlet是基于Java语言的Web服务器端编程技术,按照Java EE规范定义,Servlet是运行在Servlet容器中的Java类,它能处理Web客户的HTTP请求,并产生HTTP响应。

Servlet对请求的处理和响应过程:
- 接收HTTP请求;
- 取得请求信息,包括请求头和请求参数数据;
- 调用其他Java类方法,完成具体的业务功能;
- 实现到其他Web组件的跳转(包括重定向或请求转发);
- 生成HTTP响应(包括HTML或非HTML响应)。
Servlet 3.0 随着Java EE 6规范一起发布,该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化Web应用的开发和部署,新特性如下:
注解支持、可插性支持、动态配置、异步处理
Servlet 4.0是对Servlet 协议的一次大改动,关键之处在于对HTTP2.0的支持,
相关新特性如下:
请求/响应复用(Request/Response multiplexing)
流的优先级(Stream Prioritization)
服务器推送(Server Push)
HTTP1.1升级(Upgrade from HTTP 1.1)
Servlet容器:
Servlet运行在服务器端,由Servlet容器所管理,Servlet容器也叫Servlet引擎,是Web服务器或应用服务器的一部分,用于在发送的请求和响应之上提供网络服务、解码基于MIME的请求、格式化基于MIME的响应.
目前主流的Web服务器Tomcat(包含Servlet容器)对Servlet版本的支持关系:

Servlet的创建过程
1、创建Java Web项目
2、创建Servlet
3、实现doPost()或doGet()方法
4、声明配置Servlet
3.x版本以上规范中使用注解声明配置
2.5版本规范中采用web.xml配置文件声明配置
5、部署运行Servlet
Servlet API包含两个软件包:
javax.servlet包
定义了所有Servlet类都必须实现或继承的通用接口和类
javax.servlet.http包
定义了采用HTTP协议通信的HttpServlet类。

Servlet接口规定了必须由Servlet类实现并且由Servlet引擎识别和管理的方法集;Servlet接口的基本目标是提供与Servlet生命周期相关的方法,如:init()
、service()和destroy()等。

GenericServlet概述
GenericServlet是一个通用的协议无关的Servlet,它实现了Servlet和
ServletConfig接口。
继承自GenericServlet的Servlet应该要覆盖service()方法。

HttpServlet抽象类:
HttpServlet指能够处理HTTP请求的Servlet,它在原有Servlet接口上添加了对HTTP协议的处理,它比Servlet接口的功能更为强大。
HttpServlet作为HTTP请求的分发器,除了提供对GET和POST请求的处理外,对于其他请求类型也提供了相应的处理方法(如:doHead()、doOptions()、doDelete()、doPut()、doTrace())
HttpServlet类中的主要方法及描述:

Servlet声明配置:
- Servlet的声明配置信息主要包括Servlet的描述、名称、初始参数、类路径以及访问地址等。
- 注解@WebServlet会在程序部署时被Servlet容器处理,容器将根据具体的属性配置把相应的类部署为Servlet;
- 注解@WebServlet的属性及描述
了解:Servlet2.5
Servlet生命周期:
Servlet生命周期是指Servlet实例从创建到响应客户请求,直至销毁的过程。Servlet程序本身不直接在Java虚拟机上运行,由Servlet容器负责管理其整个生命周期。
Servlet生命周期可分为四个阶段:实例化、初始化、处理请求、销毁。
Servlet容器在如下时刻加载和实例化一个Servlet:
在Servlet容器启动后,客户首次向Servlet发出请求,Servlet容器会判断内存中是否存在指定的Servlet对象,如果没有则创建它,然后根据客户的请求创建HttpRequest、HttpResponse对象,从而调用Servlet 对象的service方法。在为Servlet配置了自动装入选项(load-on-startup)时,服务器在启动时会自动装入此Servlet。

Servlet的多线程并发问题:servlet在Tomcat中是以单例模式存在的
处理超链接请求数据:
<a href=”URL地址?参数=参数值[&参数=参数值...]”>链接文本</a>
处理超链接请求数据:

处理Form表单请求数据:
处理Form表单请求数据:

重定向:
重定向是指由原请求地址重新定位到某个新地址,原有的request请求失效,客户端看到的是新的request请求返回的响应结果,客户端浏览器地址栏
变为新请求地址。

请求转发:
请求转发是指将请求再转发到其他地址,转发过程中使用的是同一个request请求,转发后浏览器地址栏内容不变

请求转发与重定向数据传递:

请求转发与重定向的区别:
重定向和请求转发都可以让浏览器获得另外一个URL所指向的资源,但两者
的内部运行机制有很大的区别:
请求转发只能将请求转发给同一个Web应用中的组件;而重定向不仅可以重定向到当前应用程序中的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,或者重定向到其他站点的资源;
重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;而请求转发过程结束后,浏览器地址栏保持初始的URL地址不变;
请求转发调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个访问请求和响应过程;而重定向调用者与被调用者使用各自的request对象 和response对象,它们属于两个独立的访问请求和响应过程。
不代表方法的结束,下面的代码还会继续执行,注意在转发或重定向的语句后面不要在编写代码。
作者:隔壁老郭
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
Java入门到入坟
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南