web基础-过滤器

过滤器

作用:

  1. 对服务器接受的请求资源和响应给浏览器的资源进行管理
  2. 保护servlet

使用

  1. 创建一个Filter接口的普通java类
  2. 复写接口的方法
    init() 服务器启动的时候自动调用‘’
    doFilter() 主动调用chain.doFilter放行
    destory() 服务器关闭的时候自动调用
  3. 在web.xml中配置过滤器,使服务器自动调用过滤器
  <filter>
  	<filter-name>myFilter</filter-name>
  	<filter-class>edu.yjsj.filter.Filter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>myFilter</filter-name>
	<url-pattern>/*</url-pattern> 	
  </filter-mapping>

以上为单个web.xml配置文件,其中

  1. url-pattern:/*表示拦截所有的请求
  2. url-pattern:*.do表示拦截所有.do结尾的请求,一般进行模块化拦截处理
  3. url-pattern:/ts 表示拦截指定servlet的请求

过滤器生命周期

服务器启动到关闭

执行

浏览器发起请求到服务器,服务器接收到请求后,根据uri在web.xml中找到对应的过滤器执行doFilter方法,该方法对此次请求经行处理后如果符合要求则放行,放行后如果还有符合要求的过滤器则继续过滤,最终找到对应的servlet进行请求处理,service方法执行后还会返回到对应的doFilter方法中。

案例

  1. 统一编码格式
  2. session管理
  3. 权限管理
  4. 资源管理(同一水印,和谐词汇等等)
  5. 。。。
		//设置编码格式
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		response.setCharacterEncoding("utf-8");
		//session管理
		HttpSession hs = ((HttpServletRequest)request).getSession();
		if(hs.getAttribute("user") == null) {
			((HttpServletResponse)response).sendRedirect("/login.jsp");
		}else {
			//放行
			chain.doFilter(request, response);
		}	

以上是学习过程积累,有问题欢迎指教

发布了8 篇原创文章 · 获赞 1 · 访问量 71

猜你喜欢

转载自blog.csdn.net/weixin_44172800/article/details/103985388