過濾器中的request.getPathInfo()一直返回null
你好前輩,我你的框架上,在webmvaConfigurer中加入了一個過濾器?
AppTokenCheckFilter
這個類的詳情如下:
/** 過濾器 */
public class AppTokenCheckFilter extends OncePerRequestFilter {
? ?@Override
? ?protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
? ? ? ?System.out.println("AppTokenCheckFilter++++++: ?"+request.getPathInfo());
? ? ? ?try {
? ? ? ? ? ?if(!WebConstant.PASS_REQUEST.contains(request.getPathInfo())) {
? ? ? ? ? ? ? ?String token = request.getHeader("Authorization");
? ? ? ? ? ? ? ?//檢查jwt令牌, 如果令牌不合法或者過期, 里面會直接拋出異常, 下面的catch部分會直接返回
? ? ? ? ? ? ? ?Map<String,Object> result = JwtUtil.validateToken(token);
? ? ? ? ? ? ? ?request.setAttribute("uId",result.get("uId"));
? ? ? ? ? ? ? ?request.setAttribute("phone",result.get("phone"));
? ? ? ? ? ?}
? ? ? ?} catch (Exception e) {
? ? ? ? ? ?PathCheckMsgUtil.writeMsgToPage(request, response, ResponseVoResultCode.CODE_AUTHORITY, "您的身份驗證已過期, 請重新登錄", "app no token");
? ? ? ? ? ?return;
? ? ? ?}
? ? ? ?//如果jwt令牌通過了檢測, 那么就把request傳遞給后面的RESTful api
? ? ? ?filterChain.doFilter(request, response);
? ?}
}
當有請求進來后,通過request.getPathInfo()獲取 路徑,一直是null,不明白哪有問題,希望前輩能指點一下?
2020-05-15
先用這個試試看?String?path=request.getRealPath("/");