WEB-INF에 jsp를 두는 이유

최대 1 분 소요

1. WEB-INF에 jsp를 두는 이유

JSP/Servlet 웹 컨테이너는 WEB-INF Directory 접근을 제한하고 있다. MVC 패턴에서 Controller는 호출하는 Class에서 서비스 로직을 수행한 뒤 View에 해당되는 jsp 파일을 포워딩을 하는데, jsp 파일은 웹 브라우저 주소창에 나타나지 않는다. 웹 클라이언트에서 view로의 직접적인 접근은 제한되는 것이다.

포워딩을 하게 되면 웹 브라우저에는 요청 주소만 있고, 서버에서 응답된 결과만 웹 브라우저 클라이언트로 전달해준다.

2. WEB-INF 경로 외에 jsp 이 있는 경우 접근을 막는 방법

만약, jsp 파일이 WEB-INF 경로 외에 있는 경우 어떻게 하면 jsp 접근을 제한할 수 있을까? 다음과 같이 설정하면 접근을 제한할 수 있다.

<security-constraint>
    <web-resource-collection>
        <web-resource-name>PreventViewingJSPs</web-resource-name>
        <description>웹 클라이언트 jsp 접근 제한</description>
        <url-pattern>*.jsp</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name></role-name> 
    </auth-constraint>
</security-constraint>

태그:

카테고리:

업데이트:

댓글남기기