WEB-INF에 jsp를 두는 이유
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>
댓글남기기