SlideShare a Scribd company logo
Servlets & JSP
3장
오늘은 MVC 튜토리얼을
진행할꺼에요
M
• 모델
• 비지니스 모델
• 쉽게 생각해서 HttpServlet을 상속받은 JAVA파일
V
• 뷰
• 프레젠테이션(보여지는 화면)을 책임
• 쉽게 생각해서 JSP 파일
C
• 컨트롤러
• Request 객체에서 사용자가 입력한 정보를 뽑아내어
모델이 어떤 작업을 해야하는지 알아 냄
• 쉽게생각해서 서블릿
서블릿? -> 쉽게 HttpServlet을 상속받은 JAVA파일
• 근거?
> 다음장에
근거 1. Web.xml 중..
<servlet>
<servlet-name>Ch3_Beer</servlet-name>
<servlet-class>com.example.web.BeerSelect</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ch3_Beer</servlet-name>
<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping>
근거 2. 서블릿은 리턴해야할 값
을 request에 저장해 둔다고 하
던데 . . .• BeerSelect.java 중. . . (HttpServlet 상속받은 클래스
임)
String c = request.getParameter("color");
BeerExpert be = new BeerExpert();
List result = be.getBrands(c);
request.setAttribute("styles", result);
RequestDispatcher view =
request.getRequestDispatcher("result.jsp");
view.forward(request, response);
http://code.tutsplus.com/tutorials/from-beginner-to-advanced-in-opencart-understanding-mvc--cms-2162
1. Controllers
Controllers hold the main
control of the program. A
controller is responsible for
the program flow. In web-
based MVC applications, it
is also the first layer which
is called when the browser
hits the URL.
2. Models
Models hold the main data of the
program such as information from
database objects and SQL queries.
All data is gained from the models;
however, the models cannot be
directly called - it is a controller who
requests a model for specific data and
the model performs the request and
returns the data to that controller.
3. Views
A view is the last layer of the
MVC Architecture which
holds the user interface of
the program. In web
applications, a view contains
HTML, CSS, JavaScript,
XML or JSON, etc. The view
is a visible layer to the user
whereas the models and
controllers are hidden from
the user.
Let's understand that with the help of
conversation form when a user hits the
URL:
• Controller: Hey ABC Model: The user wants the XYZ
Data, please pass it to me.
• Model: Got the XYZ Data! Here it is.
• Controller: Hey ABC View, I am passing the XYZ
Data to you.
• View: Renders the information on the page for the
user to see.
애플리케이션 아키텍처
아키텍처란?
컴퓨터에 필요한 논리적 기능이나 표현 방식 또는 컴퓨터의 기능요소와
그 구성방식 등 하드웨어를 제작하는 데 해당되는 설계시방(示方). 컴퓨터
아키텍처라고도 한다.
수요자 입장에서 본 컴퓨터의 하드웨어 구조나 동작 및 논리 구조의 개념
이다.
아키텍처는 컴퓨터의 연산장치, 내부 기억장치, 각종 레지스터, 제어장치
등 중요 구성요소와 외부 기억장치, 입출력 장치, 내 · 외부 버스 구조와 이
들의 제어장치 등을 어떻게 결합하고 배치하여 전체적으로 어떤 용량과
성능을 갖도록 구성하는가를 취급한다.
아키택처의 방식에 따라 컴퓨터의 용도 · 처리속도 등이 크게 달라진다.
아키텍처를 변경할 때는 호환성을 갖도록 한다.
http://www.scienceall.com/%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98architectur
HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3
컨테이너 로직은 왜
form.html 불러오는가?
• Web.xml에 없으니까 파일시스템에 접근해서 가져옴
• 근거?
<servlet>
<servlet-name>Ch3_Beer</servlet-name>
<servlet-class>com.example.web.BeerSelect</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ch3_Beer</servlet-name>
<url-pattern>/form.html</url-pattern>
</servlet-mapping>
책이 시키는대로 하면
만들어 지는 것
결국 3장을 따라했다는
건?
클라이언트 주소입
력
컨테이너 (톰캣)
web.xml 확인
파일시스템에 요청
서블릿에 요청
BeerSelect (서블릿)
BeerExpert (모델)
request 객체result.jsp (뷰)
없다
있다
요청
있으면 리턴
(form.html) 없으면 없다고
알 림
설정된
에러페이지 리턴
리턴해야할 값을
request에 저장
JSP에 request객체
포워딩
request객체속
정보 추출
HTML페이지
가공해서 리턴
사용할 파일 (WEB.XML)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version=“3.0">
<servlet>
<servlet-name>Ch3_Beer</servlet-name>
<servlet-class>com.example.web.BeerSelect</servlet-
class>
</servlet>
<servlet-mapping>
<servlet-name>Ch3_Beer</servlet-name>
<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping>
</web-app>
.do는 의미가 없음
논리적 이름임
<url-pattern>/SelectBeer.do</url-pattern>
<url-pattern>/search.naver</url-pattern>
form.html
<!DOCTYPE html>
<html><head></head>
<body>
<h1 align="center">Beer Selection Page</h1>
<form method="POST" action="SelectBeer.do">
Select beer characteristics
<p>Color:
<select name="color" size = "1">
<option value="light">light</option>
<option value="amber">amber</option>
<option value="brown">brown</option>
<option value="dark">dark</option>
</select>
<br><br>
<center>
<input type="SUBMIT">
</center>
</form>
</body></html>
BeerSelect.java - 버전 3
package com.example.web;
import com.example.model.BeerExpert;
@SuppressWarnings("serial")
public class BeerSelect extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse
response) throws IOException, ServletException {
String c = request.getParameter("color");
BeerExpert be = new BeerExpert();
List result = be.getBrands(c);
request.setAttribute("styles", result);
RequestDispatcher view = request.getRequestDispatcher("result.jsp");
view.forward(request, response);
}
}
BeerExpert.java
package com.example.model;
import java.util.ArrayList;
public class BeerExpert {
public ArrayList getBrands(String color){
ArrayList brands = new ArrayList();
if(color.equals("amber")){
brands.add("Jack Amber");
brands.add("Red Moose");
} else {
brands.add("Jail Pale Ale");
brands.add("Gout Stout");
}
return brands;
}
}
result.jsp
<%@ page import="java.util.*" %>
<html>
<body>
<%
List styles = (List) request.getAttribute("styles");
Iterator it = styles.iterator();
while(it.hasNext()){
out.print("<br>try :" + it.next());
}
%>
</body>
</html>
사용할 파일
(BeerSelect.java)package com.example.web;
import com.example.model.BeerExpert;
@SuppressWarnings("serial")
public class BeerSelect extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException,
ServletException {
String c = request.getParameter("color");
BeerExpert be = new BeerExpert();
List result = be.getBrands(c);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("BeerSelection Advice<br>");
Iterator it = result.iterator();
while(it.hasNext()){
out.print("<br>try : " + it.next());
}
request.setAttribute("styles", result);
RequestDispatcher view = request.getRequestDispatcher("result.jsp");
view.forward(request, response);
}
}
뒷슬라이드에 부록있음
버전 1 / 버전 2
Q & A
BeerSelect.java - 버전 1
package com.example.web;
import com.example.model.BeerExpert;
@SuppressWarnings("serial")
public class BeerSelect extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse
response) throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Beer Selection Advice<br>");
String c = request.getParameter("color");
out.println("<br>Got beer color" + c );
}
}
BeerSelect.java - 버전 2
package com.example.web;
import com.example.model.BeerExpert;
@SuppressWarnings("serial")
public class BeerSelect extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
IOException, ServletException {
String c = request.getParameter("color");
BeerExpert be = new BeerExpert();
List result = be.getBrands(c);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("BeerSelection Advice<br>");
Iterator it = result.iterator();
while(it.hasNext()){
out.print("<br>try : " + it.next());
}
}
}

More Related Content

PDF
HeadFisrt Servlet&JSP Chapter 2
 
PPTX
Servlet&jsp 1장
PDF
자바 서블릿과 세션 (Java Servlet, Session)
PPT
Servlet3
PPTX
Servlet Architecture
PPTX
SpringMVC 전체 흐름 알아보기
PDF
04.[참고]개발환경 실습교재
PDF
Spring@mvc웹호스팅
HeadFisrt Servlet&JSP Chapter 2
 
Servlet&jsp 1장
자바 서블릿과 세션 (Java Servlet, Session)
Servlet3
Servlet Architecture
SpringMVC 전체 흐름 알아보기
04.[참고]개발환경 실습교재
Spring@mvc웹호스팅

What's hot (20)

PDF
Facebook은 React를 왜 만들었을까?
PPTX
Spring mvc
KEY
Meteor 0.3.6 Preview
PDF
진짜기초 Node.js
PDF
JSP 프로그래밍 #03 서블릿
PDF
JSP 프로그래밍 #04 JSP 의 기본
PPT
Spring MVC
PPTX
[웹기반시스템 3조] mvc
PDF
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
PDF
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
PDF
JSP 프로그래밍 #05 HTML과 JSP
PDF
JSP 프로그래밍 #01 웹 프로그래밍
PDF
역시 Redux
PDF
Html5 web workers
PPTX
4-2. ajax
PDF
20131217 html5
PDF
막하는스터디 두번째만남 Express(20151025)
PDF
React Native를 사용한
 초간단 커뮤니티 앱 제작
PDF
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
PPTX
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Facebook은 React를 왜 만들었을까?
Spring mvc
Meteor 0.3.6 Preview
진짜기초 Node.js
JSP 프로그래밍 #03 서블릿
JSP 프로그래밍 #04 JSP 의 기본
Spring MVC
[웹기반시스템 3조] mvc
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
JSP 프로그래밍 #05 HTML과 JSP
JSP 프로그래밍 #01 웹 프로그래밍
역시 Redux
Html5 web workers
4-2. ajax
20131217 html5
막하는스터디 두번째만남 Express(20151025)
React Native를 사용한
 초간단 커뮤니티 앱 제작
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Ad

Viewers also liked (20)

PPTX
잘 알려지지 않은 이클립스 팁
PPTX
HeadFisrt Servlet&JSP Chapter 1
 
PDF
JSP 빠르게 시작하기
KEY
클라우드 서버를 이용한 모바일 웹 개발
PDF
Hellotutorial
PDF
Playnode 2016 조승연
PPTX
1주차 자기개발 항목(jsp 컴파일)
PDF
크리테오 설명서
PDF
로그인은 어떻게 동작하나?
PPTX
HeadFisrt Servlet&JSP Chapter 6
 
PPTX
자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..
PDF
HeadFisrt Servlet&JSP Chapter 5
 
PPTX
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
PDF
F3 네이버오픈api만드는매쉬업
PDF
웹을 지탱하는 기술
PDF
Eclipse web
PPTX
뭔지 모르지만 발표
PPTX
Ndc14 분산 서버 구축의 ABC
PDF
tomcat jdbc mysql 프로그래밍
PDF
시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
잘 알려지지 않은 이클립스 팁
HeadFisrt Servlet&JSP Chapter 1
 
JSP 빠르게 시작하기
클라우드 서버를 이용한 모바일 웹 개발
Hellotutorial
Playnode 2016 조승연
1주차 자기개발 항목(jsp 컴파일)
크리테오 설명서
로그인은 어떻게 동작하나?
HeadFisrt Servlet&JSP Chapter 6
 
자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..
HeadFisrt Servlet&JSP Chapter 5
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
F3 네이버오픈api만드는매쉬업
웹을 지탱하는 기술
Eclipse web
뭔지 모르지만 발표
Ndc14 분산 서버 구축의 ABC
tomcat jdbc mysql 프로그래밍
시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
Ad

Similar to HeadFisrt Servlet&JSP Chapter 3 (20)

PPTX
Presentation1
PDF
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
PPTX
종합설계프로젝트(1960013_나호석).pptx
PDF
WAS의 동작과 WEB, Servlet, JSP_Wh apm
PDF
Basic.pptx
PDF
Spring Boot 1
KEY
vine webdev
PDF
웹개발자가 알아야할 기술
PPTX
웹(자바기준)의 전반적인 이해
PPTX
[웹기반시스템 3조]e govframe 중간고사 제출 정리
PDF
화성에서 온 개발자, 금성에서 온 기획자
PDF
맛만 보자 Undertow
PPTX
서블릿(servlet)
PPT
Tks프로젝트v2
PDF
자바 웹 개발 시작하기 (4주차 : MVC)
PPTX
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
PPSX
스프링 프레임워크로 블로그 개발하기
PPTX
Team Portfolio
PPTX
스프링 3.0 RESTful & restTemplate
PDF
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
Presentation1
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
종합설계프로젝트(1960013_나호석).pptx
WAS의 동작과 WEB, Servlet, JSP_Wh apm
Basic.pptx
Spring Boot 1
vine webdev
웹개발자가 알아야할 기술
웹(자바기준)의 전반적인 이해
[웹기반시스템 3조]e govframe 중간고사 제출 정리
화성에서 온 개발자, 금성에서 온 기획자
맛만 보자 Undertow
서블릿(servlet)
Tks프로젝트v2
자바 웹 개발 시작하기 (4주차 : MVC)
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
스프링 프레임워크로 블로그 개발하기
Team Portfolio
스프링 3.0 RESTful & restTemplate
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)

HeadFisrt Servlet&JSP Chapter 3

  • 3. M • 모델 • 비지니스 모델 • 쉽게 생각해서 HttpServlet을 상속받은 JAVA파일
  • 4. V • 뷰 • 프레젠테이션(보여지는 화면)을 책임 • 쉽게 생각해서 JSP 파일
  • 5. C • 컨트롤러 • Request 객체에서 사용자가 입력한 정보를 뽑아내어 모델이 어떤 작업을 해야하는지 알아 냄 • 쉽게생각해서 서블릿 서블릿? -> 쉽게 HttpServlet을 상속받은 JAVA파일 • 근거? > 다음장에
  • 6. 근거 1. Web.xml 중.. <servlet> <servlet-name>Ch3_Beer</servlet-name> <servlet-class>com.example.web.BeerSelect</servlet-class> </servlet> <servlet-mapping> <servlet-name>Ch3_Beer</servlet-name> <url-pattern>/SelectBeer.do</url-pattern> </servlet-mapping>
  • 7. 근거 2. 서블릿은 리턴해야할 값 을 request에 저장해 둔다고 하 던데 . . .• BeerSelect.java 중. . . (HttpServlet 상속받은 클래스 임) String c = request.getParameter("color"); BeerExpert be = new BeerExpert(); List result = be.getBrands(c); request.setAttribute("styles", result); RequestDispatcher view = request.getRequestDispatcher("result.jsp"); view.forward(request, response);
  • 8. http://code.tutsplus.com/tutorials/from-beginner-to-advanced-in-opencart-understanding-mvc--cms-2162 1. Controllers Controllers hold the main control of the program. A controller is responsible for the program flow. In web- based MVC applications, it is also the first layer which is called when the browser hits the URL. 2. Models Models hold the main data of the program such as information from database objects and SQL queries. All data is gained from the models; however, the models cannot be directly called - it is a controller who requests a model for specific data and the model performs the request and returns the data to that controller. 3. Views A view is the last layer of the MVC Architecture which holds the user interface of the program. In web applications, a view contains HTML, CSS, JavaScript, XML or JSON, etc. The view is a visible layer to the user whereas the models and controllers are hidden from the user.
  • 9. Let's understand that with the help of conversation form when a user hits the URL: • Controller: Hey ABC Model: The user wants the XYZ Data, please pass it to me. • Model: Got the XYZ Data! Here it is. • Controller: Hey ABC View, I am passing the XYZ Data to you. • View: Renders the information on the page for the user to see.
  • 10. 애플리케이션 아키텍처 아키텍처란? 컴퓨터에 필요한 논리적 기능이나 표현 방식 또는 컴퓨터의 기능요소와 그 구성방식 등 하드웨어를 제작하는 데 해당되는 설계시방(示方). 컴퓨터 아키텍처라고도 한다. 수요자 입장에서 본 컴퓨터의 하드웨어 구조나 동작 및 논리 구조의 개념 이다. 아키텍처는 컴퓨터의 연산장치, 내부 기억장치, 각종 레지스터, 제어장치 등 중요 구성요소와 외부 기억장치, 입출력 장치, 내 · 외부 버스 구조와 이 들의 제어장치 등을 어떻게 결합하고 배치하여 전체적으로 어떤 용량과 성능을 갖도록 구성하는가를 취급한다. 아키택처의 방식에 따라 컴퓨터의 용도 · 처리속도 등이 크게 달라진다. 아키텍처를 변경할 때는 호환성을 갖도록 한다. http://www.scienceall.com/%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98architectur
  • 13. 컨테이너 로직은 왜 form.html 불러오는가? • Web.xml에 없으니까 파일시스템에 접근해서 가져옴 • 근거? <servlet> <servlet-name>Ch3_Beer</servlet-name> <servlet-class>com.example.web.BeerSelect</servlet-class> </servlet> <servlet-mapping> <servlet-name>Ch3_Beer</servlet-name> <url-pattern>/form.html</url-pattern> </servlet-mapping>
  • 15. 결국 3장을 따라했다는 건? 클라이언트 주소입 력 컨테이너 (톰캣) web.xml 확인 파일시스템에 요청 서블릿에 요청 BeerSelect (서블릿) BeerExpert (모델) request 객체result.jsp (뷰) 없다 있다 요청 있으면 리턴 (form.html) 없으면 없다고 알 림 설정된 에러페이지 리턴 리턴해야할 값을 request에 저장 JSP에 request객체 포워딩 request객체속 정보 추출 HTML페이지 가공해서 리턴
  • 16. 사용할 파일 (WEB.XML) <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version=“3.0"> <servlet> <servlet-name>Ch3_Beer</servlet-name> <servlet-class>com.example.web.BeerSelect</servlet- class> </servlet> <servlet-mapping> <servlet-name>Ch3_Beer</servlet-name> <url-pattern>/SelectBeer.do</url-pattern> </servlet-mapping> </web-app>
  • 17. .do는 의미가 없음 논리적 이름임 <url-pattern>/SelectBeer.do</url-pattern> <url-pattern>/search.naver</url-pattern>
  • 18. form.html <!DOCTYPE html> <html><head></head> <body> <h1 align="center">Beer Selection Page</h1> <form method="POST" action="SelectBeer.do"> Select beer characteristics <p>Color: <select name="color" size = "1"> <option value="light">light</option> <option value="amber">amber</option> <option value="brown">brown</option> <option value="dark">dark</option> </select> <br><br> <center> <input type="SUBMIT"> </center> </form> </body></html>
  • 19. BeerSelect.java - 버전 3 package com.example.web; import com.example.model.BeerExpert; @SuppressWarnings("serial") public class BeerSelect extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String c = request.getParameter("color"); BeerExpert be = new BeerExpert(); List result = be.getBrands(c); request.setAttribute("styles", result); RequestDispatcher view = request.getRequestDispatcher("result.jsp"); view.forward(request, response); } }
  • 20. BeerExpert.java package com.example.model; import java.util.ArrayList; public class BeerExpert { public ArrayList getBrands(String color){ ArrayList brands = new ArrayList(); if(color.equals("amber")){ brands.add("Jack Amber"); brands.add("Red Moose"); } else { brands.add("Jail Pale Ale"); brands.add("Gout Stout"); } return brands; } }
  • 21. result.jsp <%@ page import="java.util.*" %> <html> <body> <% List styles = (List) request.getAttribute("styles"); Iterator it = styles.iterator(); while(it.hasNext()){ out.print("<br>try :" + it.next()); } %> </body> </html>
  • 22. 사용할 파일 (BeerSelect.java)package com.example.web; import com.example.model.BeerExpert; @SuppressWarnings("serial") public class BeerSelect extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String c = request.getParameter("color"); BeerExpert be = new BeerExpert(); List result = be.getBrands(c); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("BeerSelection Advice<br>"); Iterator it = result.iterator(); while(it.hasNext()){ out.print("<br>try : " + it.next()); } request.setAttribute("styles", result); RequestDispatcher view = request.getRequestDispatcher("result.jsp"); view.forward(request, response); } }
  • 24. BeerSelect.java - 버전 1 package com.example.web; import com.example.model.BeerExpert; @SuppressWarnings("serial") public class BeerSelect extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("Beer Selection Advice<br>"); String c = request.getParameter("color"); out.println("<br>Got beer color" + c ); } }
  • 25. BeerSelect.java - 버전 2 package com.example.web; import com.example.model.BeerExpert; @SuppressWarnings("serial") public class BeerSelect extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String c = request.getParameter("color"); BeerExpert be = new BeerExpert(); List result = be.getBrands(c); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("BeerSelection Advice<br>"); Iterator it = result.iterator(); while(it.hasNext()){ out.print("<br>try : " + it.next()); } } }