url pattern
- 디렉터리 패턴
디렉터리형태로 서버의 해당 서블릿을 찾아 실행
http://localhost:8181/경로명/서블릿이름
- 확장자패턴
확장자를 통해 해당 서블릿을 찾아간 뒤 서블릿 내에서 각 이름에 맞는 코드를 실행
http://localhost:8181/경로명/이름.확장자명
ex) 확장자명이 do 인 경우 *.do 로 맵핑된 서블릿을 찾아가게 된다.
같은 확장자를 가진 경우 모두 같은 서블릿으로 연결된다.
이와 같이 요청하면
1 | <a href="http://localhost8181<%=request.getContextPath()%>/update.do"> update </a> | cs |
이렇게 맵핑된 서블릿 파일로 가게된다.
1 | @WebServlet("*.do") | cs |
서블릿 파일에서는 다음과 같이 do확장자를 가진 여러 요청들을 구분하여 처리한다.
1 2 3 4 5 6 7 8 9 | string uri = request.getRequestURI(); String conPath = request.getContextPath(); String command = uri.substring(conPath.length()); if(command.equals("/insert.do")){ //처리내용 }else if(command.equals("/update.do")){ // } | cs |
FrontController 패턴
여러 클라이언트의 요청이 각각의 서블릿으로 가기 전, 한 곳으로 먼저 집중시켜 처리한다.
개발 및 유지보수를 더욱 효율적으로 할 수 있다.
Command 패턴
여러 클라이언트의 요청을 하나의 서블릿으로 집중시킨 뒤, 그 서블릿에서 처리하지 않고 해당 클래스가 처리하게 한다.
서블릿에서 다음과 같이 작업하여 해당하는 작업(selectAll.do)을 SelectAllService 라는 클래스로 연결한다.
1 2 3 4 5 6 7 8 9 10 11 12 | if(command.equals("/selectAll.do")){ response.setContentType("text/html; charset=EUC-KR"); PrintWriter writer = response.getWriter(); writer.println("<html><head></head><body>"); Service service = new SelectAllService(); ArrayList<MemberDto> dtos = service.execute(request, response); //for문으로 dtos의 값을 읽어서 출력 writer.println("</body></html>"); } | cs |
SelectAllService클래스는 Service 인터페이스를 구현한다.
이 클래스를 통해 dao에 접근하여 데이터베이스의 정보를 얻는다.
1 2 3 4 5 6 7 8 9 10 11 | public class SelectAllService implements Service{ public SelectAllService(){ } @Override public ArrayList<MemberDto> execute(HttpServletRequest request, HttpServletResponse response){ MemberDao dao = MemberDao.getInstance(); //싱글톤객체 return dao.membersAll(); } } | cs |
'JSP, Servlet > Summary' 카테고리의 다른 글
JSP/Servlet : Forwarding (0) | 2017.01.23 |
---|---|
JSP/Servlet : JSTL (JSP Standard Tag Library) (0) | 2017.01.23 |
JSP/Servlet : Expression Language (0) | 2017.01.23 |
JSP/Servlet : DAO, DTO, Connection Pool (0) | 2017.01.22 |
JSP/Servlet : mysql - eclipse 연동하기 (0) | 2017.01.16 |