반응형
개발자교육 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 폴더에 존재해야 한다.
반응형