Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javax.servlet.filter类中的请求/响应处理_Java_Jakarta Ee_Servlet Filters - Fatal编程技术网

javax.servlet.filter类中的请求/响应处理

javax.servlet.filter类中的请求/响应处理,java,jakarta-ee,servlet-filters,Java,Jakarta Ee,Servlet Filters,如何检测筛选器类是否要处理请求/响应?另外,我需要取消对servlet的请求,并希望创建自己的响应,并从dofilter方法返回它。有什么可能的方法可以做到这一点吗?每个筛选器都可能影响请求和响应中的任何一个或一个。这完全取决于您在调用chain.doFilter(…)之前和/或之后是否执行了任何操作,以及是否传入了包装请求和/或响应 如果您需要在筛选器中创建自己的响应,只需不调用chain.doFilter(…)并从筛选器中提供自己的响应即可 请参阅以下文件,包括: 此方法的典型实现如下所示

如何检测筛选器类是否要处理请求/响应?另外,我需要取消对servlet的请求,并希望创建自己的响应,并从dofilter方法返回它。有什么可能的方法可以做到这一点吗?

每个筛选器都可能影响请求和响应中的任何一个或一个。这完全取决于您在调用
chain.doFilter(…)
之前和/或之后是否执行了任何操作,以及是否传入了包装请求和/或响应

如果您需要在筛选器中创建自己的响应,只需不调用
chain.doFilter(…)
并从筛选器中提供自己的响应即可

请参阅以下文件,包括:

此方法的典型实现如下所示 模式:- 1.检查请求 2.(可选)使用自定义实现包装请求对象,以过滤输入过滤的内容或标题 3.(可选)使用自定义实现包装响应对象,以过滤内容或标题以进行输出过滤 4.a) 使用FilterChain对象(chain.doFilter())调用链中的下一个实体, 4.b) 或者不将请求/响应对传递给过滤器链中的下一个实体以阻止请求处理 5.在调用过滤器链中的下一个实体后,直接在响应上设置头


我已经使用response.getWriter()编写了响应(“响应数据”); 并通过删除该链避免响应传递到servlet。doFilter()

现在,我正在验证doFilter方法中的会话变量(用于身份验证)。 由于请求和响应都是在同一个doFilter方法中处理的,所以我认为这些会话验证在请求发生时和响应发生时发生了2次。 但是,如何找到doFilter当前正在处理的内容(请求/响应)?
因此,我只能在请求时进行会话验证

请澄清您想做什么解释当我们在filter中处理请求和响应时,我如何仅为请求实现筛选器?