浅析 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/11/6 7:20:26 阅读更多 →
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/10/24 9:23:41 阅读更多 →
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/11/5 9:51:57 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/5 12:28:00 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/5 1:08:50 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/5 12:28:01 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/5 12:28:02 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/5 0:54:28 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/5 19:38:59 阅读更多 →

日新闻

周新闻

月新闻