为了账号安全,请及时绑定邮箱和手机立即绑定

初步接触过滤器[Filter]

标签:
Java

在访问页面,页面提交请求,服务器返回请求的过程中,可以加一层过滤器

以下是一个简单的过滤器,作用是修改所有servlet的response和request的编码格式

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DoEncoding implements Filter{

    @Override
    public void destroy() {
        /**
         * 页面销毁的时候调用本函数
         */

    }

    @Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain)
            throws IOException, ServletException {
        /**
         * 过滤器
         */
        HttpServletResponse response = (HttpServletResponse) arg1;//类型转换
        HttpServletRequest request = (HttpServletRequest) arg0;
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        chain.doFilter(request, response);//返还对象至servlet

    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {
        /**
         * 页面初始化的时候调用本函数
         */

    }

}

特别说一下,继承的filte类来自 import javax.servlet.Filter

在tomcat的配置中,使用过滤器也需要在web.xml中配置

方法和配置servlet基本一样

代码如下

 <filter>
    <filter-name>eccoding</filter-name> //名称
    <filter-class>com.t.servlet.DoEncoding</filter-class> //调用的java类
  </filter>
  <filter-mapping>
      <filter-name>eccoding</filter-name>//名称
      <url-pattern>/*</url-pattern> //对所有的本目录下的servlet生效,也可以指定目录
  </filter-mapping>

过滤器的作用还有很多,很多判断可以交给过滤器执行,比如该户是否登录,这样就不需要在每个页面都验证用户是否登录,只需要在每次递交请求的时候由过滤器检查一下session就可以了.

过滤器的触发在客户端请求发出之后,服务器接受之前,反之亦然!

外行,初学java,请多指教.

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消