zoukankan      html  css  js  c++  java
  • Shiro Filter引发的思考

    FilterChain过滤链

    假设我们有两个Filter(HelloFilter 和WorldFilter ),一个请求过来的流程是这样:

    HelloFilter doFilter start......
    WorldFilter doFilter start......
    Hello业务方法......
    WorldFilter doFilter end......
    HelloFilter doFilter end......

    假设HelloFilter的doFilter中有请求转发或者是重定向至world业务路径且不再执行chain.doFilter(reques, response),一个请求过来的流程是这样:

    HelloFilter doFilter start......
    World业务方法......
    HelloFilter doFilter end......

    假设HelloFilter的doFilter中有请求转发或者是重定向至world业务路径且执行chain.doFilter(reques, response),一个请求过来的流程是这样:

    HelloFilter doFilter start......
    World业务方法......
    WorldFilter doFilter start......
    WorldFilter doFilter end......
    HelloFilter doFilter end......

    假设HelloFilter的doFilter中有请求转发或者是重定向至world业务路径且执行chain.doFilter(reques, response),WorldFilter的doFilter中有请求转发或者是重定向至filter业务路径再执行chain.doFilter(reques, response)或者是不再执行chain.doFilter(reques, response),一个请求过来的流程是这样:

    HelloFilter doFilter start......
    World业务方法......
    WorldFilter doFilter start......
    java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed

    假设HelloFilter的doFilter中有请求转发或者是重定向至world业务路径且执行chain.doFilter(reques, response),WorldFilter的doFilter执行chain.doFilter(reques, response)或者是再请求转发或者是重定向至filter业务路径,一个请求过来的流程是这样:

    HelloFilter doFilter start......
    World业务方法......
    WorldFilter doFilter start......
    Hello业务方法......
    java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed
  • 相关阅读:
    MySQL查询今天/昨天/本周、上周、本月、上个月份数据的sql代码
    lumen 登陆 注册 demo
    Maven与Ant的区别
    Java中String为什么是final
    一天一点MySQL复习——获取数据库系统时间、变量赋值、变量比较
    一天一点MySQL复习——存储过程
    Mybatis学习——传递Map型参数
    Java修饰符
    RegEx正则表达式学习笔记
    一天一个Java基础——通过异常处理错误
  • 原文地址:https://www.cnblogs.com/BINGJJFLY/p/9378522.html
Copyright © 2011-2022 走看看