Spring

ViewResolver 활용하기

Cal-D 2020. 2. 5. 17:49

ViewResolver를 이용하면 클라이언트로부터의 직접적인 JSP 호출을 차단할 수 있어서 대부분 웹 프로젝트에서 ViewResolver 사용은 거의 필수이다.

ViewResolver 역시 여러 가지가 있지만 JSP를 View로 사용하는 경우에는 InternalResourceViewResolver를 사용한다. 

 

클라이언트 브라우저에서 JSP 파일을 직접 호출할경우

예를 들면 getBoardList.jsp 파일을 직접 호출하면 오류는 없지만 데이터가 출력 안됨. 왜?

 

게시글 목록을 검색하는 GetBoardListController가 실행되지 않았기 때문에.

 

따라서 사용자가 getBoardList.jsp 파일을 직접 호출하면,에러가 발생하고 GetBoardListController부터 실행할 수 있도록 적절히 제어해야 하는데, 이때 ViewResolver를 이용하면 된다. 

 

WEB-INF 폴더는 브라우저에서 접근 할 수 없다. 즉, JSP파일을 WEB-INF폴더로 이동시켜 놓으면 클라이언트 브라우저에서 접근할 수 없다. 

 

ViewResolver를  사진처럼 설정하면, WEB-INF 폴더에 JSP 파일을 View화면으로 사용 가능. 

다만 모든 View 가 ViewResolver를 통과하기때문에,WEB-INF 안에 있는 JSP가 아닐 경우에는 어떤식으로 해야하나?

 

위와 같이 redirect를 붙이면, ViewResolver가 설정되어 있더라도 이를 무시하고 진행한다. 

즉 ViewResolver 안의 Suffix prefix가 붙지 않는다.

Redirect를 안해주면 위와 같이 ViewResolver를 통해 Suffix와 Prefix가 붙어버려서 JSP 를 찾지 못함.

login.jsp 위치 확인 해라.