Maison > Java > javaDidacticiel > Une brève introduction au filtre Servlet Filter (avec des exemples)

Une brève introduction au filtre Servlet Filter (avec des exemples)

不言
Libérer: 2018-11-24 16:54:34
avant
3567 Les gens l'ont consulté

Cet article vous apporte une brève introduction à Servlet Filter (avec des exemples). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Fonctionnalités

1) Le filtre dépend du conteneur Servlet et fait partie de la spécification Servlet. Trois classes d'interface sont définies dans l'API Servlet : Filter, FilterChain, FilterConfig.

2) La fonction de base est d'intercepter le processus d'appel du Servlet, afin d'implémenter certaines fonctions spéciales avant et après que le Servlet effectue le traitement des réponses.

3) Vous devez vous inscrire et définir les ressources qu'il peut intercepter dans le fichier web.xml.

Encodage

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() {
		 
	} 

}
Copier après la connexion

Paramètres web.xml

	<!-- 配置过滤器 -->
	<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>
Copier après la connexion

Application

1) Spécifiez le format d'encodage

request.setCharacterEncoding(encoding);
filterChain.doFilter(request, response);
Copier après la connexion

2) Si l'utilisateur est connecté et s'il peut accéder au menu

String userId=(String) session.getAttribute("userId");
if (userId ==null){
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal