どのように私は春のプロジェクトにマッピングの重複コードを避けることができますか?

香港開発者:

私は現在、午前マッピング使用してページをPage Controller

すべてのページはのためにチェックする必要がSessionある、重複したコード

どのように私はこのコードの重複を避けるのですか?

@Controller
public class PageController {
...
    @RequestMapping("/view/List")
    public String list(Map<String, Object> model) {
        String session_chk = Utils.SessionCheck(); 
        if(session_chk.equals("none")){
            return "/view/manager/Login";
        }

        return "/view/member/List";
    }

    @RequestMapping("/view/Detail")
    public String detail(Map<String, Object> model) {
        String session_chk = Utils.SessionCheck();
        if(session_chk.equals("none")){
            return "/view/manager/Login";
        }

        return "/view/member/Detail";
    }
...
user7294900:

リダイレクトするフィルタを追加し、チェックを追加

@Component
public class SessionFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
    if (!request.getRequestURI().contains("view/manager/Login") && "none".equals(Utils.SessionCheck())) {
      httpResponse.sendRedirect("view/manager/Login.jsp");
      //....
    } else {
      doFilterInternal(request, response, filterChain);
    }
}

あなたは、すべてのURLに追加することができます:

FilterRegistration sessionFilter = servletContext.addFilter("SessionFilter", SessionFilter.class);
sessionFilter.addMappingForUrlPatterns(null, false, "/*");

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=231544&siteId=1
おすすめ