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对象,它们属于两个独立的访问请求和响应过程。
      不代表方法的结束,下面的代码还会继续执行,注意在转发或重定向的语句后面不要在编写代码。

 

 

 

 

 

 

posted on   白嫖老郭  阅读(96)  评论(0编辑  收藏  举报

编辑推荐:
· 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代理技术深度解析与实战指南

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示