filter過濾器實現驗證跳轉_返回驗證結果


1. 需求背景

需要對某個請求url進行攔截,模擬是否可以進入某一個接口,如果攔截需要返回數據false,別問我為何不用intercept攔截器。

2. web.xml

<filter>    
    <filter-name>restfulFilter</filter-name>    
    <filter-class>com.jeenotes.utils.filter.RestfulFilter</filter-class> 過濾器路徑   
</filter>    

<filter-mapping>    
    <filter-name>restfulFilter</filter-name>    
    <url-pattern>/aaa/*</url-pattern>  aaa表示攔截的url,如果你想攔截所有,直接/*即可。   
</filter-mapping> 

 

3. 自定義的Filter

 public class RestfulFilter implements Filter { 

private AAAService aaaService; @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
     //由於filter 優先級要高,所以直接@Autowired引入service是不存在的
//如下是 HttpServletRequest req = (HttpServletRequest)request; HttpServletResponse resp = (HttpServletResponse)response; ServletContext sc = req.getSession().getServletContext();
//如下是創建service過程 XmlWebApplicationContext cxt = (XmlWebApplicationContext)WebApplicationContextUtils.getWebApplicationContext(sc); //aaaServiceImpl 是aaaService實現類 if(cxt != null && cxt.getBean("aaaServiceImpl") != null && aaaService == null) aaaService = (AAAService) cxt.getBean("aaaServiceImpl"); //此處是邏輯
if(成功){ chain.doFilter(request, response); //進入請求的url }else{ req.getRequestDispatcher("/xxx某某url").forward(request,response);//跳轉自己指定的url } } @Override public void destroy() { } }

要跳轉的/xxx某某url

@RequestMapping(value = "/getEntranceStatus", method = RequestMethod.GET, produces = "text/html;charset=UTF-8")
    public String getEntranceStatus(HttpServletRequest request){
    
       //此處就是返回一個false
        
  }

 


免責聲明!

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



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