노무현 대통령 배너

<forward 방식>

 

redirect 방식은 내부, 외부 모두 연결을 할 수 있었다.

하지만 forward 방식은 내부자원으로만 접근 할 수 있는 방식이다.

다른이름으로는 dispatch 방식이라고도 함, 더 많이 쓰이는 방식

 

 

실행하여보면...

 

사용자 삽입 이미지

 

잘보면.... 주소가... /move 임에도 불구하고

화면은 han.jsp 의 내용이 나옴을 알 수 있다.

 

사용자 삽입 이미지

 

클라이언트가 /move 라고 요청을 하면 서벼는 web.xml 을 참조하여

MoveServlet을 실행하는데 /han.jsp 로 forward 한다.

서버는 han.jsp 를 클라이언트에게 응답한다.

주소는 바뀌지 않은체로...

request, response는 한번씩만 발생한다.

 

즉, 처음 방명록을 만들었을때와는 달리 MoveServlet 이 요청을 받아 응답을 직접 하지 않고

han.jsp 로 위임하는 격이다.

 

request에 담겨있는 주소(/move) 는 그대로 유지하면서 화면은 /han.jsp 가 보여진다.

주소가 /move 이기 때문에 우리가 han.jsp 로 만든것을 뿌려주는지 사용자들은 알 수가 없다.

jsp 로 만들었지만 사용자들은 전혀 알 수 가 없다.

웹어플리케이션 안쪽을 싸그리 숨길 수 있다. --> 보안이 뛰어남

php, asp 같은 경우엔 보안적으로 취약하다. (소스를 어느정도 다 훔칠 수 있음)

 

 

앞서 만든 방명록에서는 GBListServlet 이 화면에 뿌려지는 내용까지 다 담고 있었다.

(pw.write("<div style=\"background-color: #cccccc; clear: left; padding-bottom: 5px;\">"); 이런식으로

html 을 한줄한줄 이식했었다.)

이러한 방식은 개발자와 디자이너와 협업이 불편하고, 개발자체도 귀찮으며, 가독성도 떨어지므로

페이지이동의 두가지 방식, foward, redirect 를 이용하여

보여지는 부분을 따로 분리해버리는 것이다.

forwad 시킬 주소를 /gb/list.do 로 바꾼다면....?

1. 클라이언트가 /move 라고 요청을 보낸다.

2. 서버는 web.xml 을 참조 MoveServlet 을 실행

3. MoveServlet은 /gb/list.do 로 foward 시킴

4. 서버는 web.xml 을 참조 GBListServlet을 실행

5. 서버는 해당 결과를 클라이언트에게 응답

크리에이티브 커먼즈 라이센스
Creative Commons License

"웹 프로그래밍" 카테고리의 다른 글


이 글의 관련글
2009/05/03 04:37 2009/05/03 04:37

트랙백을 보내세요

트랙백 주소 :: http://pippen80.cafe24.com/trackback/164

댓글을 달아 주세요

[로그인][오픈아이디란?]
비밀글 (Serect)
댓글 달기 (Submit)