IT/Java

Servlet(서블릿) 3.31(화)

바바옄 2015. 4. 5. 23:18
반응형

서블릿이란?

- JSP 표준이 나오기 전에 만들어 진 표준으로 자바를 이용해서 웹 애플리케이션을 개발하기 위해 만들어 졌으며,

  자바 클래스를 웹에서 호출 및 실행 할 수 있도록 한 표준

서블릿 프로젝트 생성 법

1. eclipse 실행 후 Dynamic web project 선택

2. Project name : Hello 프로젝트 생성

 

3. Hello -> Java Resoueces -> scr 우 클릭 후 new-> servlet 선택

4. class name: Hello 입력 후 next 

5. URL mappings /Hello 선택 후 Edit -> 소문자 /hello 변경 후 OK -> NEXT -> Finish

Servlet - sendredirect 와 forward의 차이점 및 공통점

sendredirect

이 메소드는 페이지 전환을 할때, 웹 컨테이너가 전환될 페이지의 URL을 부라우져로 보내어 다시 요청하게 만드는 방식으로 작동한다. 즉, A페이지를 요청했을 때, 이에대한 응답으로 B 페이지의 URL 이 전송되고 브라우저는 새로이 B 페이지를 요청하게 된다.
따라서 사용자는 페이지가 redirect 되었다는 것을 알 수 있다. 반면 A 페이지에서 B 페이지로 redirect 될때, A 페이지에서 포함된 파라미터 등은 B 페이지로 자동으로 전달되지 않는다.

- 클라이언트가 인지함

- 브라우져에게 요청(화면 좀 바꿔줘) -> 브라우져는 location.href로 보여 줌

- url 뒤에 jsp가 붙어 나온다.

- 지금까지 가져온 요청을 다 잃어 버림

방법 : response.sendRedirect(url);

    forward 

    이 메소드는 페이지 전환시 클라이언트를 거치지 않고 웹 컨테이너가 서버 내부에서 직접 다른 jsp 나 Servlet 를 호출해서 처리하는 방식이다. 클라이언트를 거치지 않고 페이지가 redirect 되므로 사용자는 페이지가 전환되었다는 것을 알지 못한다. 즉, A 페이지를 요청했는데 응답으로 B 페이지가 전송되는 방식이다.
    따라서 A 페이지에서 사용된 파라미터가 B 페이지에 그대로 전달되며, 통신 과정이 생략되므로 좀더 빠르다고 할 수 있다. 단, URL 의 변화를 알 수 없다.

    - 클라이언트가 모름 

    - 브라우져 모르게 서버가 돌려버림(브라우져는 화면이 바뀐 지 전혀 알 수 없다)

    - url 뒤에 jsp가 붙어 나오지 않는다.(더 안전함)

    - 지금까지 가져온 요청을 가지고 있음

    방법 : RequestDispatcher dispatcher = request.getRequestDispatcher(url);

             dispatcher.forward(request, response);

    공통점 - 화면을 바꿔준다.

    차이점 

    forward - dispatcher.forward(request, response); 에서 request 의 Attribute를 싫어나를 수 있음
                   (ex : request.setAttribute(“test”,”테스트”); )

    sendRedirect - get 방식처럼 url?test=테스트 만 가능

     

    3 tear(실무에서 대부분 사용하는 방식 - S기업은 4tear)

    Controller     - 응답/요첨

         |

    Service        - 비지니스 로직(ex) 게시판을 삭제할 때 리플이 있느냐, 권한이 있느냐 등 로직이 들어가는 곳)

    (business)

         |

       DAO         - DB에 접근(오로지 SQL문만)

     

    3 tear로 나눈 이유

    1. 인터페이스 사용(분업화 하기 위해)

    2. error 발생한 곳만 수정이 가능(한 곳에 모아서 하면 다 고쳐야만 함)

     

    출처: http://playgame.egloos.com/284355

     

    반응형

    'IT > Java' 카테고리의 다른 글

    Tomcat 설치 및 Eclipse 연동  (0) 2015.04.26
    SVN 설치  (0) 2015.04.12
    Eclipse 폰트 설정(monaco font) 및 한글을 위한 setting  (0) 2015.04.12
    Eclipse 설치하기  (0) 2015.04.10
    JDK(Java Development Kit) 설치  (0) 2015.04.10