webapp안의 welcome.jsp 실행
WEB-INF 폴더 안의 Login.jsp 실행
다음과 같이 webapp의 welcome.jsp는 실행이 되지만, WEB-INF의 Login.jsp는 접근이 되지 않는다.
webapp폴더에 파일이 있을 경우 로직 없이도 가상의 결과물을 만들어 직접적으로 살펴볼 수가 있다.
반대로 WEB-INF 폴더의 경우에는 브라우저에서 직접적으로 접근이 불가하다.
이렇게 서로의 장단점을 유추할 수 있다.
webapp
- 장점
- jsp파일을 바로 접근할 수 있다. 앞에서 확인한 결과 jsp 파일의 경과를 바로 볼 수 있다.
- 단점
- webapp폴더로 작성을 완료하고 프로젝트를 서버에 올릴 경우 유저가 jsp파일에 직접 접근 할 수가 있어 보안에 취약하다
- webapp폴더로 작성을 완료하고 프로젝트를 서버에 올릴 경우 유저가 jsp파일에 직접 접근 할 수가 있어 보안에 취약하다
WEB-INF
- 장점
- WEB-INF 폴더에 있을 경우 localhost:8080/WEB-INF/---.jsp로 접근이 불가능하다. 유저의 직접 접근이 어려워 보안성이 높다.
- 직접적으로 view를 볼 수가 없기 때문에, <a> 태그로 이동이 불가하고, Controller를 통해서만 이동을 해야한다.
자신이 외부 유저가 접근해도 문제가 크게 없다고 생각이 든다면, webapp파일 안에 jsp파일을 이동 시키고,
보안을 원한다면 WEB-INF 폴더로 이동한다.
WEB-INF의 경우 jsp 뿐만이 아니라 html, js, css와 같은 정적파일들도 직접적으로 볼 수가 없다.
WEB-INF안에 있는 정적파일에도 접근을 할 수가 없다.
정적파일들은 webapp 하위에 생성하는 것이 가장 좋다.
WEB-INF 아래에 정적파일들을 포함하고 싶다면
<script>
<%@include file="/WEB-INF/경로 " @>
</script>
이 코드를 추가하면 된다.
'Backend > JSP SERVLET' 카테고리의 다른 글
[Servlet] doGet, doPost (0) | 2022.07.04 |
---|---|
[Servlet] 서블릿 이해 (0) | 2022.07.04 |
[JSP] JDBC (0) | 2022.07.02 |
[Servlet]MVC Pattern (0) | 2022.07.01 |
[JSP] 쿠키, Cookie (0) | 2022.06.30 |