Top Banner
Servlets & JSP 2장
16

HeadFisrt Servlet&JSP Chapter 2

Jul 22, 2015

Download

Documents

J B
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: HeadFisrt Servlet&JSP Chapter 2

Servlets & JSP

2장

Page 2: HeadFisrt Servlet&JSP Chapter 2

What is ContainerA. 요청을 받아오면 컨테이너에서 처리한다.

톰캣?

Page 3: HeadFisrt Servlet&JSP Chapter 2

What is TomcatResponse, Request 객체 생성

클라이언트의 요청에 대한 서블릿 스레드 생성

서블릿 스레드에 아까 만든 객체 넘김

service()가 작업한 response를 HTTP로 클라이언트에게 보냄

서블릿 service() 메소드 호출

어떤 스레드인지는 DD를 이용하여 알아냄

Page 4: HeadFisrt Servlet&JSP Chapter 2

service()

• 요청에 따라 doGet() 혹은 doPost() 메소드를 호출

• doGet()/ doPost() 는 동적인 페이지를 생성

• doGet(), doPost()는 동적인 페이지를 어떻게 생성할까?

Page 5: HeadFisrt Servlet&JSP Chapter 2

얘가 서블릿.

public class DatingServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletReponse response) throws IOException {

String d = Integer.toSting((int) ((Math.random()*6)+1));

printWriter out = response.getWriter(); out.println(“<html> <body>”+ …); }

}

doGet이 요기있넹

Page 6: HeadFisrt Servlet&JSP Chapter 2

얘가 서블릿.

public class DatingServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletReponse response) throws IOException {

String d = Integer.toSting((int) ((Math.random()*6)+1));

printWriter out = response.getWriter(); out.println(“<html> <body>”+ …); }

}

아까 톰캣이 만든 객체

Page 7: HeadFisrt Servlet&JSP Chapter 2

얘가 서블릿

public class DatingServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletReponse response) throws IOException {

String d = Integer.toSting((int) ((Math.random()*6)+1));

printWriter out = response.getWriter(); out.println(“<html> <body>”+ …); }

}

똑똑한 놈이죠. 비즈니스 로직

Page 8: HeadFisrt Servlet&JSP Chapter 2

얘가 서블릿

public class DatingServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletReponse response) throws IOException {

String d = Integer.toSting((int) ((Math.random()*6)+1));

printWriter out = response.getWriter(); out.println(“<html> <body>”+ …); }

} 서기입니다. 프리젠테이션 로직

Page 9: HeadFisrt Servlet&JSP Chapter 2

하지만 좋은 코드가 아닙니다.

Page 10: HeadFisrt Servlet&JSP Chapter 2

MVC

• Model: 똑똑한 비즈니스 로직. 자바코드입니다.

• View: 글 잘쓰는 프레젠테이션 로직. JSP입니다.

• Control: 관리직이죠. 일을 받아와서 M과 V에게 줍니다.

M의 일은 M에게 V의 일은 V에게

Page 11: HeadFisrt Servlet&JSP Chapter 2

얘가 서블릿

public class DatingServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletReponse response) throws IOException {

String d = Integer.toSting((int) ((Math.random()*6)+1));

printWriter out = response.getWriter(); out.println(“<html> <body>”+ …); }

}

JSP(V)

자바코드(M)

서블릿(C)

Page 12: HeadFisrt Servlet&JSP Chapter 2

얘가 MVC 디자인 패턴public class DatingServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletReponse response) throws IOException {

자바 클래스가 할 겁니다.

}

JSP가 할 겁니다.

서블릿(C)

Page 13: HeadFisrt Servlet&JSP Chapter 2

What is DD

• 다른 URL로 들어왔는데 같은 서블릿이 필요하다면?

• 클라이언트가 서버에 직접 접근해온다면?

그래서 DD를 씁니다.

Page 14: HeadFisrt Servlet&JSP Chapter 2

얘가 DD

<servlet> <servlet-name> Internal name1</servlet-name> <servlet-class>foo.servlet1<servlet-class> </servlet>

<servlet-mapping> <servlet-name>Internal name 1</servlet-name> <url-patten>/Public1</url-patten> </servlet-mapping>

이런 애들이 많이 있어요.

Page 15: HeadFisrt Servlet&JSP Chapter 2

얘가 DD

<servlet> <servlet-name> Internal name1</servlet-name> <servlet-class>foo.servlet1<servlet-class> </servlet>

<servlet-mapping> <servlet-name>Internal name 1</servlet-name> <url-patten>/Public1</url-patten> </servlet-mapping>

이거는 클라이언트가 알아요 이거 주면 DD가 Internal name1을 알려줘여

Page 16: HeadFisrt Servlet&JSP Chapter 2

얘가 DD

<servlet> <servlet-name> Internal name1</servlet-name> <servlet-class>foo.servlet1<servlet-class> </servlet>

<servlet-mapping> <servlet-name>Internal name 1</servlet-name> <url-patten>/Public1</url-patten> </servlet-mapping>

아까 URL로 알아왔죠? 이걸로 서블릿 이름 알 수 있어여

근데 아직 잘 모르겠죠? 괜찮아요 다음에도 다시 배울거래요