HttpServletRequest/Response

HttpServletRequest

一些常用类的用法

package Demo;

import javax.jws.WebService;
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("/Demo2")
public class Demo2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf8");
        StringBuilder stringBuilder=new StringBuilder();

        //协议名称和版本
        stringBuilder.append(req.getProtocol());
        stringBuilder.append("<br>");

        //HTTP方法名称
        stringBuilder.append(req.getMethod());
        stringBuilder.append("<br>");

        //协议名称直到HTTP请求第一个查询字符串
        stringBuilder.append(req.getRequestURI());
        stringBuilder.append("<br>");

        //请求上下文的请求URL部分
        stringBuilder.append(req.getContextPath());
        stringBuilder.append("<br>");

        //URL中查询字符串
        stringBuilder.append(req.getQueryString());
        stringBuilder.append("<br>");

        //枚举
        //请求中的所有头名
        Enumeration<String> headerNames=req.getHeaderNames();
        while(headerNames.hasMoreElements()){
            String name=headerNames.nextElement();
            stringBuilder.append(name+": "+req.getHeader(name));
            stringBuilder.append("<br>");
        }

        resp.setContentType("text/html;charset=utf8");
        resp.getWriter().write(stringBuilder.toString());
    }
}

HttpServletPonse

package Demo;

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("/Demo3")
public class Demo3 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置响应状态码
        resp.setStatus(200);

        //设置响应的内容类型
        //这两个都是常用的
        //第二个是json类型
        resp.setContentType("text/html;charset=utf8");
//        resp.setContentType("application/json;charset=utf8");

        //告诉浏览器响应的字符集
        resp.setCharacterEncoding("utf8");
        //告诉服务器body中该用utf8字符集解析
//        req.setCharacterEncoding("utf8");
        //这两是不一样的,注意区分

        resp.getWriter().write("往body内写入文本格式数据");

        //强制跳转到指定页面
        resp.sendRedirect("Demo1.html");
    }
}

常用状态码

1.200 OK:请求成功。客户端请求的资源已成功获取。

2.201 Created:请求已被实现,而且有一个新的资源已经依据请求的需要而建立。

3.202 Accepted:服务器已接受请求,但尚未处理。

4.301 Moved Permanently:请求的资源已永久移动到新位置。

5.302 Found:请求的资源现在临时从不同的URI响应请求。

6.303 See Other:对应当前请求的响应可以在另一个URI上被找到,而且客户端应当采用GET的方式访问那个资源。

7.304 Not Modified:自从上次请求后,请求的网页未修改过。

8.400 Bad Request:服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。

9.401 Unauthorized:请求未授权。

10.403 Forbidden:服务器拒绝请求。

11.404 Not Found:服务器找不到请求的网页。

12.405 Method Not Allowed:请求行中指定的请求方法不能被用于请求相应的资源。

13.406 Not Acceptable:请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。

14.407 Proxy Authentication Required:此状态码与401类似,但指定请求者应当授权使用代理。

15.408 Request Timeout:服务器等候请求时发生超时。

16.409 Conflict:服务器在完成请求的处理时发生冲突。

17.410 Gone:如果请求的资源已永久删除,就可以使用这个状态码。

18.411 Length Required:服务器无法处理客户端发送的不带Content-Length的请求信息。

19.412 Precondition Failed:服务器未满足请求者在请求中设置的其中一个前提条件。

20.413 Request Entity Too Large:服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。

21.414 Request-URI Too Long:请求的URI过长(URI通常为网址),服务器无法处理。

22.415 Unsupported Media Type:服务器无法处理请求附带的媒体格式。

23.416 Requested Range Not Satisfiable:如果请求中包含了Range请求头,并且Range中指定的任何数据范围都与当前资源的可用范围不重合,就返回此状态码。

24.417 Expectation Failed:在请求头Expect中指定的预期内容无法被服务器满足时,就返回这个状态码。

25.500 Internal Server Error:服务器遇到一个未曾预料的状况,导致它无法完成对请求的处理。

