본문 바로가기
카테고리 없음

24. 08. 09 개발자교육 7주차 금요일 Servlet(forward와 redirect 의 차이점)

by 융기융 2024. 8. 9.
반응형

개발자교육 7주차 금요일, 오늘은 Servlet(forward와 redirect의 차이에 대해 배웠다.)

 

forward redirect
- 클라이언트의 요청을 받은 Servlet/JSP가 직접 응답하는 것이 아닌 Servlet/JSP에 HttpServletRequest, HttpServletResponse 객체를 넘겨서(위임) 대신 응답하게 하는 것

- 요청 위임시
  RequestDispatcher(요청 발송자)를 이용

- 요청 위임할 JSP ***파일경로*** 작성

- 응답화면(결과페이지) 주소는 처음 Servlet이 요청받은 주소 그대로!
- 클라이언트의 요청을 받은 Servlet//JSP에서 직접 응답하지 않고 다른 Servlet/JSP를 다시 요청하는 것 

- 보통 Servlet 요청 처리 후 특정 JSP로 요청을 위임해 결과 화면을 응답해주는 것이 아닌(요청받은 Servlet이 응답해줄 JSP가 없음)

- 다른 Servlet을 다시 요청하여 다른 Servlet의 결과화면을 응답해줌

- redirect는 다시 요청 하는 것!!
-> 기존 client의 req, resp 객체가 "사라지고" 새로운 "req, resp 객체가 생성" 된다 !!!
-> request scope에 세팅된 값들이 모두 사라짐

- redirect는 응답화면의 주소가 처음 요청한 Servlet주소가 아닌 다시 요청한 Servlet 주소로 변경된다!

- 다른 Servlet을 요청하기 위해서는 "요청 주소"를 작성해야 한다!!

 

 

Dynamic Web project의 폴더구조

 

* src/main/java(보통 Servlet 만들던 폴더)

- Java 파일이 저장되는 폴더

- 서버에서 동작하는 코드를 작성해서 모아둔 폴더

- 컴파일 되어있는 상태가 아님!!!

-> 배포시 컴파일된 파일만 webapp 폴더로 옮기고 나머지는 제외되는 폴더

    

* src/main/webapp

- 실제로 배포되는 웹 어플리케이션의 컴파일된 코드, 정적자원(html, css, js, image)이 모여있는 폴더

 

- 그래서 파일경로, 요청주소 작성 시 webapp폴더가 기준이 된다!!

 

ex)

주소 / : webapp의 index.jsp 요청 forward시 JSP파일 경로 / : webapp 폴더 기준

css, js 파일경로(== 요청주소) /: webapp 폴더 기준

 

* src/main/webapp/WEB-INF 폴더

-/WEB-INF 폴더는 클라이언트 요청으로 볼 수 없는 폴더 -> 서버가 숨겨둠

 

- 이럴거면 배포하는 webapp 폴더에 안넣으면 되는거 아닌가?

-> 직접 해당파일을 보여줄 수는 없지만, 응답화면 등의 웹 서비스를 제공하기 위해서는 필요하기 때문에 webapp 폴더에 존재해야 한다.

 

반응형