JavaWeb의 리디렉션 및 전달 문제

JavaWeb의 서브렛 개발에서 클라이언트의 파라미터를 검증하거나 클라이언트의 데이터를 처리한 다음에 해당하는 다른 인터페이스로 넘어가야 할 때가 있다. 여기에는 두 가지 페이지가 이동하는 방식이 있는데 하나는 방향을 바꾸는 것이고 하나는 전송하는 것이다.
리디렉션 방식은 브라우저와 서버의 공통된 행위로 클라이언트가 서버(서브렛)와 같이 요청을 보낼 때 리디렉션 방식을 사용하면 서버는 브라우저에 알리고 나중에 브라우저가 서버의 리디렉션 자원에 접근하도록 한다.
      index.html은 최종 방문한 페이지입니다. 이때 브라우저의 URL 표시줄 맨 뒤에 보이는 것도 index입니다.html, 즉 방문한 경우:
     http://localhost:8080/ServeletTest리디렉션 URL을 사용하면 다음과 같이 표시됩니다.http://localhost:8080/index.html
코드:
	      //    index.html  
	      response.sendRedirect("/Test/index.html");

전송 방식은 서비스 측 내부의 행위로 서버 내부에서 해당 페이지를 꺼내서 표시하는 것과 같다. 이때 URL 표시줄 뒤에 해당 html의 파일 이름 + html이 표시되지 않고 개발한 서브렛 즉 방문http://localhost:8080/ServletTest, 최종 페이지가 바뀌었지만 그의 URL은 여전히http://localhost:8080/ServletTest
코드:
ServletContext context = this.getServletContext();
			//         
			RequestDispatcher rd = context.getRequestDispatcher("/index.html");
			//      
			rd.forward(request,response);

 

좋은 웹페이지 즐겨찾기