26.501 Not Implemented:服务器不支持当前请求所需要的某个功能。

27.502 Bad Gateway:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。

28.503 Service Unavailable:由于临时的服务器维护或者过载,服务器当前无法处理请求。

29.504 Gateway Timeout:作为网关或者代理的服务器,未及时从上游服务器接收请求。

30.505 HTTP Version Not Supported:服务器不支持,或者拒绝支持在请求中使用的HTTP版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/543072.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【前端】es-drager 图片同比缩放 缩放比 只修改宽 只修改高

【前端】es-drager 图片同比缩放 缩放比 ES Drager 拖拽组件 (vangleer.github.io) 核心代码 //初始宽 let width ref(108)//初始高 let height ref(72)//以下两个变量 用来区分是单独的修改宽 还是高 或者是同比 //缩放开始时的宽 let oldWidth 0 //缩放开始时的高 let o…

蓝桥杯-可获得最小值

前缀和思想: #include<bits/stdc.h>using namespace std;long long n,k;const int N200010;long long a[N],sum[N];int main() {cin>>n>>k;for(int i1;i<n;i)cin>>a[i];sort(a1,a1n);for(int i1;i<n;i){sum[i]sum[i-1]a[i];}long long ans1e18;…

【第十四届蓝桥杯省赛题目】

选择题&#xff1a; 1.设只含根结点的二叉树高度为1&#xff0c;共有62个结点的完全二叉树的高度为&#xff1f; A.4 B.5 C.6 D.7 解析&#xff1a;高度为K的满二叉树 节点数为 2k-1 &#xff0c;如果K6 最多有63个节点 故答案为6 选C 2.C中&#xff0c;bool类型的变量占用字…

LeetCode-热题100:226. 翻转二叉树

题目描述 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a; root [4,2,7,1,3,6,9] 输出&#xff1a; [4,7,2,9,6,3,1] 示例 2&#xff1a; 输入&#xff1a; root [2,1,3] 输出&#xff1a; […

华为ensp中aaa(3a)实现telnet远程连接认证配置命令

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月14日18点49分 AAA认证的全称是Authentication、Authorization、Accounting&#xff0c;中文意思是认证、授权、计费。 以下是详细解释 认证&#xff08;Authentic…

创新书荐|《哲学思维》- 信息过载时代保持独立思考12条关键原则

信息过载时代&#xff0c;我们都难以避免被信息投喂&#xff0c;被算法解读&#xff0c;独立思考的能力显得尤为宝贵。英国哲学家朱利安巴吉尼通过深入研究&#xff0c;在新书《哲学思维》中汇集了他20年间对58位全球顶尖哲学家的访谈和资料&#xff0c;精心提炼出了12条至关重…

Gradle 在 Spring 中的使用-ApiHug准备-工具篇-006

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace ApiHug …

AI预测小分子与蛋白的相关特征: MegaMolBART, MoFlow,ESM-1, ESM-2

1、小分子:MegaMolBART, MoFlow 1)MegaMolBART https://github.com/NVIDIA/MegaMolBART 基于 SMILES 的小分子药物发现与化学信息学深度学习模型。 2)MoFlow https://github.com/calvin-zcx/moflow 用flow流方式分子生成 2、蛋白质:ESM-1, ESM-2 https://github.com/fa…

21.5k Star , AI 智能体项目OpenDevin:少写代码,多创造(附部署教程)

Aitrainee | 公众号&#xff1a;AI进修生 这是一个旨在复制 Devin 的开源项目&#xff0c;Devin 是一位自主人工智能软件工程师&#xff0c;能够执行复杂的工程任务并在软件开发项目上与用户积极协作。该项目致力于通过开源社区的力量复制、增强和创新 Devin。 Devin 代表了一…

Solana 上创建自己的 SLPToken:简明指南

