概述
这里我我介绍的是针对使用Servlet3.0的注解进行配置:
1.启动类里面增加 @ServletComponentScan,进行扫描
2.新建一个Filter类,implements Filter,并实现对应的接口
3. @WebFilter 标记一个类为filter,被spring进行扫描
urlPatterns:拦截规则,支持正则
直接上代码:
package com.study.studyBoot.Filter; import com.study.studyBoot.controller.FileController; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.thymeleaf.util.StringUtils; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.logging.LogRecord; /** * @Description: 自定义拦截器 * @author: panboyang * @date :2019-06-30 13:05:01 * @params :urlPatterns 拦截规则,支持正则 */ @WebFilter(urlPatterns = "/test/*", filterName = "loginFilter") public class LoginFilter implements Filter { private static final Logger LOG = LoggerFactory.getLogger(LoginFilter.class); /** * @Description: 容器被加载的时候调用 * @author: panboyang * @date :2019-06-30 13:08:05 * @params: No such property: code for class: Script1 */ @Override public void init(FilterConfig filterConfig) throws ServletException { LOG.info("容器正在初始化"); } /** * @Description: 拦截的时候调用 * @author: panboyang * @date :2019-06-30 13:08:05 * @params: No such property: code for class: Script1 */ @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { LOG.info("正在拦截"); HttpServletRequest request= (HttpServletRequest) servletRequest; HttpServletResponse response= (HttpServletResponse) servletResponse; //得到前端传进来的登录信息,登录账号密码 String username= request.getParameter("userName"); String pwd= request.getParameter("pwd"); //查询数据库进行匹配 String sqlUserName="数据库用户名"; String sqlPwd="数据库密码"; if(StringUtils.isEmpty(username)&&StringUtils.isEmpty(pwd)){ LOG.info("账号密码不能为空"); }else { if(username.equals(sqlUserName)&&pwd.equals(sqlPwd)){ //放行 filterChain.doFilter(servletRequest,servletResponse); }else { response.sendRedirect("error.html"); return; } } } /** * @Description: 摧毁的时候调用 * @author: panboyang * @date : * @params: No such property: code for class: Script1 */ @Override public void destroy() { LOG.info("容器正在摧毁"); } } 启动类增加注解:
查看启动日志:
最后
以上就是火星上大船为你收集整理的自定义Filter的全部内容,希望文章能够帮你解决自定义Filter所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复