filter过滤器实现验证跳转_返回验证结果
生活随笔
收集整理的這篇文章主要介紹了
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;@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic 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}}@Overridepublic void destroy() {}}
要跳轉的/xxx某某url
@RequestMapping(value = "/getEntranceStatus", method = RequestMethod.GET, produces = "text/html;charset=UTF-8")public String getEntranceStatus(HttpServletRequest request){//此處就是返回一個false}?
總結
以上是生活随笔為你收集整理的filter过滤器实现验证跳转_返回验证结果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: background-sizi (转)
- 下一篇: niceScroll滚动条使用