Solana 定义 Solana 是由 Solana Labs 创建的区块链平台&#xff0c;旨在提供高吞吐量和低延迟的去中心化应用&#xff08;DApps&#xff09;开发环境。它采用一系列创新技术&#xff0c;如 PoH&#xff08;Proof of History&#xff09;共识机制和 Tower BFT&#xff08;BFT …

java:课后笔记wk45

文章目录 1. class1.1 toString()和equals()1.2 overload-constructor1.3 static 2. Wrapper3. Maths4. array5. arrayList 1. class 1.1 toString()和equals() public class People{private int age;private String name;public People(int age, String name){this.age age…

每日一题:无重复字符的最长子串

给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是"abc"&#xff0c;所以其长度为 3。示例 2: 输入: s "bbbbb" 输出: 1 解释: 因为无重…

mysql题目5

tj11&#xff1a; select max(c.teacher_age) 最大的年龄 from tb_teacher c tj12: select a.class_name 班级名称,b.student_name 学生姓名,b.gender 学生性别 from tb_class a join tb_student b on a.class_idb.class_id join tb_teacher c on a.teacher_idc.teacher_id w…

【深度学习实战(1)】如何使用argparse模块设置自己的训练参数

一、argparse模块用法 1、argparse是一个python模块&#xff0c;用途是&#xff1a;命令行选项、参数和子命令的解释。 2、argparse库下载&#xff1a;pip install argparse 3、使用步骤&#xff1a; 导入argparse模块&#xff0c;并创建解释器 添加所需参数 解析参数 二、…

2024年【化工自动化控制仪表】考试内容及化工自动化控制仪表考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 化工自动化控制仪表考试内容是安全生产模拟考试一点通生成的&#xff0c;化工自动化控制仪表证模拟考试题库是根据化工自动化控制仪表最新版教材汇编出化工自动化控制仪表仿真模拟考试。2024年【化工自动化控制仪表】…

2009-2021年上市公司僵尸企业识别数据(含原始数据+计算代码+计算结果)

2009-2021年上市公司僵尸企业识别数据&#xff08;含原始数据计算代码计算结果&#xff09; 1、时间&#xff1a;2009-2021年 2、指标&#xff1a; 证券代码 、证券简称、上市日期、year、净利润、政府补助、流动负债合计、负债合计、财务费用明细利息支出、资产总计、长期负…

springboot 人大金仓 kingbase-备份还原,命令中带密码

命令带密码参考 Java代码实现国产人大金仓数据库备份还原需求-CSDN博客文章浏览阅读818次&#xff0c;点赞16次&#xff0c;收藏12次。本人在一次项目中&#xff0c;遇到了需要在系统管理中提供给用户备份还原系统数据的功能&#xff0c;由于项目特殊性&#xff0c;项目底层数…

【漏洞复现】WordPress LayerSlider插件SQL注入漏洞复现

声明&#xff1a;亲爱的读者&#xff0c;我们诚挚地提醒您&#xff0c;Aniya网络安全的技术文章仅供个人研究学习参考。任何因传播或利用本实验室提供的信息而造成的直接或间接后果及损失&#xff0c;均由使用者自行承担责任。Aniya网络安全及作者对此概不负责。如有侵权&#…

PostgreSQL入门到实战-第二十七弹

PostgreSQL入门到实战 PostgreSQL中数据分组操作(二)官网地址PostgreSQL概述PostgreSQL中HAVING命令理论PostgreSQL中HAVING命令实战更新计划 PostgreSQL中数据分组操作(二) 使用PostgreSQL HAVING子句来指定组或聚合的搜索条件 官网地址 声明: 由于操作系统, 版本更新等原因…

驾校驾考全科语音矩阵版h5微信抖音QQ快手小程序app开源版开发

驾校驾考全科语音矩阵版h5微信抖音QQ快手小程序app开源版开发 支持SAAS、支持独立加密、支持独立开源、价格不同。 自带数据&#xff0c;后台一键初始。 驾考系统 微信公众号微信小程序抖音小程序可打包APP 所有车型全覆盖、2024全科题目、语音讲解、模拟考试等等 这是一款什…