웹개발을 하다보면 많은 페이지마다 반복되어야 하는 것들이 있다
예를들어 페이지를 이동할때마다 권한 검사를 한다던가 로그를 기록해야 한다던가 하는 것들
또한 URL을 요청해 컨트롤러가 구동되기 전 혹은 구동된 후에 실행시키고 싶은 것들도 있다
그런 인터셉터 기능을 설정하는 방법을 알아 보자
1. dispatcher-servlet.xml 설정
1 2 3 4 5 6 7 | <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"> <property name="interceptors"> <list> <ref bean="localeChangeInterceptor" /> </list> </property> </bean> | cs |
이렇게 생겨먹은 부분이 있는데 이 List 사이에
<ref bean="localeChangeInterceptor" /> 얘는 건들이지 말고 그 밑에
<ref bean="id값" />을 넣어 준다
그리고 아래와 같은 코드를 추가 시켜 준다
1 2 3 4 5 6 7 8 | <bean id="위에 추가한 id값" class="인터셉터 기능을 수행할 패키지경로.클래스명"> <!-- 인증 체크가 필요 없는 URL 리스트 --> <property name="urls"> <list> 제외시킬 url 목록 </list> </property> </bean> | cs |
다음은 실행시킬 java 클래스를 만든다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | package 패키지 경로; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; /** * @패키지명 : 블로그용 * @파일명 : PlatformInterceptor.java * @작성일 : 2016. 5. 23. * @작성자 : "In Chee su" * @설명 : 인터셉트 */ public class 클래스명 extends HandlerInterceptorAdapter { // 인증 체크가 필요 없는 URL 리스트 List<String> urls; public void setUrls(List urls) { this.urls = urls; } /* (non-Javadoc) * @see org.springframework.web.servlet.handler.HandlerInterceptorAdapter#preHandle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object) */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 기능을 수행하고 Controller를 실행 하려면 // return true; // 특정 체크에서 일치하지 않는다면 // response.sendRedirect("특정 에러 페이지로 보낸다"); // return false; // 인증 체크가 필요 없는 URL 체크 for(int i=0; i < urls.size(); i++){ if (request.getRequestURI().matches(urls.get(i))) { System.out.println("== 인증 체크가 필요 없는 URL ============================"); System.out.println("== URL : "+ urls.get(i) +" ============================"); System.out.println("== return true ============================"); System.out.println("== 인터셉터 종료 ============================"); return true; } // 첫페이지가 로그인 페이지일 경우 // 첫페이지 jsession때문에 request.getRequestURI().indexOf("/login/login.do") != -1 사용 if(request.getRequestURI().indexOf(urls.get(i)) != -1){ return true; } } // 세션이 있는지 체크 // 세션에 로그인한 정보가 있는지 체크 return true; } } | cs |
이렇게 만들면 된다.
'Yame Programmer > 전자정부프레임워크' 카테고리의 다른 글
Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener (1) | 2016.06.02 |
---|---|
전자정부 프레임워크 스프링 프로퍼티[properties] 추가 하기 (1) | 2016.06.02 |
서버[tomcat] 실행시 클래스 실행 (0) | 2016.05.24 |
톰캣[tomcat] context간 세션 공유 (0) | 2016.05.24 |
DWGViewX no mapping uri오류 해결 (0) | 2016.01.08 |
This is probably going to be a limitation on windows which locks the files in use. bndtools is using bnd which is using the plugins in cnf. On a sane file system, they can be deleted. I supposed the only thing that could be done is to set the files up for deletion on vm exit.
You can, of course, complete the deletion from the command line after exiting eclipse.
대충... 그냥... 다른데서 쓰고 있으니까 못지운다는 얘기 같은데...
서버 끄고 이클립스 끄고 다시 열어서 지우니까 지워진다.
포스팅이 도움이 되셨다면 마우스를 조금만 움직여서
공감하기를 눌러주세요 블로거에게 큰 힘이 됩니다~!