BLOG main image
분류 전체보기 (65)
JSP (6)
Android (1)
ASP.NET (0)
MSSQL (4)
PHP (18)
ASP (11)
오픈 API (1)
HTML (2)
JavaScript (0)
Windows Programming (8)
컴퓨터교양 (14)
객체 지향 (0)
리뷰 및 생각 (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2013. 10. 20. 04:29
[JSP]


요청에서 응답까지 다양한 실행 순서
서블릿만 사용시 컨테이너 서블릿       컨테이너
모델 사용시 컨테이너 서블릿 모델 서블릿   컨테이너
JSP 사용시 컨테이너 서블릿     JSP 컨테이너
모델+JSP 사용시 컨테이너 서블릿 모델 서블릿 JSP 컨테이너


요청에서 응답까지 기본적인 실행 순서- JSP 사용시 / 모델 사용시

순서 설명
컨테이너(톰캣) servlet 이라면 DD(web.xml)을 참조하여,
해당 servlet 스레드를 생성하고,
HttpSevletRequest, HttpServletResponse 를 생성하여 인자로 넘기며,
해당 servlet의 service() 메소드를 호출하여, servlet을 구동시킴
(바로 컨테이너에게 Response 객체를 전달 할 수도 있으나…)
servlet 요청 처리를 진행(바로 JSP로 Request dispatching 할 수도 있으나…)

모델

servlet이 호출하는 대상이며, 보통 자료를 리턴 함

servlet

여러 타 servlet을 거처 자료를 완성된 자료를
Request 객체에 담아낸 servlet
JSP로 Request dispatching
JSP 서블릿이 자료를 담아 낸 Request 객체에서 attribute를 적출해 사용함
최종적으로 Response 객체를 완성시키고 컨테이너에게 전달
컨테이너 HttpServletResponse를 HTTP Respose로 응답함


배포된 자바 웹 어플리케이션 폴더 구조 - JSP 미사용시

폴더 / 파일 설명
/*.html 보통의 요청이 시작되는 곳
/WEB-INF/web.xml 요청이 servlet 일 때, 
어떤 servlet으로 요청을 넘겨야 하는지가 기술되어 있음
/classes/[model]/*.class
/classes/[web]/*.class
/classes/[namespaces1]/*.class
/classes/[namespaces2]/*.class
/classes/[namespaces3]/*.class
servlet과 모델들이 모여 있는 곳
JSP 미사용시는 아래와 같이 response를 직접 작성함

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<br />…");


배포된 자바 웹 어플리케이션 폴더 구조 - JSP 사용시

폴더 / 파일 설명
/*.html 보통의 요청이 시작되는 곳
/WEB-INF/web.xml 요청이 servlet 일 때, 
어떤 servlet으로 요청을 넘겨야 하는지가 기술되어 있음
/classes/[model]/*.class
/classes/[web]/*.class
/classes/[namespaces1]/*.class
/classes/[namespaces2]/*.class
/classes/[namespaces3]/*.class
servlet과 모델들이 모여 있는 곳
JSP 사용시는 response를 직접 작성 안하고,
JSP에게 요청을 부탁함(RequestDispatcher)
RequestDispatcher view
                          = request.getRequestDispatcher("result.jsp");

필요하다면 request 객체를 통해 자료를 넘김

request.setAttribute("styles", result);
RequestDispatcher view
                           = request.getRequestDispatcher("result.jsp");
view.forward(request, response);
/*.jsp HTML과 scriptlet 코드로 response를 작성한다.

필요하다면 servlet으로 부터 넘어온 request객체를 통해 자료를 얻음
List styles = (List)request.getAttribute("styles");