使用Servlet API,如何确定请求是HTTP/1.0还是HTTP/1.1?

2024-02-01

我正在修复一个错误,该错误仅在客户端使用 HTTP/1.0(并且是在防火墙后面秘密地进行 Internet Explorer 代理)时才会显现出来。详细信息在这里:https://issues.apache.org/jira/browse/TAP5-1880 https://issues.apache.org/jira/browse/TAP5-1880

无论如何,正确的解决方案是当请求是 HTTP/1.0 时关闭一项功能(GZip 内容压缩)。然而,在搜索了 Servlet API 文档,甚至 Jetty 源代码之后,我找不到任何公开此信息的地方。

那么,有没有办法确定这一点呢?我正在使用 Servlet API 2.5。

提前致谢!


request.getProtocol() will return "HTTP/1.0" or "HTTP/1.1"

这是示例,在本地tomcat中执行

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

public class ShowRequestHeaders extends HttpServlet {
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    String title = "Servlet Example: Showing Request Headers";
    out.println(ServletUtilities.headWithTitle(title) +
                "<BODY BGCOLOR=\"#FDF5E6\">\n" +
                "<H1 ALIGN=CENTER>" + title + "</H1>\n" +
                "<B>Request Method: </B>" +
                request.getMethod() + "<BR>\n" +
                "<B>Request URI: </B>" +
                request.getRequestURI() + "<BR>\n" +
                "<B>Request Protocol: </B>" +
                request.getProtocol() + "<BR><BR>\n" +
                "<TABLE BORDER=1 ALIGN=CENTER>\n" +
                "<TR BGCOLOR=\"#FFAD00\">\n" +
                "<TH>Header Name<TH>Header Value");
    Enumeration headerNames = request.getHeaderNames();
    while(headerNames.hasMoreElements()) {
      String headerName = (String)headerNames.nextElement();
      out.println("<TR><TD>" + headerName);
      out.println("    <TD>" + request.getHeader(headerName));
    }
    out.println("</TABLE>\n</BODY></HTML>");
  }

  public void doPost(HttpServletRequest request,
                     HttpServletResponse response)
      throws ServletException, IOException {
    doGet(request, response);
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Servlet API,如何确定请求是HTTP/1.0还是HTTP/1.1? 的相关文章

  • 使用 TLS PSK 加密时如何正确检测流结束?

    我已经准备好了一个简单的 TLS PSK 客户端测试用例 https github com afarber jetty newbie tree master TlsPskClient2 src main java de afarber tl
  • 使用itext java库复制时pdf文件大小大大增加

    我正在尝试使用 Java 中的 itextpdf 库将现有的 pdf 文件复制到一些新文件中 我使用的是 itextpdf 5 5 10 版本 我在两种方式上都面临着不同的问题 PDFStamper 和 PdfCopy 当我使用 PDFSt
  • 来自行号的方法名称

    给定特定类源代码 Java C 的行号 是否有一种简单的方法来获取它所属的方法的名称 如果它落入其中 大概使用抽象语法树 这对于将 checkstyle 的输出限制为仅触及的方法很有用 我假设您必须使用抽象语法树来执行 Line gt Me
  • java 拖放

    我尝试熟悉java中的拖放 但我发现的所有教程都是 让我生气 我想要的只是从 JList 包含在名为 UserPanel 的自制 JPanel 中 拖动 PublicUserLabel 并将其放入从 JTabbedPanel 继承的自制类中
  • Response.Redirect 并不总是重定向

    我们在一个工作不一致的页面上有一个简单的 Response Redirect IIS 6 0 大多数情况下 它会正确重定向 但我们收到一些用户抱怨 他们没有重定向 而是看到 302 对象移至此处 页面 该页面显示标题信息以及正确的位置 如果
  • openFileOutput 在单例类中无法正常工作 - 想法/解决方法?

    作为一名 Android 开发新手 我遇到了一些奇怪的问题 我想创建一个类 它方法其他类 活动 任何可以用于以某种特殊方式处理文件的类 假设为了简单起见 我们将记录一些内容 如果我在活动中执行以下操作 例如在 OnClick 侦听器中 则一
  • Java:为什么.class文件中的方法类型包含返回类型,而不仅仅是签名?

    class 文件的常量池中有一个 NameAndType 结构 它用于动态绑定 该类可以 导出 的所有方法都被描述为 签名 返回类型 喜欢 getVector Ljava util Vector 当某些 jar 中方法的返回类型发生更改时
  • 使用 Spring MVC 在 jar 文件中显示 jsp 页面

    我正在使用 Spring MVC 3 2 2 在 java 中开发一个 Web 应用程序 我在从 jar 文件中加载 jsp 页面时遇到问题 Spring MVC Web应用程序具有以下结构 META INF WEB INF spring
  • 清空变量不会使方法引用无效[重复]

    这个问题在这里已经有答案了 为什么代码不抛出NullPointerException当我使用与变量绑定的方法引用时dog我后来分配了null to 我正在使用 Java 8 import java util function Functio
  • Google 表格使用 API 密钥而不是 client_secret.json

    In the QuickStart java示例Java 快速入门 https developers google com sheets api quickstart java他们使用OAuth client ID识别该应用程序 这会弹出一
  • 如何使用 aether 从 Java 找到最新版本的 Maven 工件?

    他们的文档非常薄弱 我无法弄清楚 我找到了部分答案here https stackoverflow com questions 27428068 how to retrieve the latest also snapshot versio
  • 在 Eclipse 中删除空块之前的新行

    我更喜欢奥尔曼式 http en wikipedia org wiki Brace style Allman style大括号 例如 if foo magical prancing unicorn stuff 而不是 if foo unma
  • java绕中心旋转矩形

    我想围绕其中心点旋转一个矩形 它应该保留在应该绘制的位置并在该空间中旋转 这是我的代码 AffineTransform transform new AffineTransform transform rotate Math toRadian
  • 在约束验证器中使用 Guice 进行依赖注入

    我有一个在 ConstraintValidator 的实现中注入类的用例 我正在使用 Google guice 进行依赖项注入 目前无法在验证器内注入 我的场景的简化形式 内部模块 Provides Singleton public Ser
  • 如何使用 AffineTransform.quadrantRotate 旋转位图?

    我想旋转一个bitmap关于它的中心点 然后将其绘制成更大的图形上下文 位图是40x40 pixels 图形上下文是500x500 pixels 这就是我正在做的 BufferedImage bi new BufferedImage 500
  • 线程数组?

    所以我在理解如何避免线程的顺序执行时遇到了问题 我试图创建一个线程数组并在单独的循环中执行 start 和 join 函数 这是我现在拥有的代码示例 private static int w static class wThreads im
  • Spring 如何在运行时获取有关“强类型集合”的泛型类型信息?

    我在 Spring 3 0 文档中阅读了以下内容 强类型集合 仅限 Java 5 在 Java 5 及更高版本中 您可以使用强类型集合 使用泛型类型 也就是说 可以声明一个 Collection 类型 使其只能包含 String 元素 例如
  • Spring MVC:通用 DAO 和服务类

    我正在 Spring MVC 中编写网页 我使用 Generic DAO 编写了所有 DAO 现在我想重写我的服务类 我该如何写 通用服务 我的 DAO 如下 DAO package net example com dao import j
  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j
  • FetchType.LAZY 不适用于休眠中的 @ManyToOne 映射

    简而言之 我的 Child 类与 Parent 类之间存在多对一的关系 我想加载所有的孩子 而不必加载他们的父母详细信息 我的孩子班级是 Entity public class Child implements Serializable I

随机推荐

  • 以最佳方式返回负数的计数

    在按行和列排序的矩阵中搜索 的变体 给定一个按行和列排序的二维矩阵 您必须以最佳方式返回负数的计数 我可以想到这个解决方案 初始化行索引 0 如果行索引 gt 0 行索引 否则应用二分搜索 并用此代码实现 5X5 矩阵 include
  • 打印按值排序的字典

    我基本上是尝试迭代字典并从最大值到最小值打印出键 值 我一直在搜索这个网站 很多人都在使用 lambda 但我不太确定它是如何工作的 所以我现在试图避免它 dictIterator iter sorted bigramDict iterit
  • 如何在悬停时更改 navbarPage 链接的文本颜色(在闪亮的应用程序中)?

    这是我的闪亮应用程序的编辑版本 ui lt tagList fluidPage titlePanel tags head tags style HTML navbar default color red important navbarPa
  • PHP 对象生命周期

    我正在使用 PHP 5 2 如果我在一页上new一个对象 这个对象什么时候会被销毁 当用户转到另一个 php 页面时 对象是否会自动销毁 或者我需要显式调用 destructor 它将在页面加载结束时被破坏 从内存中卸载 或者如果您之前取消
  • SimpleXML 与 DOMDocument 性能对比

    我正在使用 SimpleXML 类构建 RSS 解析器 我想知道使用 DOMDocument 类是否会提高解析器的速度 我正在解析一个至少有 1000 行的 rss 文档 并且我使用了这 1000 行中的几乎所有数据 我正在寻找需要最少时间
  • 如何在 WPF 应用程序中为页面创建模式对话框?

    我有一个 WPF 窗口 其中有一个托管框架的控件 在该框架中我显示不同的页面 有没有办法使对话框仅在页面上模式化 当我显示对话框时 不应单击页面上的任何控件 但应该可以单击不在页面上的同一窗口上的控件 如果我对你的信息的解释是正确的 那么你
  • 正则表达式和 unicode

    我有一个脚本可以解析电视剧集的文件名 例如 show name s01e02 avi 获取剧集名称 来自 www thetvdb com API 并自动将它们重命名为更好的名称 节目名称 01x02 avi 该脚本工作正常 直到您尝试在具有
  • 检查 URL 是否有 http:// 前缀

    在我的应用程序中 当用户添加对象时 还可以添加该对象的链接 然后可以在 webView 中打开该链接 我尝试保存不带 http 前缀的链接 然后在 webView 中打开它 但无法打开它 在webView开始加载之前 有没有办法检查保存的U
  • 在 Dart 中发送 SMTP 电子邮件

    我查看了 API 文档和语言指南 但没有看到任何有关在 Dart 中发送电子邮件的内容 我也检查了这个谷歌群组帖子 https groups google com a dartlang org forum topic misc 5YNvrm
  • 如何通过 JSON 文件为curl 传递有效负载?

    我可以通过以下方式成功创建一个地方curl执行以下命令 curl vX POST https server api v1 places json d auth token B8dsbz4HExMskqUa6Qhn place name Fu
  • 为复杂的跨平台程序创建安装程序

    我正在为一堆相对复杂的桌面应用程序绘制一个应用程序部署过程 我们有本机应用程序和 Java 应用程序 因此部署必须能够检查 JRE 是否存在并在需要时安装它 某些应用程序依赖于特殊硬件 因此部署还必须能够启动必要的驱动程序安装程序 一些应用
  • 使用 AsyncTask 时应用程序挂起并暂停所有线程

    我正在尝试使用AsyncTask类来获取网站的内容 logcat 告诉我W art Suspending all threads took 15 or any other number ms反复 我的应用程序被冻结 直到日志消息打印完成 日
  • 在 Powershell 中设置 InheritanceFlags 与 PropagationFlags

    我正在尝试找到 InheritanceFlags 和 PropagationFlags 的正确组合 以便我的新文件夹不会继承之前文件夹的权限 而是将权限传播到新文件夹中包含的文件夹 文件 我尝试交换我下面有两个 但这只给了新文件夹与上面的文
  • 将三个不同的列合并为 R 中的日期

    现在 我在 R 的数据文件中有 3 个单独的列 分别为年 月和日 如何将这三列合并为一列并使 R 理解它是日期 这是现在的样子 year mon day gnp 1947 1 1 238 1 1947 4 1 241 5 1947 7 1
  • Elasticsearch 在显示 t: failed to read local state , exiting 后崩溃

    我是 Elasticsearch 的新手 我在本地只运行一个节点 到目前为止 它运行良好 现在一启动就崩溃了 错误堆栈如下 C MyApps elasticsearch6 5 1 elasticsearch oss 6 5 1 elasti
  • 在 bash 中从占据终端整个宽度的破折号字符绘制一条水平线

    我需要一个命令来在终端中绘制一条水平 线 该线必须恰好等于终端长的宽度 无论当前终端宽度如何 并且由破折号字符组成 尽管也可以使用水平线的 unicode 符号 如果能上色就更好了 我需要像这样使用它 echo some text draw
  • WCF:OperationContext.IncomingMessageProperties.Via 返回错误的 URI

    我在 IIS 中托管 WCF 服务 我在 IIS 中为该站点设置了多个主机名绑定 但是 当向任何非默认绑定发出请求时 OperationContext IncomingMessageProperties Via 属性不会报告正确的 url
  • 如何加载共享库而不加载其依赖项?

    说我有一个图书馆libfoo so 1 这取决于 根据ldd on libbar so 1 然而 libbar so 1目前不可用 我的应用程序需要调用一个函数libfoo so 1这不需要libbar so 1 at all 有没有办法加
  • 局部变量的内存可以在其作用域之外访问吗?

    我有以下代码 include
  • 使用Servlet API,如何确定请求是HTTP/1.0还是HTTP/1.1?

    我正在修复一个错误 该错误仅在客户端使用 HTTP 1 0 并且是在防火墙后面秘密地进行 Internet Explorer 代理 时才会显现出来 详细信息在这里 https issues apache org jira browse TA