2013년 11월 12일 화요일

request

RequestDispatcher.forward(request, response); 와 response.sendRedirect("url"); 의 차이점
ㅇ A → B 페이지 변경시키는 방법 (Forward)      1. sendRedirect()매소드 이용            ㄴ get방식을 이용      2. RequestDispatcher 객체의 forward() 매소드 이용            ㄴ 바인딩 기술을 이용            ㄴ 1. request객체에 setAttribute() 매소드를 이용      3. <a href="B">A</a>  - html의 <a> tag를 이용

ㅇ 브라우저의 url 관점
-. forward 는 브라우져의 url이 변경되지 않고 화면 이동.(서버쪽에서 화면을 변경한다.)
-. sendRedirect 는 서버에서 변경할 url을 client 쪽에 알려주고, client는 서버에서 받은 url 로 서버에 request 하여
브라우저의 url 이 변경됨.

ㅇ request.setAttribute("key", "value"); 관점
-. forward 로 처리하면 이전 페이지에서 request 에 setAttribute 를 정의한 것을 변경된 화면에서 req.getAttribute 로 받을 수 있음.
-. sendRedirect 로 처리시엔 forward 와 반대로 이전 페이지에서 request 에 setAttribute 정의한 내용을 변경된 화면에서 getAttribute 할 수 없다.(변경된 화면에 인자값을 넘겨 주려면 get방식 sendRedirect("url?param=val") 형태로 처리한다. )

RequestDispatcher 의 include 와 forward서블릿에서 jsp호출(forward와 include의 두가지 방식)
* 차이점: 두 메소드 모두 jsp페이지를 호출할 수 있는 메소드이지만 forward()메소드를 이용하면 
jsp페이지를 호출하는 순간 서블릿 프로그램은 실행을 멈추고 jsp페이지로 넘어가 그곳에서 실행하고 프로그램이 끝나게 되지만 include()메소드를 이용하면 해당 jsp페이지가 실행되고 다시 나머지 서블릿 프로그램이 실행되는 것이다.
1. forward

RequestDispatcher rd = this.getServletContext().getRequestDispatcher("jspFile");
request.setAttribute("name", "value");
rd.forward(request, response);
2. include
RequestDispatcher rd = this.getServletContext().getRequestDispatcher("jspFile");
rd.include(request, response);

CharSet 처리

request.setCharacterEncoding("euc-kr");



로깅을 위한 페이지id 찍기.<%System.out.println("##################"+
request.getRequestURL().substring(request.getRequestURL().lastIndexof("/")+1, request.getRequestURL().length()) + "START ##################");



서블릿에서 jsp호출(RequestDispatcher클래스 사용)
서블릿에서 jsp호출(forward와 include의 두가지 방식)
* 차이점: 두 메소드 모두 jsp페이지를 호출할 수 있는 메소드이지만 forward()메소드를 이용하면
jsp페이지를 호출하는 순간 서블릿 프로그램은 실행을 멈추고 jsp페이지로 넘어가 그곳에서 실행하고 프로그램이 끝나게 되지만 include()메소드를 이용하면 해당 jsp페이지가 실행되고 다시 나머지 서블릿 프로그램이 실행되는 것이다.
1. forward
RequestDispatcher rd = this.getServletContext().getRequestDispatcher("jspFile");
request.setAttribute("name", "value");
rd.forward(request, response);
2. include
RequestDispatcher rd = this.getServletContext().getRequestDispatcher("jspFile");

rd.include(request, response);

댓글 없음:

댓글 쓰기