Java EE-servlet API 三种主要的类








上述的代码如下:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;@WebServlet("/request")
public class RequestServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 下面这个操作也是必要的. 显式告诉浏览器, 你拿到的数据是 html.resp.setContentType("text/html");StringBuilder respBody=new StringBuilder();respBody.append(req.getProtocol());//使用 <br> 标签表示换行respBody.append("<br>");respBody.append(req.getMethod());respBody.append("<br>");respBody.append(req.getRequestURI());respBody.append("<br>");respBody.append(req.getContextPath());respBody.append("<br>");respBody.append(req.getQueryString());respBody.append("<br>");//Enumeration 枚举类型,每一个枚举类型都是一个键值对,即headers中包含多个键值对Enumeration<String> headers=req.getHeaderNames();while(headers.hasMoreElements()){//一开始的时候,并不指向第一个键值对的nameString header= headers.nextElement();//指向第一个键值对的namerespBody.append(header + ": "+req.getHeader(header));//getHeader:获取键值对的值respBody.append("<br>");}resp.getWriter().write(respBody.toString());}
}

上述的代码如下:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/parameter1")
public class ParameterServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 约定, 客户端使用 query string 传递数据.// query string 形如: username=zhangsan&password=123String user_name=req.getParameter("username");String pass_word=req.getParameter("password");System.out.println("username"+":"+user_name);System.out.println("password"+":"+pass_word);resp.getWriter().write("ok");}
}

上述的代码如下:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/parameter2")
public class ParameterServlet2 extends HttpServlet {// 预期让客户端发送一个 POST 请求. 同时使用 form 格式的数据, 在 body 中把数据传递过来.// body 形如:// username=zhangsan&password=123@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String user_name=req.getParameter("username");String pass_word=req.getParameter("password");System.out.println("username :"+ user_name);System.out.println("password :"+ pass_word);resp.getWriter().write("okk");}
}









上述过程的代码如下:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/status")
public class StatusServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//resp.setStatus(404);resp.setContentType("text/html;charset=utf8");resp.sendError(500);resp.getWriter().write("okkkk");}
}

上述过程的代码如下:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/refresh")
public class RefreshServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//每2秒刷新一次resp.setHeader("refresh","2");resp.getWriter().write("time "+ System.currentTimeMillis());}
}

上述过程的代码如下:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/redirect")
public class RedirectServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//resp.setStatus(302);//resp.setHeader("Location","http://www.baidu.com");resp.sendRedirect("http://www.baidu.com");}
}


