-
生命周期.
查看全部 -
做笔记了.
查看全部 -
过滤器处理乱码问题,在doFilter中添加request.setCharacterEncoding(charset)
查看全部 -
过滤器在实际项目中的应用场景
1、对用户请求进行统一认证(判断当前用户是否符合认证条件,不符合时进行一些处理)——>登陆校验
2、编码转换(转换一些字符集编码,防止开发中乱码问题)
3、对用户发送的数据进行过滤替换(防止注入一些攻击,对参数进行检测和判别)
4、转换图像格式(对response进行后处理,并转换它的格式输出)
5、对响应的内容进行压缩(可以对内容进行加密操作,数据拿过来时进行加密,加密之后解析再返回给用户)
查看全部 -
Servlet3.0支持异步处理,Filter可以支持异步操作模式。
@WebFilter中asyncSupported设置为true,dispatcherTypes属性中添加DispatcherType.ASYNC
request中的startAsync()表示开启异步操作,返回AsyncContext对象。将此对象传给线程可以获取request,response对象。
使用线程对事务异步处理
web.xml中Servlet要配置支持异步
从结果来看业务是由线程异步完成,线程休眠10s后输出结果
查看全部 -
ERROR:目标资源是通过声明式异常处理机制调用时,过滤器将被调用。
在web.xml中配置错误状态码,错误页面路径。
再配置过滤器处理异常请求,url-pattern配置为错误页面路径,注意dispatcher必须要配置为ERROR,才能在发生错误,跳转到错误页面时调用过滤器。
Servlet3.0 ASYNC 支持异步处理:Filter将异步处理完成相关操作,将一直往下执行。
@WebFilter 用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器。
查看全部 -
Servlet2.5中过滤器的分类:
REQUEST:用户直接访问页面时,Web容器将会调用过滤器。
FORWARD:目标资源是通过RequestDispatcher的forward访问时,该过滤器将被调用。
INCLUDE:目标资源是通过RequestDispatcher的include方法调用时,过滤器将被调用。
重定向sendRedirect,属于REQUEST行为,会被dispatcher配置为REQUEST的Filter处理。
转发getRequestDispatcher().forward(req,res),属于FORWARD行为,会被dispatcher配置为FORWARD的Filter处理。
getRequestDispatcher().include(req,res),属于INCLUDE行为,会被dispatcher配置为INCLUDE的Filter处理。
在jsp页面使用jsp动作标签forward,include 也能实现被相应过滤器处理。
查看全部 -
过滤器链:针对一个用户的请求,找到匹配的过滤器有多个。服务器会按照web.xml中过滤器定义的先后顺序组装成一条链。
执行顺序:用户的请求到达过滤器1,执行过滤器1的Chain.doFilter放行前的代码,过滤器1放行后,请求到达过滤器2的Chain.doFilter放行前的代码,过滤器2放行后,请求到达web资源。响应数据首先,返还给过滤器2,执行过滤器2的Chain.doFilter后的代码,再执行过滤器1的Chain.doFilter后的代码,最后响应给用户。
查看全部 -
实现javax.servlet.Filter接口
在web.xml中注册
针对一个<filter> 可以配置多个<filter-mapping>
<url-pattern>中 * 代表任意值 /index*代表index为前缀的URL, /*代表所有URL。
在的FilterChain的dofilter(servletRequest, servletResponse)方法执行后,访问JSP(目标资源)后,才继续往下执行。
问题环节:
【1】过滤器是否能改变用户请求的Web资源呢?也就是能否改变用户请求的路径?
答:可以,比如:登录,检测到不符合要求,则可以跳转到登陆页面。
【2】过滤器能否直接返回数据,能不能直接处理用户请求?
答:不可以,因为Filter不是标准的Servlet,不能把数据直接返回到用户请求,只能跳转到Web请求的资源,或者跳转、重定向到其他的Web资源。
查看全部 -
web容器启动时加载过滤器,用户的请求经过过滤器,再由过滤器将请求发送给Web资源,Web资源的响应发送给过滤器,过滤器将Web资源的响应发送给用户。
过滤器的生命周期:
web容器启动时根据web.xml的配置实例化一次,初始化。
过滤是根据过滤器中的doFilter()方法。
web容器关闭时过滤器销毁。
查看全部 -
过滤器:过滤源、过滤规则、过滤结果
Web过滤器过滤用户请求,不处理结果
过滤器定义:过滤器是一个服务端的组件,它可以截取用户端的请求与响应信息,并对这些信息过滤。
查看全部 -
init();//初始化
dofilter();//执行
destroy();//销毁过滤器
查看全部 -
过滤器在web.xml中配置且只加载一次
查看全部 -
通过在过滤器中修改字符编码的方式
查看全部 -
请求中文参数乱码的修改方式:
修改tomcat字符集;
添加编码过滤器;
代码中通过getBytes()获取字节码强制转换。
查看全部
举报