2015년 9월 4일 금요일

신입SW인력을 위한 실전 JSP 동영상과정 - 제25강 JSP Pattern(URL, FrontController, Command)

이 게시물은
http://www.wiz.center/212

의 동영상 강의를 시청하고 작성한 글입니다.
새로 시작하는 경우라면 위 링크의 동영상 강의를
들어보세요

1. URL pattern
  1) 디렉토리 패턴
      http://~~~~/hello
      ⇒ /wello 서블릿으로 연결

      http://~~~~/world
      ⇒ /world 서블릿으로 연결

  2) 확장자 패턴
      http://~~~~/hello.do
      http://~~~~/world.do
      ⇒ *.do 서블릿으로 연결
      http://~~~~/hello.you
      ⇒ *.you 서블릿으로 연결


2. FrontController pattern
    모든 요청을 하나의 서블릿에 포함하여 작성함(확장자 패턴)
    해당 서블릿에서는 .do 앞의 문자열(요청  페이지)에 따라서
     다른 기능을 하도록 서블릿 내에서 분리함

ex)

 
if(command.equals("/insert.do")){
 System.out.println("insert");
 System.out.println("----------------");
}else if(command.equals("/update.do")){
 System.out.println("update");
 System.out.println("----------------");
}else if(command.equals("/select.do")){
 System.out.println("select");
 System.out.println("----------------");
}else if(command.equals("/delete.do")){
 System.out.println("delete");
 System.out.println("----------------");
}


3. Command pattern
    요청에 대한 정확한 처리 지시를 서블릿이 직접하지 않고
      (소스가 집중되고 복잡해지기 때문에)
      해당하는 하위 서블릿 클래스에서 나누는 방법
    다시 말하면 요청에 대해서 서블릿을 계층화 한다는 이야기인듯.
    실제는 좀더 복잡하겠지만

ex)

 
.....
if(command.equals("/insert.do")){
 Service service = new InsertService();
 service.execute(request, response);
}else if(command.equals("/update.do")){
 Service service = new UpdateService();
 service.execute(request, response); 
}else if(command.equals("/select.do")){
 Service service = new InsertService();
 ArrayList dtos = service.execute(request, response);
       for (int i = 0; i < dtos.size(); i++) {
        .......
       }
}else if(command.equals("/delete.do")){
 Service service = new DeleteService();
 service.execute(request, response); 
}
......

댓글 없음:

댓글 쓰기