SPRING #6 - INTERCEPTOR
                                            
                                                
                                                
                                                
                                                
                                                
                                                 3367 단어  SpringInterceptorInterceptor
                    
0. 라이브러리 환경설정
0-1. /interceptor/interceptorConfig.java
- 환경설정파일
 - 주소 필터 사용
 
package com.example.interceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
// 인터셉터 환경설정
// 주소로만 필터처리
@Configuration
public class interceptorConfig implements WebMvcConfigurer {
    @Autowired
    HandlerInterceptor interceptor;
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(interceptor)
                .addPathPatterns("/**")
                .excludePathPatterns( // 수행되지 않아야 하는 주소를 설정
                        "/member/login/**",
                        "/member/logout/**",
                        "/item/image/**",
                        "/item/subimage/**",
                        "/resources/**");
    }
}
1. 사용
1-1. /interceptor/HttpInterceptor.java
- 주소정보, 쿼리정보를 불러오는 기능
 - 주소를 session에 BACKURL로 저장하고 불러오면서 사용
 
package com.example.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
@Component
public class HttpInterceptor implements HandlerInterceptor {
    @Override
    public void postHandle(
            HttpServletRequest request,
            HttpServletResponse response,
            Object handler,
            ModelAndView modelAndView) throws Exception {
        // 주소정보
        String pathName = request.getServletPath();
        // ?뒤의 QUERY정보
        String queryName = request.getQueryString();
        // 세션 객체 가져오기
        HttpSession httpSession = request.getSession();
        // 세션에 추가하기
        httpSession.setAttribute("BACKURL", pathName);
        System.out.println("----------interceptor----------");
        System.out.println("pathName => " + pathName);
        System.out.println("queryName => " + queryName);
        System.out.println("BACKURL => " + httpSession.getAttribute("BACKURL"));
    }
}
1-2. /controller/MemberController.java
- 로그인 POST에서 적용
 
// 로그인
// login
@PostMapping(value = "loginaction")
public String loginactionPOST(
        @RequestParam(name = "uemail") String em,
        @RequestParam(name = "upw") String pw) {
    System.out.println(em);
    System.out.println(pw);
    MemberDTO member = mMapper.memberLogin(em, pw);
    System.out.println("member => " + member);
    if (member != null) {
        httpSession.setAttribute("M_EMAIL", member.getUemail());
        httpSession.setAttribute("M_NAME", member.getUname());
        httpSession.setAttribute("M_ROLE", member.getUrole());
        // 로그인 성공시
        String url = (String) httpSession.getAttribute("BACKURL");
        return "redirect:" + url;
    }
    return "redirect:/member/login";
}
                Author And Source
이 문제에 관하여(SPRING #6 - INTERCEPTOR), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@aro9515/SPRING-6-INTERCEPTOR저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)