上述过程的代码如下:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/body")
public class BodyServlet extends HttpServlet {@Override//让服务器返回一个html的数据protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=utf8");resp.getWriter().write("<div>你们好呀<div>");}
}相关文章:
Java EE-servlet API 三种主要的类
上述的代码如下: import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.i…...
简单谈谈我参加数据分析省赛的感受与体会
数据分析省赛的感受与体会 概要考试前的感受与体会考试注意事项小结 概要 大数据分析省赛指的是在省级范围内举办的大数据分析竞赛活动。该竞赛旨在鼓励和推动大数据分析领域的技术创新和人才培养,促进大数据技术与应用的深度融合,切实解决实际问题。参…...
rust学习——泛型 (Generics)
文章目录 泛型 Generics泛型详解结构体中使用泛型枚举中使用泛型方法中使用泛型为具体的泛型类型实现方法 const 泛型(Rust 1.51 版本引入的重要特性)const 泛型表达式 泛型的性能 泛型 Generics Go 语言在 2022 年,就要正式引入泛型…...
【USRP】通信之有线通信
有线通信: 有线通信是指使用物理线路或媒体(例如,铜线、同轴电缆、光纤)进行数据、声音和视频传输的通信方式。由于它依赖于实体传输媒介,有线通信通常具有较高的稳定性和可靠性,并能支持长距离的高带宽通…...
【算法】BFS
BFS广度优先搜索 1. 概念理解 广度优先搜索(BFS)是指,以一个起点(原点、结点、根)为基本点,向其所要搜索的方向扩散,并最终到达目标点的搜索方法。 2. 应用方向 有迷宫问题、层序遍历等应用。 3. 迷宫问题 以迷宫问题为例。 当想要从左…...
ZYNQ7020开发(二):zynq linux系统编译
文章目录 一、编译前准备二、SDK编译三、编译步骤总结四、问题汇总 一、编译前准备 1.设置环境变量 source /opt/pkg/petalinux/2020.2/settings.sh/opt/pkg/petalinux/2020.2是上一节petalinux的安装目录 2.创建 petalinux 工程 进入petalinux安装目录(例如:/op…...
Kafka 自动配置部署信息的脚本记录
自动配置 Kafka 整理服务器内容时,发现一个测试 Kafka 的的一个脚本,它可以自动部署 Kafka ,指定三个参数,完成 Kafka 的配置过程。 basePath$1 brokerId$2 zookeeperConnect$3 localIpifconfig |grep inet| awk {print $2}| he…...
数据分析入门
B站:01第一课 数据分析岗位职责和数据分析师_哔哩哔哩_bilibili 一、岗位:数据分析师 Q1 数据分析师在公司做什么工作? 数据来源于公司核心业务,通过监测业务健康度来确定业务的健康状况; 通过对用户精细化分析&am…...
车载网关通信能力解析——SV900-5G车载网关推荐
随着车联网的发展,各类车载设备对车载网关的需求日益增长。车载网关作为车与车、车与路、车与云之间连接的关键设备,其通信能力直接影响整个系统的性能。本文将详细解析车载网关的通信能力,并推荐性价比高的SV900-5G车载网关。 链接直达:https://www.key-iot.com/i…...
服务器中了mkp勒索病毒怎么处理,mkp勒索病毒解密,数据恢复
10月份以来,云天数据恢复中心陆续接到很多企业的求助,企业的服务器遭到了mkp勒索病毒攻击,导致企业的服务器数据库被加密,严重影响了企业工作,通过这一波mkp勒索病毒的攻击,云天数据恢复工程师为大家总结了…...
义乌再次位列第一档!2022年跨境电商综试区评估结果揭晓!
义乌跨境电商综试区捷报频传,在商务部公布的“2022年跨境电子商务综合试验区评估”结果中,中国(义乌)跨境电子商务综合试验区(以下简称:“跨境综试区”)评估结果为成效明显,综合排名…...
07、Python -- 序列相关函数与封包解包
目录 使用函数字符串也能比较大小序列封包序列解包多变量同时赋值 最大值、最小值、长度 序列解包与封包 使用函数 len()、max()、min() 函数可获取元组、列表的长度、最大值和最小值。 字符串也能比较大小 字符串比较大小时,将会依次按字符串中每个字符对应的编…...
# Spring 事务失效场景
Spring 事务失效场景 文章目录 Spring 事务失效场景前言事务不生效未开启事务事务方法未被Spring管理访问权限问题基于接口的代理源码解读 CGLIB代理 方法用final修饰同一类中的方法调用多线程调用不支持事务 事务不回滚设置错误的事务传播机制捕获了异常手动抛了别的异常自定义…...
华为OD 停车场车辆统计(100分)【java】A卷+B卷
华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…...
出差学小白知识No6:LD_PRELOAD变量路径不对找不到库文件
交叉编译的时候出现以下问题,显示LD_PRELOAD变量找不到路劲 首先先查看一下LD_PRELOAD的路径:echo $LD_PRELOAD 如果输出一大串,那么先进行清空:unset LD_PRELOAD 重新给LD_PRELOAD进行赋值他的路径和库文件: expor…...
利用dns协议发起ddos反射攻击
利用DNS服务器发起反射型DDOS,攻击带宽 基本思路: 1、利用any类型的dns查询,可完成发送少量请求数据,获得大量返回数据。 2、将原请求地址改为受害者地址,则dns会向受害者返回大量数据,占用带宽 警告&…...
Tcl基础知识
一、概述 Tcl 语言的全称 Tool Command Language,即工具命令语言。这种需要在 EDA 工具中使用的相当之多,或者说几乎每个 EDA 工具都支持 Tcl 语言,并将它作为自己的命令shell。 静态时序分析中多用的 Synopsys Tcl 语言,…...
Go中的编程模式:Pipeline
本文章我们重点来介绍一下 Go 编程中的 Pipeline 模式。用过 Linux 命令行的人都不会陌生,它是一种把各种命令拼接起来完成一个更强功能的技术方法,在C语言中也有pipe管道的叫法,具体的有兴趣的同学也可以去了解。 现在的流式处理、函数式编程、应用网关对微服务进行简单的…...
2023最新pytorch安装教程,简单易懂,面向初学者(Anaconda+GPU)
一、前言 目前是2023.1.27,鉴于本人安装过程中踩得坑,安装之前我先给即将安装pytorch的各位提个醒,有以下几点需要注意 1.判断自己电脑是否有GPU 注意这点很重要,本教程面向有NVIDA显卡的电脑,如果你的电脑没有GPU或者使用AMD显…...
Redis为什么变慢了
一、Redis为什么变慢了 1.Redis真的变慢了吗? 对 Redis 进行基准性能测试 例如,我的机器配置比较低,当延迟为 2ms 时,我就认为 Redis 变慢了,但是如果你的硬件配置比较高,那么在你的运行环境下,可能延迟是 0.5ms 时就可以认为 Redis 变慢了。 所以,你只有了解了你的…...
避坑指南:用ESP32做蓝牙SPP通信时遇到的5个典型问题及解决方法
ESP32蓝牙SPP通信实战避坑指南:5个典型问题与深度解决方案 当你在凌晨三点盯着调试终端里闪烁的光标,蓝牙连接却突然断开时——这种崩溃感我太熟悉了。作为经历过数十个ESP32蓝牙项目的开发者,我整理了这些血泪教训。本文将直击SPP通信中最棘…...
Windows驱动清理完全指南:使用DriverStore Explorer轻松管理驱动存储
Windows驱动清理完全指南:使用DriverStore Explorer轻松管理驱动存储 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否曾因C盘空间不足而烦恼?是否遇到过因…...
智元GO-2:具身基座大模型新突破
智元机器人正式推出新一代具身基座大模型Genie Operator-2(GO-2),它在GO-1基础上进化,弥合语义‑运动鸿沟,在多个基准测试中刷新行业SOTA。进化亮点:弥合语义‑运动鸿沟GO-2在GO-1基础上进化,致…...
别再用LangChain搭生产系统了!2026 AI原生研发栈迁移窗口期仅剩137天——新一代轻量Agent Runtime选型白皮书
第一章:LangChain在生产环境中的结构性缺陷与技术债全景图 2026奇点智能技术大会(https://ml-summit.org) LangChain自发布以来以“快速原型构建”见长,但其核心抽象层——Chain、Agent、Tool、Memory——在高并发、低延迟、可观测性与模块契约一致性等…...
Citra模拟器终极指南:5步快速上手畅玩3DS经典游戏
Citra模拟器终极指南:5步快速上手畅玩3DS经典游戏 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/GitHub_Trending/ci/citra 想要在电脑上重温《精灵宝可梦》、《塞尔达传说》等任天堂3DS经典游戏吗?Citra模拟器…...
Java面试必问:ArrayList 和 LinkedList 区别:从底层到实战,彻底搞懂
ArrayList 和 LinkedList 区别:从底层到实战,彻底搞懂面试官:“ArrayList 和 LinkedList 有什么区别?” 你:“ArrayList 底层是动态数组,查询快、增删慢;LinkedList 底层是双向链表,…...
用ESP32-S3和SenseVoice,手把手教你打造一个能听懂中文的离线语音助手(附完整代码)
基于ESP32-S3与SenseVoice的离线中文语音助手开发实战 在物联网和边缘计算快速发展的今天,嵌入式设备的智能化需求日益增长。传统云端语音助手虽然功能强大,但在隐私保护、网络依赖和实时性方面存在明显短板。本文将详细介绍如何利用ESP32-S3芯片的本地A…...
CSL编辑器:重新定义学术文献样式编辑的智能方案
CSL编辑器:重新定义学术文献样式编辑的智能方案 【免费下载链接】csl-editor cslEditorLib - A HTML 5 library for searching and editing CSL styles 项目地址: https://gitcode.com/gh_mirrors/csl/csl-editor 你是否曾为学术论文的引用格式而烦恼&#x…...
零代码实战:在钉钉群聊中一键唤醒影刀RPA机器人
1. 为什么要在钉钉群聊里唤醒影刀RPA? 想象一下这个场景:每天早上9点,销售总监在群里数据机器人,5秒后就能收到自动生成的昨日销售报表。这种"聊天即操作"的体验,正是影刀RPA与钉钉联动带来的办公革命。我帮…...
忍者像素绘卷新手入门:5分钟学会复古像素画生成
忍者像素绘卷新手入门:5分钟学会复古像素画生成 1. 像素艺术新纪元:当忍者精神遇见16-Bit美学 想象一下,你正坐在一间充满怀旧气息的游戏工作室里。墙上贴着90年代经典游戏的像素海报,桌上摆着插满游戏卡带的NES主机。现在&…...
