Purple Bobblehead Bunny

Backend/JSP SERVLET

[JSP] webapp, WEB-INF

준영어린이 2022. 7. 27. 18:06

 

 

webapp 폴더 안의 welcome.jsp와 webapp폴더의 하위 폴더인 WEB-INF 폴더 안에  Login.jsp가 있다.

 

 

webapp안의 welcome.jsp 실행

WEB-INF 폴더 안의 Login.jsp 실행

다음과 같이  webapp의 welcome.jsp는 실행이 되지만, WEB-INF의 Login.jsp는 접근이 되지 않는다.

 

webapp폴더에 파일이 있을 경우 로직 없이도 가상의 결과물을 만들어 직접적으로 살펴볼 수가 있다.

 

반대로 WEB-INF 폴더의 경우에는 브라우저에서 직접적으로 접근이 불가하다.

 

이렇게 서로의 장단점을 유추할 수 있다.

 

webapp 

  • 장점    
    • jsp파일을 바로 접근할 수 있다. 앞에서 확인한 결과 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