-
@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的地址必须相同查看全部
-
过滤器的分类: 如下图所示 servlet3.0通过注解@WebFilter使用过滤器并定义属性 常用属性有: 属性名 类型 描述 filterName String 指定过滤器的 name 属性,等价于 <filter-name> value String[] 该属性等价于 urlPatterns 属性。但是两者不应该同时使用。 urlPatterns String[] 指定一组过滤器的 URL 匹配模式。等价于 <url-pattern> 标签。 servletNames String[] 指定过滤器将应用于哪些 Servlet。取值是 @WebServlet 中的 name 属性的取值,或者是 web.xml 中 <servlet-name> 的取值。 dispatcherTypes DispatcherType 指定过滤器的转发模式。具体取值包括: ASYNC、ERROR、FORWARD、INCLUDE、REQUEST。 initParams WebInitParam[] 指定一组过滤器初始化参数,等价于 <init-param> 标签。 asyncSupported boolean 声明过滤器是否支持异步操作模式,等价于 <async-supported> 标签。 description String 该过滤器的描述信息,等价于 <description> 标签。 displayName String 该过滤器的显示名,通常配合工具使用,等价于 <display-name> 标签查看全部
-
请求转发:浏览器的地址栏不会变化,性能相对更好一些,因为获取的资源是没有二次讲过浏览器的<br><br> 重定向:浏览器的地址栏是会变化的,获取资源的时候经过了二次通过浏览器发送请求的过程。 请求转发是指将请求再转发到另一资源(一般为JSP或Servlet)。此过程依然在同一个请求范围内,转发后浏览器地址栏内容不变 请求转发使用RequestDispatcher接口中的forward()方法来实现,该方法可以把请求转发到另外一个资源,并让该资源对浏览器的请求进行响应 RequestDispatcher rd = request.getRequestDispatcher(path); rd.forward(request,response); 或request.getRequestDispatcher(path) .forward(request,response); 2.重定向 重定向是指页面重新定位到某个新地址,之前的请求失效,进入一个新的请求,且跳转后浏览器地址栏内容将变为新的指定地址 重定向是通过HttpServletResponse对象的sendRedirect()来实现,该方法相当于浏览器重新发送一个请求 response.sendRedirect(path); forward转发 :一次请求一次回应 服务器跳转 sendredirect重定向: 两次请求两次回应 客户端跳转 由于sendredirect是request,会激活REQUEST类型的过滤器,因此要注意,是否会形成重定向循环 request 过滤request请求 forward 过滤重定向请求 include 过滤include请求查看全部
-
Web应用允许多个过滤器来过滤页面请求——联想现实生活中的例子是最好理解的啦!比如:为了获得更加干净的水,可能需要多个过滤器来进行过滤。 这个时候就分为两种情况了 1:多个过滤器过滤的URL不同,那么此时的多个过滤器是互不相干的,各过滤各的,互不干扰 2:多个多虑期过滤的URL相同,那么此时的多个过滤器就形成了一个过滤器链,此时就有个一个问题了Web容器现将对应的请求给谁过滤呢?处理规则也很简单,就是根据在Web.xml文件中配置的声明的顺序来决定,那个先过滤那个在过滤查看全部
-
JAVA过滤机制——第一个过滤器案例 1、创建一个过滤器类 ,继承自servlet下的Filter 2、重写三个方法init() doFilter() destroy()方法 (1)init()初始化:这个方法可以读取web.xml文件中的过滤器初始化参数。通过参数FilterConfig arg0可以获取更多参数 (2)doFIlter()核心:完成实际的过滤操作。当用户请求访问与过滤器【关联的URL】时,Web容器将先调用过滤器的doFilter方法,FilterChain arg2参数可以调用chain.doFilter方法,将请求传给下一个过滤器(或目标资源),或利用转发,重定向将请求转发给其他资源。 (3)web容器在消耗过滤器前调用该方法,用于释放过滤器占用的资源。(大多数情况用不到)查看全部
-
过滤器的生命周期 1.在web容器启动时依据web.xml实例化:一次 2.初始化 init():一次 3.过滤 doFilter():多次 4.销毁 destroy():一次,web容器关闭查看全部
-
@JAVA过滤机制——过滤简介 1、过滤器三部分:过滤源(用户请求)——>过滤规则——>过滤结果 2、过滤器不处理结果,只做辅助性操作 3、定义:过滤器是一个【服务器端】的组件,它可以【截取用户端的请求和响应信息】,并对这些信息过滤查看全部
-
guolvqiliande fangfa查看全部
-
guoluqide gonzuoyuanli查看全部
-
Filter查看全部
-
WebFilter常用属性查看全部
-
public void doFilter(servleRequest request,ServletRwaponse respon) System.out,prinln("start-----doFilter"); chain.doFilter(request,response); httpServleRequest req=(HttpServletResponse)response; response2.sengRedirect(req.getContextpath() "/main.jsp); System.out.prinln("end-----doFilter");查看全部
-
过滤器链查看全部
-
实例化--------web.xml 初始化--------init(); 过滤----------doFilter(); 销毁----------destroy();查看全部
-
过滤器的工作原理查看全部
举报
0/150
提交
取消