浅析 HttpServlet
本文包含内容Servlet 的处理流程和任务javax.servlet.http.HttpServlet 包WebServlet(…) 注解在 javax.servlet 包中定义了所有的 Servlet 都必须实现的或扩展的通用接口和类javax.servlet.http. 包中定义了采用 HTTP 通信协议的 HttpServlet 类。Servlet 是运行在带有支持 Java Servlet 规范的解释器的 web 服务器上的 Java 类。Servlet 的 TomcatJspEL specWebSocketApache TomcatJava 版本支持支持关系https://blog.csdn.net/jackpk/article/details/46235815— Servlet 框架由两个包组成企业版标准组成1javax.servlet2javax.servlet.http.Servlet 的处理流程和任务1Servlet 的处理流程2Servlet 的任务①读取客户端浏览器发送的显式的数据。包括HTML表单或来自 applet 或自定义 HTTP 客户端程序表单②读取客户端浏览器发送的隐式的 HTTP 请求数据。包括 cookies媒体类型及浏览器能理解的压缩格式等③处理数据并生成结果。可对数据库进行访问执行 RMI 或 CORBA 调用调用 Web 服务或者直接计算得出对应的响应④发送显式的数据即文档到客户端浏览器。该文档的格式可以是文本文件HTML 或 XML、二进制文件GIF 图像、Excel 等⑤发送隐式的 HTTP 响应到客户端浏览器。返回响应类型contentType 如 HTML页面plain文本设置 cookies 和缓存参数以及其他类似的任务。当一个 Web 服务器响应一个 HTTP 请求时响应通常包括一个状态行一些响应报头一个空行和文档。— Servlet 处理 HTTP 请求过程① Web客户端向 Servlet 发出 HTTP 请求② Servlet 容器解析 HTTP 请求③ Servlet 容器创建一个 HttpRequest 对象在该对象中封装 HTTP 请求信息包括客户端发送的数据和请求类型④ Servlet 容器创建一个 HttpResponse 对象.— javax.servlet.http.HttpServlet 包Servlet 服务器 HTTP 响应关于HTTP响应参考菜鸟教程 https://www.runoob.com/servlet/servlet-server-response.htmlHttpServlet (abstract class)Http 请求方式包括六种DELETEGETPOSTOPTIONSPUTTRACE。HttpServlet 为公共抽象类(什么都不做)提供要进行子类化的抽象类以创建适用于Web站点的HTTP Servlet。HttpServlet 必须重写至少一个方法的子类。通常是以下方法之一处理标准 HTTP 请求void service(ServletRequest req, ServletResponse res) –继承自 javax.servlet将客户端请求分派给受保护的 service方法。客户端发送的 HTTP 请求和服务器的 HTTP 响应均在service() 下完成。 protected void doGet(HttpServletRequest req, HttpServletResponse resp) –用于HTTP GET 请求 protected void doPost(HttpServletRequest req, HttpServletResponse resp) –用于 HTTP POST 请求 protected void doPut(HttpServletRequest req, HttpServletResponse resp) –用于 HTTP PUT 请求 protected void doDelete(HttpServletRequest req, HttpServletResponse resp) –用于 HTTP DELETE 请求(init 并且 destroy –管理为 Servlet 的生命周期而持有的资源 getServletInfo –Servlet 用来提供有关自身的信息) protected long getLastModified(HttpServletRequest req), --从public service方法接收标准HTTP请求 并将它们分派给此类中定义的doXXX方法。HttpServlet 包括更多方法如 doHead(…), doOptions(…), doTrace(…),关于 HttpServlet 下的方法这里不详细记录更多详细内容API 详述https://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServlet.html注意① HttpServlet 是 javax.servlet 的子类Servlet 对浏览器发送的 HTTP 请求(request) 和 HTTP响应(response)都是在 service() 方法中进行的。② 如果 Servlet 通过 javax.servlet.http.HttpServlet 实现对 doGet(…) 或 doPost(…) 重写那么该 Servlet只能对 GET 或 POST 作出响应。③ 如果开发人员想处理所有类型的请求request只要简单地实现service方法即可但假如选择实现service方法则不必实现doPost或doGet方法除非在service方法的开始调用super.service()— 创建 HttpServlet 步骤…扩展 HttpServlet 抽象类;…重写 HttpServlet 部分方法。如 doGet(…), doPost(…);…获取 Http 请求信息。通过 HttpServletRequest 对象获取用户提交的数据或URL上的查询字符串;…生成 HTTP 响应结果。通过 HttpResponse 对象.getWirter() 方法生成响应结果该方法返回 PrintWriter 对象。— Http 服务器端响应实例package servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.annotation.WebServlet; //关于 WebServlet(…) 注解 // – 如引入注解有误则需要导入 .jar 包jackson-annotation-2.2.3.jar //WebServlet(...) 注解相关内容 WebServlet(“/BaseServlet”) public class BaseServlet extends HttpServlet {//1. 扩展 HttpServlet 抽象类 //2. 重写 doPost(…) 和 doGet(…)方法 Override //ServletException 处理异常无法处理 POST 请求 //IOException 处理异常处理 POST 请求时检测到输入或输出错误 Protected void doPost(HttpServletRequset req, HttpServletResponse resp) throws ServletException, IOException { try { //3. 获取客户端请求信息 String myName req.getParameter(“myName”); if(null ! myName) { myName resp.setCharacterEncoding(“UTF-8”); } else { myName “你的名字”; } //4. 生成 HTTP 响应结果并向客户端回显信息 resp.setContentType(“text/plain”); //返回结果为 plain -- .txt 文本 PrintWriter pw resp.getWriter(); pw.write(myName); pw.flush(); //刷新 PrintWriter缓存区 pw.close(); } catch(Exception e) { e.printStackTrace(); } }//end doPost protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); }//end doGet }//end class BaseServlet extends HttpServlet最后在 web.xml 中添加如使用了 WebServlet(“”) 注解, 则无需这一步操作servlet !-- 类名称 -- servlet-nameBaseServlet/servlet-name !—包名.类名 -- servlet-classservlet.BaseServlet/servlet-class /servlet servlet-mapping servlet-nameBaseServlet/servlet-name !—项目路径-- url-pattern/servletLearn/url-pattern /servlet-mapping参考资料菜鸟教程 – Servlet 服务器 HTTP 响应https://www.runoob.com/servlet/servlet-server-response.html博客园 Author 小顾问 – HttpServlet详解https://www.cnblogs.com/panjun-Donet/archive/2010/02/22/1671290.htmlOracle Java EE API – 类HttpServlethttps://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServlet.html

