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

Slides:



Advertisements
Similar presentations
12 장 자바 애플릿. 2 Applet 개요 Applet 프로그램 – 웹 페이지에 포함되어 구동 된다. 웹 브라우저나 애 플릿뷰어 (appletviewer) 에서 실행되는 프로그램 – 웹 브라우저 내에 Applet 을 해석하여 실행할 수 있 도록 Applet 구동용 인터프리터가.
Advertisements

컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
컴퓨터응용과학부 Java Enterprize(DB) 제 1 주
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
Spring MVC ㅇ 스프링 MVC 구성요소 설명 DispatcherServlet 클라이언트의 요청을 컨트롤러에게 전달하고
Oozie Web API 기능 테스트 이승엽.
Image & Video processing
Power Java 제3장 이클립스 사용하기.
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
5강. Servlet 본격적으로 살펴보기-I 프로젝트 만들기 doGet() doPost()
최윤정 Java 프로그래밍 클래스 상속 최윤정
제 08 장 자바 빈즈 학기 인터넷비즈니스과 강 환수 교수.
컴퓨터 프로그래밍 기초 [Final] 기말고사
PHP입문 Izayoi 김조흔.
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
컴퓨터응용과학부 Java Enterprize(DB) 제 13 주
Java 기초 (Java JDK 설치 및 환경설정)
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
컴퓨터응용과학부 Java Enterprize(DB) 제 12 주
12 ███████████ 12.
6강. DI설정 방법 XML파일을 이용한 DI설정 방법 JAVA를 이용한 DI설정 방법 XML과 JAVA를 같이 사용
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터응용과학부 Java Enterprize(DB) 제 15 주
소프트웨어 분석과 설계 Struts2 & JBOSS 설치하기
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
KHS JDBC Programming 4 KHS
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
10장. 예외처리.
제 01 장 인터넷 프로그래밍 개요 학기 인터넷비즈니스과 강 환수 교수.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
2장 JSP 개발 환경 설정 이장에서 배울 내용 : JSP 페이지를 작성하기 위한 개발환경을 설정하고, 웹 어플리케이션 개발을 위해 반드시 이해하여야 할 웹 어플리케이션 폴더 구조에 대해 학습한다. 또한 요청된 JSP 페이지가 어떠한 처리과정을 거쳐 응답이 이루어지는가에.
CHAP 12. 리소스와 보안.
3강. JSP 맛보기 JSP 문서 작성 하기 JSP 아키텍처 Lecturer Kim Myoung-Ho Nickname 블스
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
컴퓨터응용과학부 Java Enterprize(DB) 제 7 주
CHAP 13. 방명록 만들기 실습.
전자정부 표준프레임워크 호환성 가이드 전자정부 표준프레임워크 사업단 실행환경 개발팀.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
MVC 모델을 이용한 웹 애플리케이션 작성 웹 애플리케이션 개발 순서를 알아본다 웹 애플리케이션의 실행 순서를 이해한다.
Smart Workplace 개발자 가이드
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
컴퓨터응용과학부 Java Enterprize(DB) 제 14 주
자바 5.0 프로그래밍.
12장 쿠키와 세션 이장에서 배울 내용 : 쿠키와 세션은 웹 페이지 간에 정보를 유지할 때 사용된다. 쿠키와 세션은 사용되는 형태가 비슷하나, 쿠키는 웹 브라우저(클라이언트) 쪽에 저장되고, 세션은 웹 서버 쪽에 저장된다. 이 번장에서는 이들에 대해 학습한다.
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
컴퓨터응용과학부 Java Enterprize(DB) 제 10 주
PMIS 서버 설정 환경설정 작성자 : 배경환.
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
컴퓨터 계측 및 실습 디지털 출력 영남대학교 기계공학부.
웹(WWW).
STS 에서 웹 서버 설치 방법.
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
암호학 응용 Applied cryptography
~27 윤형기 Python 프로그래밍 (보충) ~27 윤형기
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
JSP Programming with a Workbook
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
CHAP 15. 데이터 스토리지.
JAVA 프로그래밍 16장 JNLP.
Presentation transcript:

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

다음 주 과제 7장 읽어오기 숙제 해서 제출하기

제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 FreeMarkerViewResolver 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

제 9 주 강의 내용

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

@PathVariable URI 템플릿 형식으로 지정한 URL의 변수 값 foo(@PathVariable(“userID”) int id) @RequestMapping(/usr/{userID})

@RequestParam HTTP 요청 파라메터 foo(@RequestParam(“userId”) int id) foo(@RequestParam(value = “userId”, required = true, default = “0”) int id) http://a.b.c/user/foo?userId=5

@RequestParam 업로드 파일 (POST 방법으로 파일을 업로드 할 때) foo(@RequestParam(“uploadFile”) MultipartFile uploaded)

@RequestHeader HTTP 요청의 헤더 값 foo(@RequestHeader(“User-Agent”) String userAgent)

@Cookie 쿠키 값 foo(@Cookie(“jsessionid”) String sessionId)

@RequestBody HTTP 요청의 메시지 바디 foo(@Requestbody User user) POST 메소드 사용

Controller 메소드의 반환값 기본적으로 View의 이름이다. void 인 경우는 요청받은 URL이 view 이름이 된다. 접두사 내용 사용예 redirect: 지정된 URL로 리디렉트 redirect:/user redirect:http://comsi.inje.ac.kr forward: 지정된 URL로 포워드 forward:/user

입력 값을 받는 Controller 요청 파라메터의 키 값과 클래스의 멤버변수 명이 같아야 한다. 요청 파라메터의 키 값과 클래스의 멤버변수 명이 같아야 한다. 각 멤버 변수에 대한 setter 메소드가 있어야 한다. 전달 받을 클래스는 기본 생성자가 있어야 한다. @ModelAttribute 사용 Request Scope 에 저장된다.

Controller 동작

Model 오브젝트와 Session 스코프 스프링에서 제공하는 form 태그라이브러리를 이 용하고 싶을 때 몇 단계에 걸쳐 완성되는 폼을 구성하고 싶을 때 지속적으로 사용자의 입력 값을 유지하고 싶을 때

Model 오브젝트와 Session 스코프

검증 처리와 JSR-303 Bean 검증

검증 처리와 JSR-303 Bean 검증

검증 처리와 JSR-303 Bean 검증

JSP와 스프링 태그 라이브러리 스프링 태그 라이브러리 폼 태그 라이브러리 제공 오류 및 메시지 표시

스프링 MVC의 그 밖의 기능 flash 스코프 스프링의 예외 처리 Request 스코프와 유사하지만 리디렉트일 때 상태가 유 지되는 스코프 이다. 스프링의 예외 처리 컨트롤러마다 예외 처리 정의 하나의 웹 애플리케이션에서 공통된 예외처리 정의

파일 업로드 MultiPartResolver 인터페이스 구현

파일 업로드

REST API의 구현 – XML, JSON의 송/수신 HttpMessageConverter @ResponseBody ResponseEntity