-
当有过滤器时,用户不能直接访问web资源。过滤器在web容器启动后就生效了,用户请求先发送到过滤器,过滤器检验该请求是否符合规则,若符合则将该请求发送给web资源,web资源处理他的信息,然后响应到过滤器,过滤器将其发送给用户。查看全部
-
这里有点难,请多看多操作几次。查看全部
-
登录验证过滤器: 过滤规则:通过检查session中是否有用户信息来判断是否已经登录,登录则放行,未登录则重定向到登录页 过滤的路径: 1.简单的将要过滤的路径添加到配置文件中过(但经常会很多不推荐) 2.使用/*过滤所有,此时有一些不应过滤的路径(比如登录页本身),只能在doFilter中判断并放行.一种好的方式是:将不过滤的路径通过init-param提交,在doFilter通过循环来判断,这样只需要将不过滤的路径加到配置文件中即可 此外这一节演示了设置和读取init-param的方法查看全部
-
总结: 过滤器的生命周期: 实例化(web.xml)--〉初始化(init())--〉过滤(doFilter())--〉销毁(destory()) 1.过滤器的概念: 过滤器是一个服务器端的组件,它可以截取用户端的请求与响应信息,并对这些信息过滤。 1.概念:过滤器是一个服务器上的组件,它可以截取用户端的请求和相应信息,并对其过滤 2.工作原理: 用户请求--〉过滤器将用户请求发送至Web资源--〉web资源--〉web响应发送至过滤器--〉过滤器--〉过滤器将web的响应返回给用户 3.过滤器的生命周期: 实例化(web.xml)--〉初始化(init())--〉过滤(doFilter())--〉销毁(destory()) 4.过滤器的API: init()、doFilter()、destory() 5.多个过滤器(过滤器链) 6.过滤器分类 7.过滤器实例:登录过滤器和编码过滤器 服务器会按照web.xml中过滤器定义的先后顺序组装成一条链查看全部
-
过滤器在十几项目中的应用场景查看全部
-
异步过滤器 根据过滤器的规则,过滤器得等servlet执行结束才能停止,所以如果servlet执行很久,过滤器得等很久,所以说呢,为了使得过滤器早点执行结束,就让servlet在后台执行,过滤器提前结束,这就是异步过滤器的优点所在 @WebServlet(asyncSupported = true, displayName = "/AsyncServlet", urlPatterns={"/servlet/AsyncServlet"}) asyncSupported = true 是必须开启用以支持异步 @WebFilter(filterName="AsynFilter",asyncSupported=true,value={"/servlet/AsyncServlet"},dispatcherTypes={DispatcherType.REQUEST,DispatcherType.ASYNC}) asyncSupported = true 是必须开启用以支持异步 dispatcherTypes={DispatcherType.REQUEST,DispatcherType.ASYNC} DispatcherType.REQUEST必须要加上,否则过滤器就不会生效了 同时注意在过滤的地址和servlet的地址必须相同查看全部
-
过滤器的分类查看全部
-
本节主要讲解了过滤器的两大分类:request和forward,其中过滤的默认规则是request方式 假设有两个页面:index.jsp和main.jsp,都使用了默认的过滤规则, 如果在过滤器的doFilter1方法中把index.jsp重定向到main.jsp页面上,则会死循环,因为sendRediect的过滤类型是request,当重定向时跳转到main.jsp的过滤规则也是request,会继续触发main.jsp的过滤器,从而陷入死循环; 而若是请求转发,其默认过滤规则是forward,当请求转发到main.jsp后,main.jsp的过滤规则是request而不是forward,所以不触发过滤; 当然,如果把请求转发的规则改为forward,那么也会陷入循环; 或者在jsp上写入script代码<jsp:forward page="/main.jsp">也会匹配过滤规则决定导致会不会产生死循环的结果;查看全部
-
过滤器链查看全部
-
多个过滤器的情况 1:多个过滤器过滤的URL不同,那么此时的多个过滤器是互不相干的,各过滤各的,互不干扰 2:多个多虑期过滤的URL相同,那么此时的多个过滤器就形成了一个过滤器链,根据在Web.xml文件中配置的声明的顺序来决定,哪个先过滤哪个后过滤查看全部
-
filter过滤器的Web.xml配置查看全部
-
过滤器的生命周期 1.实例化 new 只创建一次,在容器启动时 2.初始化 init 在容器启动时,实例化后,只初始化一次 3.过滤 doFilter 在过滤访问时 4.销毁 destroy 容器关闭时 过滤器配置在web.xml中查看全部
-
过滤器的工作原理查看全部
-
我的理解是,当页面以不同方式(直接访问,转发,include)被请求时,也会调用到相应的过滤器查看全部
-
@WebFilter属性查看全部
举报
0/150
提交
取消