相关新闻

终极指南:三步让经典《暗黑破坏神2》在现代PC上流畅运行的完整方案

终极指南:三步让经典《暗黑破坏神2》在现代PC上流畅运行的完整方案

终极指南:三步让经典《暗黑破坏神2》在现代PC上流畅运行的完整方案 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx …

2026/7/28 18:09:06 阅读更多 →
EdgeRemover终极指南:三步彻底卸载Windows系统Edge浏览器

EdgeRemover终极指南:三步彻底卸载Windows系统Edge浏览器

EdgeRemover终极指南:三步彻底卸载Windows系统Edge浏览器 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover 你…

2026/7/28 18:09:06 阅读更多 →
sklearn.linear_model.LogisticRegression()函数解析(最清晰的解释)

sklearn.linear_model.LogisticRegression()函数解析(最清晰的解释)

欢迎关注WX公众号:【程序员管小亮】 sklearn.linear_model.LogisticRegression()函数全称是Logistic回归(aka logit,MaxEnt)分类器。 class sklearn.linear_model.LogisticRegression(penaltyl2, dualFalse, tol0.0001, C1.0, f…

2026/7/28 18:08:06 阅读更多 →

最新新闻

ExifToolGUI图片元数据管理工具:3分钟掌握免费开源的照片信息批量编辑完整指南

ExifToolGUI图片元数据管理工具:3分钟掌握免费开源的照片信息批量编辑完整指南

ExifToolGUI图片元数据管理工具:3分钟掌握免费开源的照片信息批量编辑完整指南 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 你是否曾为整理旅行照片时发现拍摄时间错乱而头疼?是否…

2026/7/28 18:16:08 阅读更多 →
Ethereum智能合约静态分析(上)

Ethereum智能合约静态分析(上)

概述 目前,以太坊智能合约的安全事件频发,从The DAO事件到最近的Fomo3D奖池被盗,每次安全问题的破坏力都是巨大的,如何正确防范智能合约的安全漏洞成了当务之急。本文主要讲解了如何通过对智能合约的静态分析进而发现智能合约中的…

2026/7/28 18:16:08 阅读更多 →
2026同城门店数字人视频工作流:口播与实景素材如何配合

2026同城门店数字人视频工作流:口播与实景素材如何配合

2026同城门店数字人视频工作流:口播与实景素材如何配合 同城实体店用AI拍视频、剪视频,选数字人软件时最容易走偏的一步,是把全部注意力放在“人物像不像真人”。门店内容真正需要解决的是另一件事:用户看完以后,能不能…

2026/7/28 18:16:08 阅读更多 →
物联网设备低功耗设计:NBM5100A与PIC32MX795F512L能量管理方案

物联网设备低功耗设计:NBM5100A与PIC32MX795F512L能量管理方案

1. 项目背景与核心需求解析在物联网和低功耗设备设计中,工程师们经常面临一个经典矛盾:设备需要间歇性的大电流脉冲(如无线传输时的射频模块启动),但小型一次性电池(如锂亚硫酰氯电池)在直接提供…

2026/7/28 18:16:08 阅读更多 →
leetcode-数组

leetcode-数组

118. 杨辉三角 class Solution:def generate(self, numRows: int) -> List[List[int]]:result []for i in range(numRows):now [1]*(i1)if i > 1:for i in range(1, i):now[i] pre[i - 1] pre[i]result [now]pre nowreturn result 1122. 数组的相对排序 cla…

2026/7/28 18:16:08 阅读更多 →
Leetcode 99. 恢复搜索二叉树

Leetcode 99. 恢复搜索二叉树

Time: 20190901 题目描述 二叉搜索树中的两个节点被错误地交换。 请在不改变其结构的情况下,恢复这棵树。 示例 1: 输入: [1,3,null,null,2]1/3\2输出: [3,1,null,null,2]3/1\2示例 2: 输入: [3,1,4,null,null,2]3/ \ 1 4/2输出: [2,1,4,null,null,3]2/ \ 1 4/3…

2026/7/28 18:15:08 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