Servlet3.0-使用注解定義過濾器(Filter)


   Servlet3.0提供@WebFilter將一個實現了javax.servlet.Filter接口的類定義為過濾器組件。

package com.cndatacom.filter;

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.annotation.WebFilter;


/**
 * 使用注解定義編碼過濾器
 * @author Luxh
 */


/**
 * @WebFilter將一個實現了javax.servlet.Filte接口的類定義為過濾器組件
 * 屬性filterName聲明過濾器的名稱,可選
 * 屬性urlPatterns指定要過濾 的URL模式,也可使用屬性value來聲明.(指定要過濾的URL模式是必選屬性)
 */
@WebFilter(filterName="encodingFilter",urlPatterns="/*")
public class EncodingFilter implements Filter {
	
	@Override
	public void init(FilterConfig arg0) throws ServletException {

	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain filterChain) throws IOException, ServletException {
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		filterChain.doFilter(request, response);
	}

	@Override
	public void destroy() {
		
	}

}

  @WebFilter(filterName="encodingFilter",urlPatterns="/*")

  @WebFilter將一個實現了javax.servlet.Filte接口的類定義為過濾器組件

  屬性urlPatterns指定要過濾的URL模式,也可以用屬性value來指定。

  可以指定多種過濾模式@WebFilter(filterName="encodingFilter",urlPatterns={"/UserManagerServlet","/index.jsp"})

  web.xml依然是無需任何配置的。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  
</web-app>

  Servlet3.0規范為開發人員實現了:

  簡單性

  減輕開發工作量

  遵循web 2.0原則


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM