- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我尝试使用 Sun JRE 的 HTTP 服务器做一些事情。看了两遍文档,还是一头雾水。
com.sun.net.httpserver.Filter javadoc 说明如下
Asks this filter to pre/post-process the given exchange. The filter can :
- examine or modify the request headers
- filter the request body or the response body, by creating suitable filter streams and calling HttpExchange.setStreams(InputStream,OutputStream)
- set attribute Objects in the exchange, which other filters or the exchange handler can access.
decide to either :
- invoke the next filter in the chain, by calling Filter.Chain.doFilter(HttpExchange)
- terminate the chain of invocation, by not calling Filter.Chain.doFilter(HttpExchange)
if option 1. above taken, then when doFilter() returns all subsequent filters in the Chain have been called, and the response headers can be examined or modified. if option 2. above taken, then this Filter must use the HttpExchange to send back an appropriate response
我不清楚什么决定过滤器是预处理过滤器还是后处理过滤器。正如我假设的那样,后处理过滤器在 HttpHandler 之后 运行,因此它可以与 HttpHandler 修改的 HttpExchange 一起工作。但是,过滤器只被调用一次,因此必须有一个“魔法”决定过滤器在处理程序之前或之后运行。
请帮我说清楚
最佳答案
每个过滤器都是前置过滤器和后置过滤器。我的意思是请求在堆栈中移动时通过它,然后响应在返回客户端的途中通过它返回。调用过滤器的顺序取决于您将它安装在 web.xml
文件中的顺序。
如果您将它用作预过滤器,您将修改 InputStream
,如果您希望将它用作 Post,您将修改 OutputStream
。您甚至可以通过链向下传递您自己的 InputStream
和 OutputStream
。
例如,假设您有几个 Filter1
、Filter2
和 Filter3
。 InputStream
将首先通过 Filter1
,然后是 Filter2
,最后是 Filter3
,然后再进行处理。生成的 OutputStream
将返回到 Filter3
,然后是 Filter2
,最后是 Filter1
,然后发送到客户端。因此,您可以通过这种方式修改预处理和/或后处理。
关于java - Sun HTTPServer - 如何编写后处理过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14592299/
我必须在 Python 中分析/可视化模拟(Simulink、EES)的结果。 平均我必须从结果文件中导入 40-100 个变量(每个变量是一个包含多个 thausend 行的向量):每个变量在 re
我有一个使用 glKit 运行的游戏,我想在每一帧渲染后使用着色器添加一些后期处理效果。 是否可以在 glKit 下执行此操作? 最佳答案 这是可能的。 您需要创建自己的屏幕外帧缓冲区对象和相关纹理。
我是 GPS 世界的新手。我需要知道如何使用 DGPS 进行后处理。我在网上找到了关于 DGPS、后处理等的定义,但是,找不到关于如何实际进行 DGPS 后处理的明确步骤。在搜索提供商时,我发现 CO
我正在研究从 Apache 切换到 Nginx 作为后端 Grails 应用程序前面的反向代理。我正在玩一些 URL 重写并且遇到了从我的后端发回的响应的问题。我可以处理位置 header 重写,但我
如何在 Assimp 中加载网格、编辑顶点,然后让 assimp 重新计算顶点并进行其他后处理? 导入器可以导入场景并支持一些标志,其中包括生成法线的标志。然而,在我加载网格之后,我稍微编辑了网格(添
我正在尝试实现来自 http://www.aftek.com/afteklab/aftek-RTMP-library.shtml 的库从 red5 服务器流式传输实时视频。 在服务器上,我正在使用 s
我在 Godot 中有一个项目可以在敌人上方渲染广告牌四边形。四边形(网格实例)是敌人节点的子节点。我只想将四边形渲染到视口(viewport)以进行后处理,但四边形需要在屏幕上具有与敌人相同的位置(
我正在设置一个服务器来使用 tesseract 进行大量自动 OCR,并且我想对结果进行一些后处理。 在理论方面有很多关于此的资源,但在实践方面我没有找到太多资源。 我想你可以做一些基本的事情,比如:
假设我有一个函数fancyParse,旨在获取服务器返回的响应并将其转换为其他内容。如果响应毫无意义,或者设置了特殊的“内部错误”标志,则该函数将抛出异常。 我想将此函数链接到 $.post 调用中以
我有一个带有 knockout 值的基本输入字段: 但是,我想在收到“mytext”的值后对我的 View 模型执行一些逻辑。最初我想到了某种后处理事件ala“valueUpdate”,但基本上我只
将 PostProcessEffectRenderer 的实现添加到 Unity 后处理堆栈后,该效果在 Unity 编辑器中完美运行,但未在构建的游戏中显示。 对构建质量的更改没有效果,使用最高质量
我有一堆相当冗长的 xml 文件,它们以某种方式命名,例如“verbosefile_*.xml”。我有一对 python 脚本,可以将这些 xml 文件转换为紧凑的 json 格式,反之亦然。目前我的
我需要对从包(包是共享对象文件)导入的函数进行多次调用。但是,每次我从这个包中调用函数时,我都需要执行一些预处理/后处理步骤。像这样的事情: import xyz prepare() xyz.foo(
我需要对从包(包是共享对象文件)导入的函数进行多次调用。但是,每次我从这个包中调用函数时,我都需要执行一些预处理/后处理步骤。像这样的事情: import xyz prepare() xyz.foo(
我的问题是是否有一种方法可以简单地发布处理 wicket HTML 响应? 我想做的是使用 Rhino (http://www.mozilla.org/rhino/) 和 jQuery 将一些 DOM
这是我要存储在我的 Realm 数据库中的类。在构建应用程序时,它会抛出 “错误:如果声明了自定义构造函数,则必须声明不带参数的默认公共(public)构造函数。” 但在使用 realm 之前没问题
我正在尝试组合 SMAA和 SSAO在我的 THREE.EffectComposer 中,如下所示: this.composer = new THREE.EffectComposer(this.ren
我正在尝试为我的应用程序开发直接文件上传到 S3。我正在关注 github 教程,一切都差不多,但是在尝试进行后期处理时收到错误消息。 我做了以下事情: 我有一个名为 clip.rb 的 active
我已经开始使用 C++ 并在 projecteuler.net 上摆弄一些问题。 我在回答问题 #4,这是我的代码: 判断数字是否为回文的算法: bool forwardCheck(long posP
我是一名优秀的程序员,十分优秀!