일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- functional programming
- Pattern
- lambda calculus
- 겨울카카오인턴
- 람다 칼큘러스
- 백준
- Network
- 자바
- javscript
- solid
- design-pattern
- 큐
- 디자인패턴
- Collection
- 프로그래머스
- tcp
- 함수형 프로그래밍
- JavaScript
- Java
- Rails
- Python
- 로버트마틴
- exception
- Eclipse
- DesignPattern
- Spring
- 스택
- Collections
- JDBC
- 파이썬
- Today
- Total
개발자 노트
[Tomcat-servlet]Redirect and Forwarding 본문
Redirect and Forwarding
Redirect
A에 자원을 요청 보냈을 시, A는 B에게 요청하라는 메세지를 보내는 것.
비유
부서 A에게 전화를 했지만 A가 부서 B 관할이라며 B 전화번호 넘겨줌. 전화한 사람은 B 전화번호를 통해 B와 연결.
특징
redirect의 번호는 302
A와 연결되있던 request, reponse 객체와 B와 연결된 request, response객체는 다르다.
리다이렉트시 더 이상 필요가 없기에 소멸됨.
servlet구현
Point. A에게 response로 응답 302를 보내주어야 하고 redirect할 주소를 전해주어야 함.
이때, response의 sendRedirect 메소드를 통해 구현
response.sendRedirect("리다이렉트할 자원의 위치");
response.sendRedirect("redirectPage");
forwarding
클라이언트의 요청을 A가 일부 수행 후 B에게 전달한 후 B가 마무리 작업 한다음 클라이언트에게 응답함.
비유
A가 전화를 받으면 A가 할 수 있는 작업을 한 다음에 B부서에 넘어가서 고객의 요청 내용을 전달 한 후에 B부서가 클라이언트에게 전화하여 내용처리.
특징
클라이언트와 A간 생성된 request,response객체를 B에게 전달해줌. 즉, request,reponse객체가 유지된다.
일부 값 수행시 request 객체에 값을 전달하여 사용한다.(request,response scope)
servlet구현
point. A에게 생성된 request,response 객체를 B에게 보내줘야 함!
이때, response.Dispatcher를 이용하여 위를 수행한다.
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/forwardingTest2");
requestDispatcher.forward(request, response);
위와 같이 request.getRequestDispatcher에 forwarding할 url을 넘겨서 requestDispatcher 객체 생성(이때 반드시 슬래쉬 붙일 것.)
requestdispatcher 객체에 forwarding할 request와 response를 담아준다.
'Web' 카테고리의 다른 글
[jsp/el]EL이용한 String Type의 JSONArray parsing. (java) (0) | 2020.03.23 |
---|---|
[tomcat] eclipse tomcat class not found exception 해결 (0) | 2020.03.23 |
[jdbc/mysql]jdbc mysql 연결 방법 (0) | 2020.03.19 |
[eclipse]jsp인코딩문제 (0) | 2020.03.19 |
[jdbc]jdbc연동시 발생했던 에러 (0) | 2020.03.12 |