Heim >Java >javaLernprogramm >Eine kurze Einführung in den Servlet-Filter Filter (mit Beispielen)

Eine kurze Einführung in den Servlet-Filter Filter (mit Beispielen)

不言
不言nach vorne
2018-11-24 16:54:343540Durchsuche

Der Inhalt dieses Artikels ist eine kurze Einführung in den Servlet-Filter (mit Beispielen). Freunde in Not können sich darauf beziehen.

Funktionen

1) Filter hängt vom Servlet-Container ab und ist Teil der Servlet-Spezifikation. Drei Schnittstellenklassen sind in der Servlet-API definiert: Filter, FilterChain, FilterConfig.

2) Die Grundfunktion besteht darin, den Prozess des Servlet-Aufrufs abzufangen, um einige spezielle Funktionen zu implementieren, bevor und nachdem das Servlet die Antwortverarbeitung durchführt.

3) Sie müssen die Ressourcen, die es abfangen kann, in der Datei web.xml registrieren und festlegen.

Kodierung

public class UserNoFilter implements Filter { 
    
	private FilterConfig filterConfig; //获取参数配置

	public void init(FilterConfig fConfig) throws ServletException {
		this.filterConfig = fConfig;
	}
	
	/**
	 * 业务逻辑判断
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		
		String initUser = filterConfig.getInitParameter("userNo");
		String userNo = request.getParameter("userNo");//从提交请求获取用户账号
		
		if(!initUser.equals(userNo)){
			request.setAttribute("message", "用户名不正确");
			request.getRequestDispatcher("/index.jsp").forward(request, response);
			return;
		}
		
		chain.doFilter(request, response);
	} 
	
	public void destroy() {
		 
	} 

}

web.xml-Parameter

	<!-- 配置过滤器 -->
	<filter>
		<display-name>UserNoFilter</display-name>
		<filter-name>UserNoFilter</filter-name>
		<filter-class>com.demo.filter.UserNoFilter</filter-class>
		<init-param>
			<param-name>userNo</param-name>
			<param-value>admin</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>UserNoFilter</filter-name>
		<url-pattern>/hello.jsp</url-pattern> 
	</filter-mapping>

Anwendung

1) Kodierungsformat angeben

request.setCharacterEncoding(encoding);
filterChain.doFilter(request, response);

2) Ob der Benutzer angemeldet ist und ob der Benutzer auf das Menü zugreifen kann

String userId=(String) session.getAttribute("userId");
if (userId ==null){
}

Das obige ist der detaillierte Inhalt vonEine kurze Einführung in den Servlet-Filter Filter (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen