컴퓨터응용과학부 Java Enterprize(DB) 제 7 주

Slides:



Advertisements
Similar presentations
SMART MANAGED INSTRUCTION WITH SNS 도지원 강동하 나지범 박창현 최병찬 SixSignal Capstone Design 2012.
Advertisements

JSP 정리 레퍼런스: JSP 2.1 웹 프로그래밍 (최범균, 가메출판사). 목차 1. Directive - 인코딩 - 오류처리 2. Implicit Object - 쿠키/세션 3. Action Tag 4. JDBC/DBCP 프로그래밍, 파일업로드 5. Expression.
Chapter 02. 웹에 대한 이해. Chapter 02. 웹에 대한 이해 웹의 역사 HTTP 웹 애플리케이션 기술.
- SW_Desing Study Group -
Spring MVC ㅇ 스프링 MVC 구성요소 설명 DispatcherServlet 클라이언트의 요청을 컨트롤러에게 전달하고
Introduction to Servlets
Web Server (JSP, Servlet 지원)
Chapter 14 : JSP 고급4. chapter 14 : JSP 고급4 학습목표 커스텀 태그 종류 JSTL ( JSP Standard Tag Library ) 사용자 커스텀 태그 커스텀 태그 작성 클래스 기반 커스텀 태그 작성 태그 파일 기반 커스텀 태그 작성.
JPetStore 분석자료 1.0 Spring framework 작성자 : 김태완.
Spring 4 기반의 RESTful Web Service 구현
Chapter 32 Analyzing Web Traffic
2 서블릿의 기초.
팀 명: Con Spirito 팀 원: 경주리 김다정 김소담 최은미
3장. 웹 어플리케이션과 JSP 및 Servlet의 이해 제3장.
9 표준 액션.
7. JavaBeans 프로그래밍 JavaBeans JavaBeans 만들기 Bean을 이용한 회원가입 양식 작성하기
3 MVC모델을 이용한 웹 애플리케이션 작성.
1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장.
Web Servers (IIS & Apache)
메소드 호출과 힙 원격 메소드 호출 서블릿 엔터프라이즈 자바 빈즈
1강 01장. 웹과 자바.
IOC, DI 2015 Web Service Computing.
Chapter 02 웹의 이해.
임베디드 프로그래밍 Lecture #
AJAX 커머스아이 박준열.
클라우드 환경에서의 session 유지처리
자바 5.0 프로그래밍.
Socket & Plug 기반의 u-Banking Platform
24강. JSTL(JSP standard Tag Library)
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Java IT응용시스템공학과 김형진 교수 2장. 자바의 환경 public class SumTest {
2장. JSP 개발 환경 설정 이 장에서 배울 내용 : JSP 페이지를 작성하기 위한 개발환경을 설정하고, 웹 애플리케이션 개발을 위해 반드시 이해하여야 할 웹 애플리케이션 폴더 구조에 대해 학습한다. 또한 요청된 JSP 페이지가 어떠한 처리과정을 거쳐 응답이 이루어지는가에.
컴퓨터응용과학부 Java Enterprize(DB) 제 8 주
웹서버와 설치에 필요한 것 WWW ( world wide web ) TCP/IP 프로토콜을 이용하는 클라이언트/서버 환경
Chapter 15 : Struts 프레임워크 1. chapter 15 : Struts 프레임워크 1.
JSP와 자바 빈즈 JSP 빈즈 구조를 이해하고 활용한다. useBean 액션 활용법을 익힌다.
전자정부 표준프레임워크 호환성 가이드 전자정부 표준프레임워크 운영유지보수 사업단.
웹 애플리케이션 개발 프레임워크와 스트러츠 웹 애플리케이션 기술 변천사를 이해한다
27강. MVC패턴을 이용한 게시판 만들기-I MVC패턴의 이해 전체적인 컴포넌트 설계 DB(DataBase) 생성
웹 애플리케이션 로깅 및 오류 처리 기법 웹 애플리케이션 로깅의 필요성을 이해한다 로깅의 분류 및 구현 방안을 학습한다
Html(front end) & jsp(back end)
11강. 스프링 MVC 기초 스프링 MVC 개요 스프링 MVC 구조 살펴보기 resources 폴더
9장 JSP페이지의 에러처리 이장에서 배울 내용 : JSP페이지에서 에러를 처리하는 방법에 대해 학습해본다. 에러페이지를 사용한 에러처리의 문제점을 살펴보고, 현재 JSP2.0에서 권장하는 에러 처리 형태인 에러코드별 에러처리를 하는 방법에 대해 학습한다.
Network Security WireShark를 활용한 프로토콜 분석 II.
Web Socket.
~27 윤형기 Python 프로그래밍 (보충) ~27 윤형기
Open API - Naver (Application Programming Interface )
1강. 웹프로그래밍 웹프로그래밍이란? JAVA웹 웹프로그램의 동작 필요한 학습 Lecturer Kim Myoung-Ho
Web Vulnerabilities 정보 보호 2008/05/31 Getroot.
3. Spring 프레임워크의 IoC 컨테이너 개념
SNS 로그인 API 연동 조휘제.
Spring 프레임워크의 이해 – day1 자바지기.
JSP문법 JSP 기본 구조를 이해한다. 지시어, 스크립트릿 JSP 액션 태그 사용법을 익힌다. 한빛미디어(주)
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
SpringFramework 중간고사 요약 REST by SpringFramework.
Spring DI 이해 및 활용.
3장. 웹로직 서버에서의 서블릿과 JSP의 운용 3-1. 서블릿, JSP를 실행하기 전의 환경 설정
Chapter 08 : 서블릿 고급3. chapter 08 : 서블릿 고급3 학습목표 서블릿 속성과 Scope ServletContext HttpSession HttpServletRequest Filter API 요청 필터 응답 필터 url-pattern 8 가지.
Internet Computing KUT Youn-Hee Han
2015년 디지털컨버전스 청년취업아카데미.
Spring Security 2015 Web Service Computing.
전자정부 표준프레임워크 호환성 가이드 (사)오픈플랫폼 개발자커뮤니티.
JSP와의 첫 만남 간간한 JSP 프로그램을 작성하면서 앞으로 학습에 필요한 과정을 익힌다.
JSP Programming with a Workbook
제 11 장 자바빈즈를 이용한 JDBC 프로그래밍 학기 인터넷비즈니스과 강 환수 교수.
제 17 장 MVC 모델과 구현 학기 인터넷비즈니스과 강 환수 교수.
~27 윤형기 Python 프로그래밍 (보충) ~27 윤형기
Architecture.
Model2.
스터디카페 예약시스템 조영현.
Presentation transcript:

컴퓨터응용과학부 Java Enterprize(DB) 제 7 주 2014년 10월 14일 프레젠테이션 층의 설계와 구현(6장)

다음 주 과제 중간 시험 6장 읽어오기 숙제 해서 제출하기(중간 시험 이후) 필기 시험 : 10월 21일 7교시 E430 시험 범위 : 1장 ~ 5장 6장 읽어오기 숙제 해서 제출하기(중간 시험 이후)

제6장 프레젠테이션 층의 설계와 구현 스프링 MVC의 개요 환경 만들기 예제 애플리케이션의 개요 화면을 표시하는 컨트롤러 입력 값을 받는 컨트롤러 스프링 MVC의 그 밖의 기능 정리

스프링 MVC의 개요 스프링 MVC 설계 애노테이션 도임 J2EE 패턴의 프론트 컨트롤러 패턴에 기초한다 @Controller 애노테이션으로 컨트롤러 클래스 생성 가능 @RequestMapping 으로 URL과 실행 메소드 연결 가능 한 클래스에 요청을 처리하는 메소드를 여러 개 정의할 수 있다. 메소드명을 자유롭게 선택할 수 있다. 메소드의 인수를 필요한 것만 자유롭게 선택할 수 있다.

스프링 MVC 개요 컨트롤러 예 URL 매핑 View 에 넘겨줄 오브젝트 View 이름 리턴(home.jsp)

스프링 MVC 개요 스프링 MVC와 REST 스프링 MVC는 URL과 메소드를 직접 연결한다.(REST 사 고 방식) REST : Representational State Transfer, 웹상의 정보 를 모두 리소스로 파악하고 그 식별자로 URI를 할당해 특 정할 수 있도록 한다. REST는 HTTP 메소드를 충실하게 사용한다.

스프링 MVC개요 REST의 사고 방식 URI: http://home.inje.ac.kr/usr/1 name=철수 address = 김해시 /usr/5 ……… /usr/2 ……… /usr/3 ……… /usr/4 ………

REST에 의한 리소스 접근 REST 서버 REST 크라이언트 사용자 검색 (id = 1) GET /usr/1 사용자 name=“영자” REST 크라이언트 POST /usr/2 사용자 name=“창민” 사용자 등록 (id = 1, name=창민) OK

REST사용 MVC조건 URL을 자유롭게 결정할 수 있다. HTTP 메소드에 따라 실행할 처리를 전환할 수 있 다. 스프링 프레임워크는 위 세 가지 조건을 다 만족한 다.

스프링 MVC의 클래스와 동작 개요 HandlerMapping Service ②-1 ③-1 ① 브라우저 DispatcherServlet ②-2 Controller ④ View name ⑦-2 ViewResolver ⑤ UserView ⑥ View return ③-2 ⑦-1 Model

스프링 MVC의 클래스 클래스 역할 DispatcherServlet 모든 HTTP 요청을 받아들여 그 밖의 오브젝트 사이의 흐름을 제어한다. HandlerMapping 클라이언트의 요청을 바탕으로 어느 컨트롤러를 실행할 지를 결정한다. Model 컨트롤러에서 뷰로 넘겨줄 오브젝트를 저장하는 클래스로 문자열 키와 값의 쌍으로 저장한다. View Resolver View이름을 바탕으로 적당한 View 오브젝트를 선택한다. View User View에 화면표시 처리를 의뢰한다. Service 비즈니스 로직을 실행한다. Controller 클라리언트 요청에 맞게 프레젠테이션 층의 애플리케이션 처리를 실행한다. User View 클라이언트에 대해 화면 표시 처리를 한다.

스프링 MVC의 동작 과정 DispatcherServlet은 브라우저로부터 요청을 받아들인다. DispatcherServlet은 요청된 URL을 해들러매핑 오브젝트에 넘기고 호출 대상의 컨트롤러 오젝트를 얻어 URL에 해당하는 메소드를 호출할 수 있도록 핸들러 어댑터를 준비해 호출한다. 컨트롤러 오브젝트는 비즈니스 로직 처리를 실행하고, 그 결과 를 바탕으로 뷰에 전달할 오브젝트를 Model 오브젝트에 저장 한다. 컨트롤러는 뷰이름을 반환한다. DispatcherServlet은 컨트롤러에서 반환된 View 이름을 뷰리 졸버에 전달해서 뷰 오브잭트를 얻는다. DispatcherServlet은 View 오브젝트에 화면 표시를 의뢰한다. View 오브젝트는 User View(jsp 파일)를 호출해서 화면 표시 를 의뢰한다. User View는 Model 오브젝트에서 화면 표시에 필요한 오브젝 트를 가져와 화면 표시 처리를 실행한다.

컨트롤러의 개요와 Model 오브젝트 클라이언트 요청에 따라 프레젠테이션 계층의 애 플리케이션 처리 구현 뷰 이름 반환 컨트롤러 클래스 설정 URL과 메소드의 매핑 전달할 내용을 Model 오브젝트에 저장 뷰 이름 반환

View 와 View Resolver 뷰 기술 클래스 이름 설명 JSP, 기타 InternalResourceView JSP등의 웹 컨테이너 상에서 관리되는 리소스에 forward해 표시하는 View 클래스 JSTL 기반 JSP JstlView JSTL로 기술한 JSP를 표시할 때 사용 Velocity VelocityView Velocity 의 템플릿을 사용해 결과를 표시 할 때 사용 FreeMarker FreeMarkerView FreeMarker 의 템플릿을 사용해 결과를 표시 할 때 사용 Apache Tiles 2.x TilesView Apache Tiles 템플릿을 사용해 결과를 표시 할 때 사용 XSLT XsltView XSLT 로 변환한 결과의 XML을 표시하는 View

View 와 View Resolver 뷰 기술 클래스 이름 설명 JasperReport JsperReportsHtmlView JsperReportsPdfView JsperReportsXlsView JsperReportsCsvView ConfigurableJsperReportsView JasperReport의 결과를 표시하는 View 클래스 XML 형식 MarshallingView 스프링의 O/X 매핑기능으로 변환한 결과인 XML을 표시하는 View 클래스 Jackson(JSON 형식) MappingJacksonJsonView Jackson으로 변환한 JSON을 표시하는 View Apache POI(Excel 형식) AbstractExcelView Apache POI로 변환한 결과인 엑셀을 표시하는 View. 엑셀로 변환하는 클래스는 상속 받아서 따로 작성

View 와 View Resolver 뷰 기술 클래스 이름 설명 iText(PDF 형식) ABstractPdfView iTEXT로 변환한 결과인 PDF를 표시하는 View. PDF로 변환하는 클래스는 상속 받아서 직접 작성 Rome(Atom, RSS형식) AbstractAtomFeedView AbstractRSSFeedView Rome 으로 변환한 결과인 Atom, RSS를 표시하는 View

View와 ViewResolver View를 직접 반환하는 경우 뷰기술에 의존한다. DispatcherServlet JstlView Controller View이름만 반환하는 경우 뷰기술에 의존한다. DispatcherServlet View 이름 Controller View 이름 ViewResolver JstlView

ViewResolver 클래스 클래스 이름 설명 설정방법과 예 UrlBasedViewResolver 설정된 접두사와 접미사를 바탕으로 만든 URL의 View 오브젝트를 반환한다. 뷰 이름으로 ‘forward:xxx’나 ‘redirect:xxx’ 가 지정되면 forward나 redirect를 한다. UrlBasedViewResolver의 프로퍼티 로서 정의 prefix = /WEB-INF/views/ suffix = .jsp ResourceBundleViewResolver 자바의 리소스 번들 형식의 설정을 바탕으로 View 오브젝트를 결정한다. 리소스 번들파일로서 정의 user/list.(class)=org.springframework.web.servlet.view.JstlView usr/list.url=/WEB-INF/views/usr/list/jsp

ViewResolver 클래스 클래스 이름 설명 설정방법과 예 XmlViewResolver DI 컨테이너에서 Bean 이름이 뷰 이름인 View 오브젝트를 반환한다. View 오브젝트만 등록된 DI 컨테이너로 View 오브젝트를 관리한다. Bean 정의 파일로서 정의 <bean name=“usr/list” class=“…View.JstlView”> <property name=“url” value=“/WEB-INF/views/usr/list.jsp”/> </bean> <bean name=“usr/list” class=“…velocity.VelocityView”> <property name=“url” value=“/WEB-INF/views/usr/detail.vm”/> BeanNameViewResolver DI 컨테이너에서 Bean 이름이 뷰 이름인 View 오브젝트를 반환한다. ViewResolver가 등록된 DI 컨테이너로 View 오브젝트를 취득한다.

ViewResolver 클래스 클래스 이름 설명 설정방법과 예 ContentNegotiatingViewResolver HTTP 요청의 헤더를 바탕으로 View 오브젝트를 선택한다. 뷰 이름으로 View 오브젝트를 가져오는 처리는 다른 뷰 리졸버에 의뢰한다. 따라서 반드시 다른 뷰 리졸버를 설정해 둘 필요가 있다. 각 뷰 리졸버 별로 정의

UrlBasedViewResolver와 뷰의 경로 가장 자주 사용되는 뷰 리졸버 이다. 접두사(prefix)와 접미사(suffix)를 설정한다. prefix = /WEB-INF/views/ suffix = .jsp Controller usr/list ViewREsolver View 오브젝트 /WEB-INF/views/usr/list.jsp

UrlBasedViewResolver의 서브클래스 클래스 이름 대응하는 뷰 클래스 InternalResourceViewResolver InternalResourceView JstlView (JSTL 라이브러리가 있는 경우) VelocityViewResolver VelocityView FreeMarjerViewResolver FreeMarkerView TileViewResolver TilesView XsltViewResolver XsltView

스프링 MVC와 관련된 스프링의 기능 메시지 관리 Validation 처리 메시지를 코드와 연결해 관리 MessageSource interface, ReloadableResourceBundleMessageSource 국제화 대응 Validation 처리 검증 처리 인터페이스 처리결과를 저장하는 오브젝트

스프링의 properties 파일 스프링에서는 xxx.properties 파일에서 유니코드 를 지원하지 않는다. 즉 프로퍼티 파일에서 한글로 입력을 하면 실제 웹에서는 글자가 깨져 표시된다. 이를 해결하기 위해서는 한글로 입력한 내용을 자 동으로 유니코드 이스케이프, \uxxxx, 로 변환 해 주는 유틸리티를 사용해야 한다. Integrated Properties Editor Properties Editor

환경 만들기 스프링 툴 슈트(Spring Tool Suite, STS)를 설치하 면 필요한 대부분의 환경은 자동으로 구축된다. 필요한 환경 개발 실행 환경 : STS 애플리케이션 컨테이너 : Apache Tomcat Server 또는 Pivotal tc Server STS 압축 해제를 본인이 쓰기 권한이 있는 폴더에 하고 STS를 실행해야 함.

웹 서버 환경 설정 환경 설정 파일을 직접 수정하지 말고 STS에서 수 정할 것 주로 실행 포트 문제임

웹 서버 정상 동작 확인

비즈니스 로직의 Bean 정의 파일 resources 폴더에 배치

beans-biz.xml 파일

스프링 MVC의 bean 정의 파일 beans-webmvc.xml

web.xml 설정 디폴트 이스케이프 설정 Bean 정의파일 위치 설정

web.xml 설정 인코딩 관련 설정

web.xml 설정 Servlet 관련 설정

예제 레이어와 패키지 구조 sample.customer web biz service controller domain

예제 레이어와 패키지 구조

비즈니스 로직 클래스

화면을 표시하는 컨트롤러 @RequestMapping value method params headers consumes produces

@RequestMapping의 설정 속성 설정가능한 형 내용 설정 예 value String URL @RequestMapping(“/comsi”) @RequestMapping (value={“/comsi”, “/socas”}) method HttpMethod HTTP 메소드 @RequestMapping (method=HttpMethod.POST) params 요청파라메터 @RequestMapping (params=“action=new”) @RequestMapping (params=“!forbidden”) @RequestMapping (params=“action=edit”, “userId”)

@RequestMapping의 설정 속성 설정가능한 형 내용 설정 예 headers String 요청헤더 @RequestMapping (headers=“myHeader=myValue”) comsumes 요청에 포함된 미디어 타입 @RequestMapping (consumes=“text/xml”) @RequestMapping (consumes=“text/*”) produces 응답의 미디어 타입 @RequestMapping (produces=“text/html”) @RequestMapping (produces=“text/*”)

URI 템플릿 사용 @RequestMapping(value=“/usr/{userId}”, method=GET) public String getUserById( @PathVariable(“userId”) int id, Model model,.)

복수 변수 사용

정규 표현 사용 세미콜론(;)을 포함한 URL은 스프링에서 지정할 수 없다.

클래스 레벨 Mapping

Controller 메소드 인수 @PathVariable @RequestParam @RequestHeader @Cookie @RequestBody @ModelAttribute HttpEntity Model, SessionStatus, WebRequest HttpSerrvletRequest, HttpServletResponse Locale, Reader, Writer, Principla

다음 주 계속