过滤器Filter知识点及两种应用:编码过滤和登陆验证
2018-04-02 16:36
441 查看
一。基础知识
使用过滤器功能:当需要限制用户访问某些资源/处理请求时候提前处理资源特点:以组件的形式绑定到web应用程序;链方式处理;可以定义多个;在容器启动时自动加载(与servlet不同)
实现一个过滤器:实现Filter接口,复写相关方法
接口中的三个方法:
1.public void init(FilterConfig FliterConfig)
2.public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException
重要:放行与否取决于filterchain(用户请求向下传递)chain.doFilter(request,response)
调用接口filterchain中的public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException
可能传递给下个过滤器,也可能传给客户端
3.public void destroy()
二。过滤器的配置(谁在前面配置就先加载谁)
1.注解配置(web 3.0模块才可以)2.web.xml配置
<filter>
<fliter-name></filter-name>
<filter-class>包.类</filter-class>
<init-param> //配置初始化值
<param-name></param-name>
<param-value></param-value>
</init-param>
</filter>
<fliter-mapping>
<fliter-name></filter-name>
<url-pattern>/xx/*</url-pattern> 根目录下的xx文件夹下的,决定请求哪个目录时过滤
</filter-mapping>
过滤路径配置类型(不能将两种结合):
1.以目录的方式:/images/*
2.以资源类型:*.jpg
最好先配置过滤器-监听器-其他的
三。过滤器的应用:
1.编码过滤(编码过滤解决输入中文时的乱码问题)请求提交时参数先经过web容器编码,tomcat默认编码为iso-8859-1。
request.setCharacterEncoding("utf-8");//改变请求编码
表单一般都是post提交,但是如果是get提交的话,以上方法不行,仍然使用的是iso-8859-1
解决方法:String wrongStr=request.getParameter("参数名");
String rightStr=new String(wrongStr.getBytes(iso-8859-1),"utf-8");//
在过滤器中设置编码:
在web.xml中设置初始化值,name:encode,value:utf-8
定义一个全局变量,初始化方法中接受utf-8这个参数值(encode参数名)this.encode=request.getParameterName(encode),doFilter()中设置请求编码request.setCharacterEncoding(encode);
2.登陆验证:在过滤器中判断session属性是否为空,从而进行登陆验证
获取session:
HttpServletRequest req=(HttpServletRequest)request;
HttpSession session=req.getSession();
if(session.getAttribute()!=null)
//如果session范围中属性不为null则放行
chain.doFilter(request,response)
//否则
HttpServletResponse resp=(HttpServletResponse)response;
String contextPath=request.getServletContext().getContextPath();//动态获取路径
resp.sendRedirect(contextPath+"/login/login.jsp");//如果没有登陆,则重定向到这个页面
相关文章推荐
- 过滤器Filter的应用:编码过滤
- 过滤器应用:编码过滤、登录验证
- 自定义过滤器Filter进行JWT登陆令牌验证并设置响应头实现跨域时跨域失效
- Web过滤器技术的应用1.检测用户是否登陆2.过滤字符集
- Filter实现表单登陆过滤验证
- UsernamePasswordAuthenticationFilter是登陆用户密码验证过滤器,
- 过滤器(Filter)应用之------设置页面缓存、用户的自动登录和敏感词过滤
- Spring Mvc那点事---(19)Spring Mvc过滤器Filter实现登陆验证
- JSP基础语法之十四:Servlet过滤器,编码过滤器、验证登陆状态过滤器
- jsp Filter 实现编码过滤,和登录验证
- 过滤器Filter的应用:登录验证
- 安装事件过滤器(installEventFilter) ,过滤子控件事件,截获控件按键、鼠标事件
- 过滤器(Filter)的应用
- 使用 PHP 过滤器(Filter)进行严格表单验证
- 微软引入了两种新的网络过滤系统,WFP和NDISfilter
- javaweb学习总结(四十六)——Filter(过滤器)常见应用
- javaweb学习总结(四十六)——Filter(过滤器)常见应用
- 对登陆filter的研究 Servlet过滤器
- 给struts配置登陆验证过滤器,判断Session过期则重新登陆
- 好记性不如烂笔头30-java应用中的过滤器Filter(2)