PowerPoint Presentation

Size: px
Start display at page:

Download "PowerPoint Presentation"

Transcription

1 Spring MVC 기초 - 강사김현오 -

2 1. Spring MVC 개요 1.1 SpringMVC 개요 1.2 SpringMVC 시작하기 MVC 패턴 DispatcherServlet SpringMVC 요청처리과정

3 MVC 패턴 (1/2) Model 어플리케이션상태의캡슐화 상태쿼리에대한응답 어플리케이션의기능표현 변경을뷰에통지 View 모델을화면에시각적으로표현 모델에게업데이트요청 사용자의입력을컨트롤러에전달 컨트롤러가뷰를선택하도록허용 Controller 어플리케이션의행위정의 사용자액션을모델업데이트와매핑 응답에대한뷰선택 View Model Controller 메소드호출이벤트 2

4 MVC 패턴 (2/2) MVC(Model View Controller) 패턴 어플리케이션의확장을위해 Model, View, Controller 세가지영역으로분리 컴포넌트의변경이다른영역컴포넌트에영향을미치지않음 컴포넌트간의결합성이낮아프로그램수정이용이 장점 - 화면과비즈니스로직을분리해서작업가능 - 영역별개발로인하여확장성이뛰어남 - 표준화된코드를사용하므로공동작업이용이하고유지보수성이좋음 단점 - 개발과정이복잡해초기개발속도가늦음 - 초보자가이해하고개발하기에다소어려움 3

5 DispatherServlet DispatcherServlet 프리젠테이션계층의제일앞에서서버로들어오는모든요청을먼저받아서처리하는서블릿 web.xml 에등록 (1) HTTP 요청 (2) 요청 Dispatcher Servlet 컨트롤러 (C) (7) HTTP 응답 (4) 모델 & 뷰 (5) 모델 (6) 생성 (3) 생성 뷰 (V) (6) 참조 모델 (M) 4

6 Spring MVC 요청처리과정 Spring MVC 스프링이직접제공하는서블릿기반의 MVC 프레임워크 2 Handler Mapping Spring MVC 요청처리순서 DispatcherServlet 이요청을수신 - 단일 Front Controller Servlet - 요청을수신하여처리를다른컴포넌트에위임 - 어느컨트롤러에요청을전송할지결정 DispatcherServlet 은 Handler Mapping 에어느컨트롤러를사용할것인지문의 - URL 과매핑 DispatcherServlet 은요청을컨트롤러에게전송하고컨트롤러는요청을처리한후결과리턴 - 비즈니스로직수행후결과정보 (Model) 가생성되어 JSP 와같은뷰에서사용됨 ModelAndView 오브젝트에수행결과가포함되어 DispatcherServlet 에리턴 1 Dispatcher Servlet ModelAndView Controller ViewResolver ModelAndView 는실제 JSP 정보를갖고있지않으며, ViewResolver 가논리적이름을실제 JSP 이름으로변환 View View 는결과정보를사용하여화면을표현함 5

7 1. Spring MVC 개요 1.1 SpringMVC 개요 1.2 SpringMVC 시작하기 DispatcherServlet 설정 애플리케이션컨텍스트구성전략 Spring MVC 애플리케이션작성절차

8 DispatcherServlet 설정 (1/3) DispatcherServlet 설정 web.xml에등록 디폴트컨텍스트설정파일 : <servlet name> servlet.xml <url pattern> 은 DispatcherServlet이처리하는 URL 매핑패턴을정의 서블릿이기때문에하나이상의 DispatcherServlet 설정가능 <load on startup> 값이 1인경우 WAS start시초기화작업을함 <servlet> <servlet-name>appservlet</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <load-on-startup>1</load-on-startup> <init-param> <param-name>contextconfiglocation</param-name> <param-value>/web INF/spring/appServlet/servlet context.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>appservlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> 7

9 DispatcherServlet 설정 (2/3) 루트애플리케이션컨텍스트등록 각 DiapatcherServlet 이공통으로사용하는빈이있는경우 ContextLoaderListener 를사용하여공통으로사용할빈을설정한다. 디폴트설정파일 : /WEB INF/applicationContext.xml DispatcherServlet 이생성한컨텍스트는자식컨텍스트가된다. 보통웹기술과무관한서비스계층이나데이터접근계층의빈들을등록하기위해사용한다. <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener> <context-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/board-service.xml /WEB-INF/board-data.xml /WEB-INF/board-security.xml </param-value> </context-param> 8

10 애플리케이션컨텍스트구성전략 애플리케이션레이어에따라애플리케이션컨텍스트를분리하여관리한다. Security Layer board security.xml Web Layer board servlet.xml Service Layer board service.xml Persistence Layer board data.xml 9

11 Spring MVC 애플리케이션작성절차 Spring MVC 를이용한애플리케이션작성단계 컨트롤러작성 JSP 코드작성 컨트롤러작성 좋은설계는컨트롤러가많은일을하지않고서비스에처리를위임하는것이다. Web Request Response Dispatcher Servlet Request Response Controller dosomething() Service 10

12 컨트롤러작성 컨트롤러작성 package com.namoo.mvc.controller;... import com.namoo.mvc.domain.post; public class BlogController { private BlogService public ModelAndView listpost() { // List<Post> posts = blogservice.findallposts("1"); 서비스를이용하여조회 return new ModelAndView("post/list", "posts", posts); ModelAndView 생성하여반환 11

13 ModelAndView ModelAndView 컨트롤러는논리적뷰와뷰에전달할데이터를포함하는 ModelAndView 객체를리턴한다. ModelAndView("post/list","posts",posts); 논리적인뷰이름모델객체의이름모델객체 12

14 JSP 작성하기 모델을받아 HTML 을구성하는 JSP 코드 page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%> prefix="c" uri=" %> <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>namooblog</title> </head> <body> <table border="1"> <tr> <th> 제목 </th> <th> 내용 </th> </tr> <c:foreach var="post" items="${posts"> <tr> <td>${post.subject</td> <td>${post.contents</td> </tr> </c:foreach> </table> 모델 (posts, 목록데이터 ) 을화면에보여줌. ${ 프로퍼티명 형식으로모델데이터사용가능 </body> </html> 13

15 결과화면 14

16 2. Spring MVC 활용 애노테이션기반 2.3 HTML 폼과커맨드객체 2.4 View 2.5 Model 2.6 요청 URI 2.8 인터셉터 2.9 예외처리 소개 컨트롤러작성및빈등록 View Resolver 설정

17 spring 2.5에서도입되어 3.0에서강화된 annotation 활용전략 어노테이션기반 MVC 최신 은어노테이션을의미함 ( 예전꺼는 deprecate 하고향후삭제한다고협박 ) 16

18 컨트롤러작성및빈등록 컨트롤러클래스작성 public class HelloController hello.do") public String sayhello(model model) { model.addattribute( message, 안녕하세요 ) return hello" HelloController.java 컨텍스트설정파일 ([servletname] servlet.xml) 에컨트롤러설정 <beans:bean class="com.kosta.hellocontroller /> dispatcher-servlet.xml 17

19 View Resolver 설정 컨트롤러와 JSP 의연결위해 View Resolver 설정 WEB INF/spring/appServlet/servlet context.xm <beans:bean class="com.kosta.hellocontroller /> <beans:bean class="org.springframework.web.servlet.view.internalresourceviewresolver"> <beans:property name="prefix" value="/web INF/views/" /> <beans:property name="suffix" value=".jsp" /> </beans:bean> JSP 코드작성 dispatcher-servlet.xml page language="java" contenttype="text/html charset=utf 8" pageencoding= UTF 8"%> <!DOCTYPE html PUBLIC " //W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http equiv="content Type" content="text/html charset=utf 8"> </head> <body> 음... ${message </body> </html> hello.jsp 18

20 2. Spring MVC 활용 애노테이션기반 2.3 HTML 폼과커맨드객체 2.4 View 2.5 Model 2.6 요청 URI 2.8 인터셉터

21 @Controller 선언 public class HomeController { private static final Logger logger = LoggerFactory.getLogger(HomeController.class) /** * Simply selects the home view to render by returning its name. = "/", method = RequestMethod.GET) public String home(locale locale, Model model) { logger.info("welcome home! The client locale is {.", locale) Date date = new Date() DateFormat dateformat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale) String formatteddate = dateformat.format(date) model.addattribute("servertime", formatteddate ) return "home" 20

22 @Controller DispatcherServlet 이사용하는스프링설정파일에해당컨트롤러클래스를등록 WEB INF/spring/appServlet/servlet context.xml <context:component scan base package="kr.kosta.myspring" /> <! Resolves views selected for rendering to.jsp resources in the /WEB INF/views directory > <beans:bean class="org.springframework.web.servlet.view.internalresourceviewresolver"> <beans:property name="prefix" value="/web INF/views/" /> <beans:property name="suffix" value=".jsp" /> </beans:bean> 21

23 @RequestMapping 컨트롤러메소드의 HTTP 메소드한정 같은 URL 의요청에대하여 HTTP 메소드 (POST, GET ) 에따라서로다른메소드를 Mapping public class HelloController hello.do, method=requestmethod.get) public String hello() { return helloget hello.do, method=requestmethod.post) public String hello2() { return hellopost ; 22

24 어노테이션을클래스에적용하여 /hello.do ) public class HelloController public String hello() { return helloget public String hello2() { return hellopost ; 23

25 @RequestMapping URL Ant 스타일의 URL hello main* view.* admin/**/user ) URI 템플릿사용, path users/{userid/delete ) hello, hi, wassup ) 24

26 Ant-Style Pattern 25

27 @RequestMapping params String[] params() 엘리먼트는파라메터값과비교해서매핑 URL Request Param : user/edit, params= type=admin user/edit, params= type=member ) Form Param <jsp> <form action= ${ctx/user/edit" method="post"> <input type="hidden" name= type value= admin" </form> 26

28 @RequestMapping headers String[] headers() 엘리먼트는 HTTP user/edit, headers= content type=text/* ) 27

29 @RequestMapping 은하위클래스에도상속됨 단, 을인터페이스에작성한경우도마찬가지 28

30 컨트롤러메소드의파라메터타입 컨트롤러메서드의파라메터로다양한오브젝트를받을수있음 HttpServletRequest HttpServletResponse HttpSession java.util.locale InputStream, Reader @RequestBody Map, Model, ModelMap 파라미터타입 필요시 servlet api를사용할수있음현재요청에대한 Locale 요청컨텐츠에직접접근할때사용응답컨텐츠를생성할때사용 URI 템플릿변수에접근할때사용 HTTP 요청파라미터를매핑 HTTP 요청헤더를매핑 HTTP 쿠키매핑 HTTP 요청의몸체내용에접근할때사용뷰에전달할모델데이터를설정할때사용 HTTP 요청파라미터를저장한객체, 기본적으로클래스이름을모델명으로사용 Errors, BindingResult SessionStatus HTTP 요청파라미터를커맨드객체에저장한결과, 커맨드객체를위한파라미터바로다음에위치 어노테이션을명시한 session 속성을제거하도록이벤트를발생시킨다. 29

31 2. Spring MVC 활용 애노테이션기반 2.3 HTML 폼과커맨드객체 2.4 View 2.5 Model 2.6 요청 URI 2.8 인터셉터 2.9 예외처리 HTML 폼과커맨드객체 View 컨트롤러메소드의파라메터타입

32 HTML 폼과커맨드객체 Spring MVC 는폼에입력한데이터를자바빈객체를이용해서전송할수있도록함. <form method= post action= saveboard.do > 제목 : <input type= text name= title /><br/> 내용 : <textarea name= content ></textarea><br/> <input type= submit /> </form> public class Board { private String title; private String content; public void settitle(string title) { this.title = public class BoardController board/saveboard.do ) public String save(board board) { public void setcontent(string content) { this.content = content; 31

33 View 에서커맨드객체에접근하기 View public class BoardController board/saveboard.do ) public String hello(board command) { <body> 를사용하여 /hello.do ) public class HelloController public String hello(@modelattribute( faq ) Board board) { <body> ${faq.title.jsp 32

34 @ModelAttribute 요청파라메터를객체형태로받기위해사용되는어노테이션 은메서드파라메터를요청파라메터에서 1:1 로받을경우 ) 검색조건과같은여러파라메터를객체형태로받거나 form submit 가붙은파라미터는따로 Model, ModelMap 에담지않아도뷰에서바로사용가능 컨트롤러가리턴하는모델에별도로 add 하지않아도 recipe public String regist(@modelattribute("recipe") Recipe recipe) { return "recipe" 33

35 @ModelAttribute 실습 목표 레시피목록조회, 등록기능구현 34

36 @ModelAttribute 실습 간단한실습모델 35

37 @ModelAttribute 실습 Recipe 클래스 package kr.or.kosta.spring.cookbook.recipe /** * 레시피를표현 */ public class Recipe { /** 시피명 */ private String name /** 재료 */ private String ingredients /** 조리법설명 */ private String description /** 기본생성자 */ public Recipe() { getters and setters 36

38 @ModelAttribute 실습 Chef 클래스 package kr.or.kosta.spring.cookbook import java.util.arraylist import java.util.list import kr.or.kosta.spring.cookbook.recipe.recipe public class Chef { private List<Recipe> recipes public Chef() { recipes = new ArrayList<>() /** * 전제레시피목록을가져온다. * 전체레시피목록 */ public List<Recipe> showallrecipes() { return this.recipes /** * 레시피생성 * recipe */ public void createrecipe(recipe recipe) { this.recipes.add(recipe) 37

39 @ModelAttribute 실습 레시피목록 JSP page contenttype="text/html charset=utf 8" pageencoding="utf 8"%> taglib uri=" prefix="c" %> page session="false" %> <c:set var="ctx" value="${pagecontext.request.contextpath" scope="request" /> <html> <head><title>recipe Home</title></head> <body> <h1> 레시피목록 </h1> <P> 레시피목록입니다.</P> <table border="1"> <thead> <tr> <th> 레시피명 </th> <th> 재료 </th> <th> 조리법 </th> </tr> </thead> <c:foreach var="recipe" items="${recipes"> <tbody> <tr> <td>${recipe.name</td> <td>${recipe.ingredients</td> <td><pre>${recipe.description</pre></td> </tr> </tbody> </c:foreach> </table> <br/> <input type="button" value=" 레시피등록 " onclick="javascript:location.href='${ctx/recipe/new' "> </body> </html> 38

40 @ModelAttribute 실습 레시피등록 JSP page contenttype="text/html charset=utf 8" pageencoding="utf 8"%> taglib uri=" prefix="c" %> page session="false" %> <c:set var="ctx" value="${pagecontext.request.contextpath" scope="request" /> <html> <head><title>recipe Home</title></head> <body> <h1> 레시피등록 </h1> <P> 레시피를만드세요.</P> <form action="${ctx/recipe" method="post"> <table border="1"> <tr> <td> 레시피명 </td> <td><input type="text" name="name"></td> </tr> <tr> <td> 재료 </td> <td><input type="text" name="ingredients"></td> </tr> <tr> <td> 조리법 </td> <td><textarea rows="10" cols="30" name="description"></textarea></td> </tr> </table> <input type="submit" value=" 레시피등록 " /> <input type="button" value=" 취소 " onclick="javascript:history.back( 1) "> </form> </body> </html> 39

41 View 에서커맨드객체에접근하기 커맨드객체 List 로받기 public class OrderCommand { private List<OrderItem> orderitems; public void setorderitems(list<orderitem> orderitems) { this.orderitems /hello.do ) public class HelloController public String hello(ordercommand command) { <form action= hello.do method= post > <input type= text name= orderitems[0].itemid /> <input type= text name= orderitems[0].number /> <input type= text name= orderitems[0].remark /> <br/> <input type= text name= orderitems[1].itemid /> <input type= text name= orderitems[1].number /> <input type= text name= orderitems[1].remark /> <br/> <input type= submit /> </form> 40

42 어노테이션을이용한파라메터매핑 public class HelloController /hello.do ) public String hello(@requestparam( name ) String age ) int age) { system.out.println(name); public class HelloController { /hello.do ) public String name, required=false) String age, defaultvalue= 0 ) int age) { system.out.println(name); system.out.println(age); 기본값 41

43 public class HelloController /hello.do ) public String hello(@cookievalue( auth ) String authvalue) public class HelloController /hello.do ) public String hello(@cookievalue(value= auth, required = false, defaultvalue= 0 ) String authvalue) public class HelloController /hello.do ) public String hello(@requestheader( Accept-Language ) String headerlanguage) { 42

44 HTTP 요청 Body가그대로객체에전달됨 XML이나 JSON 전문을사용하는경우유용함 AnnotationMethodHandlerAdapter에는 HttpMessageConverter (Converter) method=requestmethod.post) public void Recipe recipe) { chef.createrecipe(recipe) 43

45 컨트롤러메소드의파라메터타입 서블릿 API 직접사용 javax.servlet.http.httpservletrequest/javax.servlet.servletrequest javax.servlet.http.httpservletresponse/javax.servlet.servletresponse javax.servlet.http.httpsession HttpSession 의생성을직접제어해야하는경우 컨트롤러에서쿠키를생성해야하는경우 서블릿 API public class HelloController /hello.do ) public String hello(httpservletrequest request, HttpServletResponse response) { 44

46 로바인딩된객체를검증하는데사용 폼입력값검증 스프링은유효성검사를위한 Validator 인터페이스와검사결과를저장할 Errors 인터페이스제공 package kr.or.kosta.controller public interface Validator { boolean supports(class<?> clazz) // 해당클래스 validation 지원여부 void validate(object target, Errors errors) // 검증결과묹제가있는경우 error 객체에정보를저장 45

47 RecipeValidator.java 레시피입력값검사후통과하지못한경우페이지에검증오류메시지를보여주도록구현 package kr.or.kosta.validator import kr.or.kosta.spring.cookbook.recipe.recipe import org.springframework.validation.errors import org.springframework.validation.validator public class RecipeValidator implements Validator public boolean supports(class<?> clazz) { return public void validate(object target, Errors errors) { Recipe recipe = (Recipe) target if (recipe.getname() == null recipe.getname().length() == 0) { errors.reject("recipename", " 레시피이름은반드시입력되어야합니다.") <servlet context.xml> <beans:bean class="kr.or.kosta.validator.recipevalidator"/> //validator 스프링빈등록 46

48 RecipeController.java public RecipeValidator public String Recipe recipe, BindingResult bindingresult, Model model) { // validation 체크 this.recipevalidator.validate(recipe, bindingresult) if (bindingresult.haserrors()) { // validation 오류가있는경우 bindingresult 에서에러정보를가지고처리함 model.addattribute("errors", bindingresult) return "recipe/new" else { // validation 을통과한경우 chef.createrecipe(recipe) return "redirect:/recipe" 47

49 new.jsp page contenttype="text/html charset=utf 8" pageencoding="utf 8"%> taglib uri=" prefix="c" %> page session="false" %> <c:set var="ctx" value="${pagecontext.request.contextpath" scope="request" /> <html> <head><title>recipe Home</title></head> <body> <h1> 레시피등록 </h1> <P> 레시피를만드세요.</P> <form action="${ctx/recipe" method="post"> <table border="1"> <tr> <td> 레시피명 </td> <td><input type="text" name="name"></td> </tr> <tr> <td> 재료 </td> <td><input type="text" name="ingredients"></td> </tr> <tr> <td> 조리법 </td> <td><textarea rows="10" cols="30" name="description"></textarea></td> </tr> </table> <input type="submit" value=" 레시피등록 " /> <input type="button" value=" 취소 " onclick="javascript:history.back( 1) "> </form> <c:foreach var="error" items="${errors.allerrors"> ${error.defaultmessage <br/> </c:foreach> </body> </html> 48

50 결과 49

51 @Valid 를이용한자동검증 : 프레임워크가 validation : Validator public RecipeValidator public void initbinder(webdatabinder databinder) { public String Recipe recipe, BindingResult bindingresult, Model model){ if (bindingresult.haserrors()) { // validation 오류가있는경우 bindingresult 에서에러정보를가지고처리함 model.addattribute("errors", bindingresult) return "recipe/new" else { // validation 을통과한경우 chef.createrecipe(recipe) return "redirect:/recipe" 50

52 컨트롤러메소드의리턴타입 컨트롤러메서드의리턴타입종류 리턴타입 설명 ModelAndView 뷰정보및모델정보를담고있는 ModelAndView 객체 Model Map String 뷰이름을리턴한다. 뷰에전달할객체정보를담고있는 Model 을리턴한다. 이때뷰이름은요청 URL 로부터결정된다.(RequestToViewNameTranslator) 뷰에전달할객체정보를담고있는 Map 을리턴한다. 이때뷰이름은요청 URL 로부터결정된다.(RequestToViewNameTranslator) View View 객체를직접리턴, 해당 View 객체를이용해서뷰를생성한다. void 메서드가 ServletResponse 나 HttpServelResponse 타입의파라미터를갖는경우메서드가직접응답을처리한다고가정한다. 그렇지않을경우요청 URL 로부터결정된뷰를보여준다. 어노테이션적용 어노테이션이적용된경우, 리턴객체를 HTTP 응답으로전송한다. HttpMessageConverter 를이용해서객체를 HTTP 응답스트림으로변환한다. 51

53 2. Spring MVC 활용 애노테이션기반 2.3 HTML 폼과커맨드객체 2.4 View 2.5 Model 2.6 요청 URI 2.8 인터셉터 2.9 예외처리 View 지정 명시적 View 지정 자동 View 지정 리다이렉트 View

54 View 지정 컨트롤러에서는처리결과를보여줄 View 이름이나객체를리턴하고, DispatcherServlet 은해당정보를통해뷰를생성 명시적지정 자동지정 53

55 명시적 View 지정 View 이름명시적지정 ModelAndView 와 String public class HelloController /hello.do ) public ModelAndView hello() { ModelAndView mav = new ModelAndView( hello ); return public class HelloController /hello.do ) public ModelAndView hello() { ModelAndView mav = new ModelAndView(); mav.setviewname( hello public class HelloController /hello.do ) public String hello() { return hello ; 54

56 자동 View 지정 View 자동지정 RequestToViewNameTranslator를이용하여 URL로부터 View이름을결정한다. 리턴타입이 Model이나 Map인경우 리턴타입이 void 이면서 ServletResponse나 HttpServletResponse public class HelloController { hello /hello.do ) public Map<String, Object> hello() { HashMap<String, Object> model = new HashMap<String, Object>(); return model; 55

57 리다이렉트 View 리다이렉트뷰 View 이름에 redirect: 접두어를붙이면, 지정한페이지로리다이렉트된다. redirect:/product/productlist.do redirect: // 레시피를등록하고전체목록조회 view public String Recipe recipe) { chef.createrecipe(recipe) return "redirect:/recipe" 56

58 2. Spring MVC 활용 애노테이션기반 2.3 HTML 폼과커맨드객체 2.4 View 2.5 Model 2.6 요청 URI 2.8 인터셉터 2.9 예외처리 Model 생성 Model 인터페이스

59 Model 생성 (1/2) 어노테이션이적용된메서드의 Map, Model, 메서드가리턴하는 어노테이션이적용된메서드가리턴한객체 58

60 Model 생성 (2/2) Map, Model, ModelMap 을통한설정 public class HelloController /hello.do ) public String hello(map model) { model.addattribute(, public class HelloController /hello.do ) public String hello(model model) { 59

61 Model 인터페이스 Model 인터페이스 Model addattribute(string name, Object value) Model addattribute(object value) Model addallattributes(collection<?> values) Model addallattributes(map<string,?> attributes) Model mergeattributes(map<string,?> attributes) boolean containsattribute(string name) 60

62 ModelAndView ModelAndView 를통한모델설정 컨트롤러에서처리결과를보여줄 View 와 View 에전달할값 ( 모델 ) 을저장하는용도로사용 setviewname( viewname ) addobject(string name, Object public class HelloController /hello.do ) public ModelAndView hello() { ModelAndView mav = new ModelAndView(); mav.setviewname( hello ); mav.addobject( message, 안녕하세요 ); return mav; 61

63 public class HelloController modelattrmessage") public String getmodelattrmessage() { return "bye bye..." </html> <body> ${message ${modelattrmessage </body> public String sayhello(model model) { model.addattribute("message", " 안녕하세요 ~") return "hello" 62

64 2. Spring MVC 활용 애노테이션기반 2.3 HTML 폼과커맨드객체 2.4 View 2.5 Model 2.6 요청 URI 2.8 인터셉터 2.9

65 전체경로와서블릿기반경로매칭 (1/2) 전체경로와서블릿기반경로매칭 DispatcherServlet 은 DefaultAnnotationHandlerMapping 클래스를기본으로 HandlerMapping 구현체로사용 Default 로컨텍스트내의경로가아닌서블릿경로를제외한나머지경로에대해매핑 <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.do</url-pattern> <url-pattern>/game/*</url-pattern> /search/game.do /game/info ) 매칭안됨 64

66 전체경로와서블릿기반경로매칭 (2/2) 서블릿경로를포함한전체경로를이용해서매칭하려는경우 <bean class= org.springframework.web.servlet.mvc.annotation.defaultannotationhandlermapping p:alwaysusefullpath= true /> <bean class= org.springframework.web.servlet.mvc.annotation.annotationmethodhandlermapping p:alwaysusefullpath= true /> 65

67 어노테이션을이용한 URI 템플릿 RESTful 방식 어노테이션값으로 { 템플릿변수 어노테이션을이용해서 { 템플릿변수 Public class CharaterInfoController /game/users/{userid/characters/{characterid ) public String characterinfo(@pathvariable String int characterid, ModelMap model){ 66

68 어노테이션을클래스와메소드에함께적용하는경우 game/users/{userid ) Public class CharaterInfoController characters/{characterid ) public String characterinfo(@pathvariable String int characterid, ModelMap model){ Ant 스타일의 URI /members/*.do /game/*/items/{itemid ) 67

69 2. Spring MVC 활용 애노테이션기반 2.3 HTML 폼과커맨드객체 2.4 View 2.5 Model 2.6 요청 URI 2.8 인터셉터 2.9 예외처리

70 웹시스템간의 XML, JSON 형식의데이터를주고받는경우 XML, JSON Java Object (unmarshalling) Java Object XML, 어노테이션은 HTTP 메시지 Body 에 Java 객체를 XML 이나 JSON 등의타입으로변환하여담고, 역으로변환하는데사용 69

71 HttpMessageConverter 를이용한변환처리 주요 HttpMessageConverter 구현클래스 구현클래스 ByteArrayHttpMessageConverter (*) 설명 HTTP 메시지와 byte 배열사이의변환을처리. 컨텐츠타입은 application/octet-stream StringHttpMessageConverter (*) FormHttpMessageConverter (*) SourceHttpMessageConverter (*) MarshallingHttpMessageConverter MappingJacksonHttpMessageConverter HTTP 메시지와 String 사이의변환을처리한다. 컨텐츠타입은 text/plain:charset=iso HTML 폼데이터를 MultiValueMap 으로전달받을때사용컨텐츠타입은 application/x-wwwform-urlencoded HTTP 메시지와 javax.xml.transform.source 사이의변환을처리. 컨텐츠타입은 application/xml 또는 text/xml 스프링의 Marshaller 와 Unmarshaller 를이용해서 XML HTTP 메시지와객체사이의변환을처리한다. application/xml 또는 text/xml Jackson 라이브러리를이용해서 JSON HTTP 메시지와객체사이의변환을처리한다. 컨텐츠타입은 application/json AnnotationMethodHandlerAdapter 는 (*) 표시된클래스를기본적으로사용 70

72 Content Type 과 Accept 가 HttpMessageConverter 어노테이션이적용된자바객체로변환할때에는 HTTP 요청헤더의 Content Type 헤더에명시된미디어타입 (MIME) 을지원하는 HttpMessageConverter 어노테이션을이용해서리턴하는객체를 HTTP 메시지의 body 로변환할때에는 HTTP 요청헤더의 Accept 헤더에명시된미디어타입을지원하는 HttpMessageConverter 구현체를선택한다. <script type= > xmlhttp.open( GET, json.do, true); xmlhttp.setrequestheader( Content-Type, application/x-www-form-rulencoded ); xmlhttp.setrequestheader( Accept, application/json ); xmlhttp.send(); json 타입의 response를 Accept함 guestmessage/json.do, method=requestmethod.get, headers = accept=application/json public GuestMessageList listjson() { 71

73 @ResponseBody 실습 전체레시피목록을 JSON 문자열로리턴하도록처리 72

74 @ResponseBody 실습 produces={mediatype.application_json_value) List<Recipe> jsonlist() { List<Recipe> recipes = chef.showallrecipes() return 리턴하는객체가 HTTP 응답본문으로변환될것이라고설정 produces={mediatype.application_json_value 응답 MediaType 명시적지정 ( 여러개지정가능함 ) 생략하면변환가증한형태로디폴트로동작함 73

75 2. Spring MVC 활용 애노테이션기반 2.3 HTML 폼과커맨드객체 2.4 View 2.5 Model 2.6 요청 URI 2.8 인터셉터 2.9 예외처리 HandlerInterceptor 를통한요청가로채기 인터셉터호출순서지정 인터셉터 URL 패턴정의

76 HandlerInterceptor 를통한요청가로채기 컨트롤러가요청을처리하기전 / 후처리 로깅, 모니터링정보수집, 접근제어처리등의실제비즈니스로직과는분리되어처리해야하는기능들을넣고싶을때유용함 인터셉터를여러개껴놓을수있음 ( 순서주의!!) HandlerInterceptor 제공메서드 boolean prehandle(httpservletrequest request, HttpServletResponse response, Object handler) - false 를리턴하면 request 를바로종료한다. void posthandle(httpservletrequest request, HttpServletResponse response, Object handler, ModelAndView modelandview) - 컨트롤러수행후호출 void aftercompletion(httpservletrequest request, HttpServletResponse response, Object handler, Exception ex) - 뷰를통해클라이언트에응답을전송한뒤에실행 - 예외가발생하여도실행 75

77 HandlerInterceptor 를통한요청가로채기 HandlerInterceptor 인터페이스구현 HandlerInterceptorAdaptor 클래스제공 LoggingInterceptor.java package kr.or.kosta.interceptor import javax.servlet.http.httpservletrequest import javax.servlet.http.httpservletresponse import org.springframework.web.servlet.handlerinterceptor import org.springframework.web.servlet.modelandview public class LoggingInterceptor implements HandlerInterceptor public boolean prehandle(httpservletrequest request,httpservletresponse response, Object handler) throws Exception { System.out.println("intercept!! prehandle") return public void posthandle(httpservletrequest request,httpservletresponse response, Object handler,modelandview modelandview) throws Exception { System.out.println("intercept!! public void aftercompletion(httpservletrequest request,httpservletresponse response, Object handler, Exception ex) throws Exception { System.out.println("intercept!! aftercompletion") 76

78 HandlerInterceptor 를통한요청가로채기 인터셉터등록 : servlet context.xml <interceptors> <beans:bean class="kr.or.kosta.interceptor.logginginterceptor" /> </interceptors> 컨트롤러메소드전 / 후 / 응답완료후호출됨을확인 77

79 HandlerInterceptor 를통한요청가로채기 AnotherInterceptor.java 인터셉터추가 package kr.or.kosta.interceptor import javax.servlet.http.httpservletrequest import javax.servlet.http.httpservletresponse import org.springframework.web.servlet.handlerinterceptor import org.springframework.web.servlet.modelandview public class AnotherInterceptor implements HandlerInterceptor public boolean prehandle(httpservletrequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("another intercept!! prehandle") return public void posthandle(httpservletrequest request, HttpServletResponse response, Object handler, ModelAndView modelandview) throws Exception { System.out.println("another intercept!! public void aftercompletion(httpservletrequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("another intercept!! aftercompletion") 78

80 HandlerInterceptor 를통한요청가로채기 인터셉터등록 : servlet context.xml <interceptors> <beans:bean class="kr.or.kosta.interceptor.logginginterceptor" /> <beans:bean class="kr.or.kosta.interceptor.anotherinterceptor" /> </interceptors> 인터셉터 2 개등록수행결과 순서확인 79

81 인터셉터호출순서정리 인터셉터등록 : servlet context.xml <interceptors> <beans:bean class= AInterceptor /> <beans:bean class= BInterceptor /> <beans:bean class= CInterceptor /> </interceptors> 80

82 인터셉터 URL 패턴지정 인터셉터등록 : servlet context.xml <interceptors> <interceptor> <mapping path="/recipe*"/> <beans:bean class="kr.or.kosta.interceptor.logginginterceptor" /> </interceptor> <beans:bean class="kr.or.kosta.interceptor.anotherinterceptor" /> </interceptors> 81

83 2. Spring MVC 활용 애노테이션기반 2.3 HTML 폼과커맨드객체 2.4 View 2.5 Model 2.6 요청 URI 2.8 인터셉터 2.9 예외처리 에러페이지 SimpleMappingExceptionHandler

84 메서드는모든타입의예외를발생시킬수있음. 웹브라우저에는 500 응답코드와서블릿컨테이너가출력한에러페이지출력 SpringMVC 를이용해서원하는에러페이지를보여주고싶다면 SpringMVC 가제공하는 HandlerExceptionResolver 인터페이스를사용한다. SpringMVC 가제공하는 HandlerExceptionResolver 인터페이스의구현체는 - AnnotationMethodHandlerExceptionResolver 어노테이션이적용된메서드를이용 - DefaultHandlerExceptionResolver : 스프링관련예외타입처리 - SimpleMappingExceptionResolver : 예외타입별로뷰이름을지정 - ResponseStatusExceptionResolver : 예외를특정 HTTP 응답상태코드로전환하여다순한 500 에러가아닌의미있는 HTTP 응답상태를리턴하는방법 83

85 어노테이션을이용한예외처리 파라메터로받을수있는타입 - HttpServletRequest, HttpServletResponse, HttpSession - Locale, InputStream/Reader, OutputStream/Writer - 예외타입 리턴타입 - ModelAndView, Model, Map, View, String, public class MyController /user/{userid ) public ModelAndView getuser(@pathvariable String userid) public String handlenullpointerexception(nullpointerexception e) { return error/nullexception ; 84

86 에러페이지 error.jsp page contenttype="text/html charset=utf 8" pageencoding="utf 8"%> <html> <head> <title>error Page</title> </head> <body> <h1> Error!! </h1> <P> ${errormessage </P> </body> </html> 85

87 SimpleMappingExceptionResolver SimpleMappingExeceptionResolver 를이용한예외처리 예외타입별로에러페이지를지정할수있음 <beans:bean class="org.springframework.web.servlet.handler.simplemappingexceptionresolver"> <beans:property name="exceptionmappings"> <beans:props> <beans:prop key="java.lang.nullpointerexception">nullerror</beans:prop> <beans:prop key="java.lang.exception">error</beans:prop> </beans:props> </beans:property> </beans:bean> 86

88 토의 질의응답 토론 넥스트리소프트 ( 주 ) 김현오선임 (hyunohkim@nextree.co.kr) 87

Web Service Computing

Web Service Computing Spring MVC 2015 Web Service Computing Request & Response HTTP(Hyper-Text Transfer Protocol) 웹서버가하는일은요청 (Request) 과응답 (Response) 의연속이다. 1) 브라우저에 www.google.co.kr 을입력한다면 2) 구글서버에페이지를요청하는것이고 3) 화면이잘나타난다면구글서버가응답을한것이다.

More information

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r Jakarta is a Project of the Apache

More information

<4D F736F F F696E74202D20C1A632C8B8C7D1B1B9BDBAC7C1B8B5BBE7BFEBC0DAB8F0C0D32D496E E D56432E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A632C8B8C7D1B1B9BDBAC7C1B8B5BBE7BFEBC0DAB8F0C0D32D496E E D56432E BC8A3C8AF20B8F0B5E55D> Inside Spring Web MVC 안영회 ahnyounghoe@gmail.com 차례 MVC 개요와오해 Spring Web MVC 개요 Demo 로이해하는 Spring Web MVC 대표적인컨트롤러활용 정리 한국 스프링 사용자 모임 MVC 개요와 오해 한국 스프링 사용자 모임 MVC 개요 MVC 에대한오해 컨트롤러는서블릿이다! 컨트롤러는액션이다! 비즈니스로직은컨트롤러다!

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가 혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가웹페이지내에뒤섞여있어서웹페이지의화면설계가점점어려워진다. - 서블릿이먼저등장하였으나, 자바내에

More information

Spring @MVC 어노테이션 @RequestParam, @RequestHeader, @Cookie, @RequestBody, @ResponseBody, @ModelAttribute, @SessionAttribute, @ExceptionHandler,@ControllerAdvice, FlashMap, RedirectAttributes, @XmlRootElement,

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

KYO_SCCD.PDF

KYO_SCCD.PDF 1. Servlets. 5 1 Servlet Model. 5 1.1 Http Method : HttpServlet abstract class. 5 1.2 Http Method. 5 1.3 Parameter, Header. 5 1.4 Response 6 1.5 Redirect 6 1.6 Three Web Scopes : Request, Session, Context

More information

04장

04장 20..29 1: PM ` 199 ntech4 C9600 2400DPI 175LPI T CHAPTER 4 20..29 1: PM ` 200 ntech4 C9600 2400DPI 175LPI T CHAPTER 4.1 JSP (Comment) HTML JSP 3 home index jsp HTML JSP 15 16 17 18 19 20

More information

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D> 10 장. 에러처리 1. page 지시문을활용한에러처리 page 지시문의 errorpage 와 iserrorpage 속성 errorpage 속성 이속성이지정된 JSP 페이지내에서 Exception이발생하는경우새롭게실행할페이지를지정하기위하여사용 iserrorpage 속성 iserrorpage 는위와같은방법으로새롭게실행되는페이지에지정할속성으로현재페이지가 Exception

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

14-Servlet

14-Servlet JAVA Programming Language Servlet (GenericServlet) HTTP (HttpServlet) 2 (1)? CGI 3 (2) http://jakarta.apache.org JSDK(Java Servlet Development Kit) 4 (3) CGI CGI(Common Gateway Interface) /,,, Client Server

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 한국성서대학교컴퓨터소프트웨어학과 BoostCourse (Full-Stack Developer) 김석래 예약서비스 기본제공페이지 Spring Framework 시스템설정 (pom.xml) Pom.xml Spring DB Servlet JSON 아직확실히필요한지알수없음 dbcp MySQL DTO DTO DAO Controller Service View Config

More information

Comparing Open-Source Web Frameworks

Comparing Open-Source Web Frameworks 스프링 3.2 이일민 Epril toby.epril.com 1 2 스프링 3.2 2012년 12월 3.x의마지막업그레이드 주로 Spring@MVC 3 ibatis / mybatis package org.springframework.orm.ibatis.support; @Deprecated public abstract class SqlMapClientDaoSupport

More information

<property name="configlocation" value="classpath:/egovframework/sqlmap/example/sql-map-config.xml"/> <property name="datasource" ref="datasource2"/> *

<property name=configlocation value=classpath:/egovframework/sqlmap/example/sql-map-config.xml/> <property name=datasource ref=datasource2/> * 표준프레임워크로구성된컨텐츠를솔루션에적용 1. sample( 게시판 ) 프로젝트생성 - egovframe Web Project next generate example finish 2. 프로젝트추가 - 프로젝트 Import 3. 프로젝트에 sample 프로젝트의컨텐츠를추가, 기능동작확인 ⓵ sample 프로젝트에서 프로젝트로복사 sample > egovframework

More information

신림프로그래머_클린코드.key

신림프로그래머_클린코드.key CLEAN CODE 6 11st Front Dev. Team 6 1. 2. 3. checked exception 4. 5. 6. 11 : 2 4 : java (50%), javascript (35%), SQL/PL-SQL (15%) : Spring, ibatis, Oracle, jquery ? , (, ) ( ) 클린코드를 무시한다면 . 6 1. ,,,!

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

Spring

Spring Spring MVC 프로젝트생성 2015 Web Service Computing 일반적인스프링의정의 스프링의정의 자바엔터프라이즈개발을편하게해주는오픈소스경량급애플리케이션프레임워크 스프링의기원 로드존슨 (Rod Johnson) 이라는유명 J2EE 개발자가출간한 Expert One-on- One J2EE Design and Development 이라는제목의책에소개된예제샘플

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일 Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae

More information

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage

More information

Data Provisioning Services for mobile clients

Data Provisioning Services for mobile clients 4 장. JSP 의구성요소와스크립팅요소 제 4 장 스크립팅요소 (Scripting Element) 1) 지시문 (Directive) 1. JSP 구성요소소개 JSP 엔진및컨테이너, 즉 Tomcat 에게현재의 JSP 페이지처리와관련된정보를전달하는목적으로활용 (6 장 )

More information

Spring Boot

Spring Boot 스프링부트 (Spring Boot) 1. 스프링부트 (Spring Boot)... 2 1-1. Spring Boot 소개... 2 1-2. Spring Boot & Maven... 2 1-3. Spring Boot & Gradle... 3 1-4. Writing the code(spring Boot main)... 4 1-5. Writing the code(commandlinerunner)...

More information

뇌를 자극하는 JSP & Servlet 슬라이드

뇌를 자극하는 JSP & Servlet 슬라이드 속성 & 리스너 JSP & Servlet 2/39 Contents 학습목표 클라이언트요청에의해서블릿이실행될때에컨테이너에의해제공되는내장객체의종류와역할, 그리고접근범위특성등을알아본다. 웹컴포넌트사이의데이터전달을위한내장객체에서의속성설정과이에따른이벤트처리방법에대해알아본다. 내용 서블릿의초기화환경을표현하는 ServletConfig 객체 웹애플리케이션의실행환경을표현하는

More information

JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른

JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른 JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른 URL로바꿀수있다. 예 ) response.sendredirect("http://www.paran.com");

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

본 강의에 들어가기 전

본 강의에 들어가기 전 웹서버프로그래밍 2 JSP 개요 01. JSP 개요 (1) 서블릿 (Servlet) 과 JSP(Java Server Page) 서블릿은자바를이용한서버프로그래밍기술 초기웹프로그래밍기술인 CGI(Common Gateway Interface) 를대체하기위해개발되었으나, 느린처리속도, 많은메모리요구, 불편한화면제어등의한계로 PHP, ASP 등서버스크립트언어등장 JSP

More information

슬라이드 1

슬라이드 1 전자정부개발프레임워크실행환경 2009 년 6 월 - 1 - 1. 개요 2. MVC 3. Internationalization 4. Ajax Support 5. Security 6. UI Adaptor - 2 - 1. 개요 - 실행환경화면처리레이어 (1/3) 화면처리레이어는업무프로그램과사용자간의 Interface 를담당하는 Layer 로서, 사용자화면구 성,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 인터페이스 배효철 th1g@nate.com 1 목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2 인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

Microsoft PowerPoint - aj-lecture7.ppt [호환 모드]

Microsoft PowerPoint - aj-lecture7.ppt [호환 모드] Servlet 이해하기 웹 MVC 524730-1 2019 년봄학기 4/29/2019 박경신 Servlet 자바플랫폼에서컴포넌트기반의웹애플리케이션개발기술 JSP는서블릿기술에기반함 Servlet의프리젠테이션문제를해결하기위해 JSP가등장 이로인해웹애플리케이션의유지보수어려움심각. JSP 모델2가주목받으며다시서블릿에대한중요성부각 Servlet 변천 1 서블릿문제점대두

More information

소개 이음 이라는스타트업에서일하는, 올해로 4 년차인자바개발자

소개 이음 이라는스타트업에서일하는, 올해로 4 년차인자바개발자 RESTful API (including Mobile) with Spring 3.1 윤성준 (@exnis) 소개 이음 이라는스타트업에서일하는, 올해로 4 년차인자바개발자 들어가기앞서 RESTful 의 R 도모르고 API 의 A 도모르던한개발자가 RESTful API 를만들기위해고민하고삽질한과정공유함으로써, RESTful 이무엇인지, 이를스프링에서어떻게구현할수있는지간략하게나마알아볼수있는시간이되었으면..

More information

슬라이드 1

슬라이드 1 - 1 - 전자정부개발프레임워크실행환경 1. 개요 2. MVC 3. Internationalization 4. Ajax Support 5. Security 6. UI Adaptor - 2 - 1. 개요 - 실행홖경화면처리레이어 (1/3) 화면처리레이어는업무프로그램과사용자간의 Interface 를담당하는 Layer 로서, 사용자화면 구성, 사용자입력정보검증등의기능을제공함

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드] - Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1 소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소

More information

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx 과목명: 웹프로그래밍응용 교재: 모던웹을 위한 JavaScript Jquery 입문, 한빛미디어 Part3. Ajax Ch19. node.js 기본 2014년 1학기 Professor Seung-Hoon Choi 19 node.js 기본 이 책에서는 서버 구현 시 node.js 를 사용함 자바스크립트로 서버를 개발 다른서버구현기술 ASP.NET, ASP.NET

More information

슬라이드 1

슬라이드 1 7. [ 실습 ] 예제어플리케이션개발 1. 실습개요 2. 프로젝트환경구성 3. 기본환경설정 4. 예제어플리케이션개발 5. 참조 - 539 - 1. 실습개요 (1/4) 7. [ 실습 ] 예제어플리케이션개발 스프링기반의 EGOV 프레임워크를사용하여구현된예제어플리케이션구현을통하여 Presentation Layer와 Business Layer의연계를살펴본다. 예제어플리케이션구현기능

More information

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 03-TCP Programming.ppt Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):

More information

<param-value> 파라미터의값 </param-value> </init-param> </servlet> <servlet-mapping> <url-pattern>/ 매핑문자열 </url-pattern> </servlet-mapping> - 위의예에서 ServletC

<param-value> 파라미터의값 </param-value> </init-param> </servlet> <servlet-mapping> <url-pattern>/ 매핑문자열 </url-pattern> </servlet-mapping> - 위의예에서 ServletC 내장객체의정리 헷갈리는내장객체들정리하기 - 컨테이너안에서는수많은객체들이스스로의존재목적에따라서일을한다. - ServletContext, ServletConfig 객체는컨텍스트초기화와서블릿초기화정보를가지고있다. - 이외에도다음의객체들이서블릿과 JSP와 EL에서각각의역할을수행한다. 서블릿의객체 JspWriter HttpServletRequest HttpServletResponse

More information

ibmdw_rest_v1.0.ppt

ibmdw_rest_v1.0.ppt REST in Enterprise 박찬욱 1-1- MISSING PIECE OF ENTERPRISE Table of Contents 1. 2. REST 3. REST 4. REST 5. 2-2 - Wise chanwook.tistory.com / cwpark@itwise.co.kr / chanwook.god@gmail.com ARM WOA S&C AP ENI

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

2장 변수와 프로시저 작성하기

2장  변수와 프로시저 작성하기 Chapter. RequestDispatcher 활용 요청재지정이란? RequestDispatcher 활용 요청재지정구현예제 Chapter.9 : RequestDispatcher 활용 1. 요청재지정이란? 클라이언트로부터요청받은 Servlet 프로그램이응답을하지않고다른자원에수행흐름을넘겨다른자원의처리결과를대신응답하는것또는다른자원의수행결과를포함하여응답하는것을요청재지정이라고한다.

More information

뇌를 자극하는 JSP & Servlet 슬라이드

뇌를 자극하는 JSP & Servlet 슬라이드 서블릿의라이프사이클 JSP & Servlet 2/39 Contents 학습목표 서블릿클래스로부터서블릿객체가만들어지고, 서블릿객체가초기화되어서서블릿이되고, 서블릿이사용되고, 최종적으로소멸되기까지의전과정을서블릿의라이프사이클이라고한다. 이장에서는서브릿의라이프사이클에관련된프로그래밍기술을배워보자. 내용 서블릿의라이프사이클 서블릿클래스의 init 메서드의 destroy

More information

중간고사

중간고사 중간고사 담당교수 : 단국대학교응용컴퓨터공학박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호 (4자리숫자 ) 를기입하면성적공고시학번대신암호를사용할것임. 1. JSP 란무엇인가? 간단히설명하라.

More information

교육자료

교육자료 THE SYS4U DODUMENT Java Reflection & Introspection 2012.08.21 김진아사원 2012 SYS4U I&C All rights reserved. 목차 I. 개념 1. Reflection 이란? 2. Introspection 이란? 3. Reflection 과 Introspection 의차이점 II. 실제사용예 1. Instance의생성

More information

Network Programming

Network Programming Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI

More information

파워포인트 템플릿

파워포인트 템플릿 ibizsoftware 정호열차장 ( 표준프레임워크오픈커뮤니티커미터 ) Agenda 1. ibatis 와 Hibernate 의개념및특징 2. Hibernate 와 JPA 쿼리종류 3. ibatis 와 Hibernate 동시사용을위한 Transaction 처리방안 4. @EntityListeners 활용방법 Agenda 5. Hibernate 사용시 Dynamic

More information

C H A P T E R 2

C H A P T E R 2 C H A P T E R 2 Foundations of Ajax Chapter 2 1 32 var xmlhttp; function createxmlhttprequest() { if(window.activexobject) { xmlhttp = new ActiveXObject( Micr else if(window.xmlhttprequest) { xmlhttp =

More information

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

var answer = confirm( 확인이나취소를누르세요.); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write( 확인을눌렀습니다.); else { document.write( 취소를눌렀습니다.); 자바스크립트 (JavaScript) - HTML 은사용자에게인터페이스 (interface) 를제공하는언어 - 자바스크립트는서버로데이터를전송하지않고서할수있는데이터처리를수행한다. - 자바스크립트는 HTML 나 JSP 에서작성할수있고 ( 내부스크립트 ), 별도의파일로도작성이가능하다 ( 외 부스크립트 ). - 내부스크립트 - 외부스크립트

More information

JAVA Bean & Session - Cookie

JAVA Bean & Session - Cookie JAVA Bean & Session - Cookie [ 우주최강미남 ] 발표내용소개 자바빈 (Java Bean) 자바빈의개요 자바빈의설계규약 JSP 에서자바빈사용하기 자바빈의영역 세션과쿠키 (Session & Cookie) 쿠키의개요 쿠키설정 (HTTP 서블릿 API) 세션의개요 JSP 에서의세션관리 Java Bean Q. 웹사이트를개발한다는것과자바빈?? 웹사이트라는것은크게디자이너와프로그래머가함께개발합니다.

More information

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@OneToOne(cascade = = addr_id) private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a 1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345]) 예외와예외클래스 예외처리 514760-1 2016 년가을학기 12/08/2016 박경신 오류의종류 에러 (Error) 하드웨어의잘못된동작또는고장으로인한오류 에러가발생되면 JVM실행에문제가있으므로프로그램종료 정상실행상태로돌아갈수없음 예외 (Exception) 사용자의잘못된조작또는개발자의잘못된코딩으로인한오류 예외가발생되면프로그램종료 예외처리 추가하면정상실행상태로돌아갈수있음

More information

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인 표준프레임워크로구성된컨텐츠를솔루션에적용하는것에문제가없는지확인 ( S next -> generate example -> finish). 2. 표준프레임워크개발환경에솔루션프로젝트추가. ( File -> Import -> Existring Projects into

More information

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

JavaGeneralProgramming.PDF

JavaGeneralProgramming.PDF , Java General Programming from Yongwoo s Park 1 , Java General Programming from Yongwoo s Park 2 , Java General Programming from Yongwoo s Park 3 < 1> (Java) ( 95/98/NT,, ) API , Java General Programming

More information

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W Research & Technique Apache Tomcat RCE 취약점 (CVE-2019-0232) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE-2019-0232 취약점은 Windows 시스템의 Apache Tomcat 서버에서 enablecmdlinearguments

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

3장

3장 C H A P T E R 03 CHAPTER 03 03-01 03-01-01 Win m1 f1 e4 e5 e6 o8 Mac m1 f1 s1.2 o8 Linux m1 f1 k3 o8 AJAX

More information

Microsoft PowerPoint - 4강.pptx

Microsoft PowerPoint - 4강.pptx 컴퓨터과학과 김희천교수 학습개요 동적인컨텐츠를생성하는일에는 어떻게컨텐츠를생성할것인지 를지시해주기위한프로그래밍이어떤형태로든필요하다. JSP 기술은동적으로컨텐츠를생성하기위해, 프로그래밍코드가담긴스크립트를포함할수있게하고또한 HTML 태그를통해어려운자바코딩없이도자바객체를사용할수있게하고있다. JSP는 Java Server Pages의약자로최신버전은 2.1이며자바기반스크립트언어이며또한

More information

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1); void method() 2); void method1() public class Test 3); args) A 제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor

More information

Microsoft PowerPoint - 웹프로그래밍_ ppt [호환 모드]

Microsoft PowerPoint - 웹프로그래밍_ ppt [호환 모드] 목차 웹프로그래밍 내장객체의개요 내장객체의종류 11 주차 7 장 JSP 페이지의내장객체와영역 2 내장객체 (Implicit Object) JSP 페이지에서제공하는특수한레퍼런스타입의변수사용하고자하는변수와메소드에접근선언과객체생성없이사용할수있음 내장객체 내장객체 request response out session application pagecontext page

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

0. 들어가기 전

0. 들어가기 전 컴퓨터네트워크 14 장. 웹 (WWW) (3) - HTTP 1 이번시간의학습목표 HTTP 의요청 / 응답메시지의구조와동작원리이해 2 요청과응답 (1) HTTP (HyperText Transfer Protocol) 웹브라우저는 URL 을이용원하는자원표현 HTTP 메소드 (method) 를이용하여데이터를요청 (GET) 하거나, 회신 (POST) 요청과응답 요청

More information

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공 메신저의새로운혁신 채팅로봇 챗봇 (Chatbot) 입문하기 소 이 메 속 : 시엠아이코리아 름 : 임채문 일 : soulgx@naver.com 1 목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper

More information

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id=entitymanagerfactory class=org.springframework.orm.jpa.localentitymanagerfactorybean p:persistenceunitname= JPA 와 Hibernate - 스프링의 JDBC 대신에 JPA를이용한 DB 데이터검색작업 - JPA(Java Persistence API) 는자바의 O/R 매핑에대한표준지침이며, 이지침에따라설계된소프트웨어를 O/R 매핑프레임워크 라고한다. - O/R 매핑 : 객체지향개념인자바와관계개념인 DB 테이블간에상호대응을시켜준다. 즉, 객체지향언어의인스턴스와관계데이터베이스의레코드를상호대응시킨다.

More information

JAVA PROGRAMMING 실습 09. 예외처리

JAVA PROGRAMMING 실습 09. 예외처리 2015 학년도 2 학기 예외? 프로그램실행중에발생하는예기치않은사건 예외가발생하는경우 정수를 0으로나누는경우 배열의크기보다큰인덱스로배열의원소를접근하는경우 파일의마지막부분에서데이터를읽으려고하는경우 예외처리 프로그램에문제를발생시키지않고프로그램을실행할수있게적절한조치를취하는것 자바는예외처리기를이용하여예외처리를할수있는기법제공 자바는예외를객체로취급!! 나뉨수를입력하시오

More information

Spring Data JPA Many To Many 양방향 관계 예제

Spring Data JPA Many To Many 양방향 관계 예제 Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1

More information

Intro to Servlet, EJB, JSP, WS

Intro to Servlet, EJB, JSP, WS ! Introduction to J2EE (2) - EJB, Web Services J2EE iseminar.. 1544-3355 ( ) iseminar Chat. 1 Who Are We? Business Solutions Consultant Oracle Application Server 10g Business Solutions Consultant Oracle10g

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

슬라이드 1

슬라이드 1 1. 개요 - 실행환경화면처리레이어 (1/3) 화면처리레이어는업무프로그램과사용자간의 Interface 를담당하는 Layer 로서, 사용자화면 구성, 사용자입력정보검증등의기능제공 서비스그룹 설명 Presentation Layer 전자정부개발프레임워크실행환경 Business Logic Layer Persistence Layer Batch Layer Integration

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

public List<CommentDTO> commentlist(string seq) throws DataAccessException; // 게시글입력 public int insertboard(boarddto board) throws DataAccessException

public List<CommentDTO> commentlist(string seq) throws DataAccessException; // 게시글입력 public int insertboard(boarddto board) throws DataAccessException Spring 게시판구현 1 차버젂최종본 오라클자바커뮤니티에서설립한오엔제이프로그래밍실무교육센터 ( 오라클 SQL, 튜닝, 힌트, 자바프레임워크, 안드로이드, 아이폰, 닷넷실무전문강의 ) www.onjprogramming.co.kr 1. 구현된기능 - 게시판리스트보기 + 게시물본문내용미리보기 + 게시글상세보기 + 커멘트 ( 댓글 ) 기 능 + 글쓰기 + 글수정하기

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

어댑터뷰

어댑터뷰 04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결

More information

MVVM 패턴의 이해

MVVM 패턴의 이해 Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어

More information

07 자바의 다양한 클래스.key

07 자바의 다양한 클래스.key [ 07 ] . java.lang Object, Math, String, StringBuffer Byte, Short, Integer, Long, Float, Double, Boolean, Character. java.util Random, StringTokenizer Calendar, GregorianCalendar, Date. Collection, List,

More information

Spring 3의 JSR 303 지원

Spring 3의 JSR 303 지원 Spring 3 의 JSR 303(Bean Validation) 지원 - 귀찮은확인, 쉽고편하게하자!- 2010. 9. 11 KSUG 안세원 kingori@gmail.com 목차 JSR 303 (Bean Validation) 소개 JSR 303 개요 JSR 303 주요구성요소 Spring 3 의 JSR 303 지원 Spring 3 의 JSR 303 활용 Spring

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

Microsoft PowerPoint - 2강

Microsoft PowerPoint - 2강 컴퓨터과학과 김희천교수 학습개요 Java 언어문법의기본사항, 자료형, 변수와상수선언및사용법, 각종연산자사용법, if/switch 등과같은제어문사용법등에대해설명한다. 또한 C++ 언어와선언 / 사용방법이다른 Java의배열선언및사용법에대해서설명한다. Java 언어의효과적인활용을위해서는기본문법을이해하는것이중요하다. 객체지향의기본개념에대해알아보고 Java에서어떻게객체지향적요소를적용하고있는지살펴본다.

More information

내장서버로사용. spring-boot-starter-data-jpa : Spring Data JPA 사용을위한설정 spring-boot-devtools : 개발자도구를제공, 이도구는응용프로그램개발모드에서유 용한데코드가변경된경우서버를자동으로다시시작하는일들을한다. spri

내장서버로사용. spring-boot-starter-data-jpa : Spring Data JPA 사용을위한설정 spring-boot-devtools : 개발자도구를제공, 이도구는응용프로그램개발모드에서유 용한데코드가변경된경우서버를자동으로다시시작하는일들을한다. spri 6-20-4. Spring Boot REST CRUD 실습 (JPA, MariaDB) GitHub : https://github.com/leejongcheol/springbootrest 스프링부트에서 REST(REpresentational State Transfer) API 를실습해보자. RESTful 웹서비스는 JSON, XML 및기타미디어유형을생성하고활용할수있다.

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

MasoJava4_Dongbin.PDF

MasoJava4_Dongbin.PDF JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: MasoJava4_Dongbindoc Revision number: Issued by: < > SI, dbin@handysoftcokr

More information

PHP & ASP

PHP & ASP 단어장프로젝트 프로젝트2 단어장 select * from address where address like '% 경기도 %' td,li,input{font-size:9pt}

More information

Microsoft Word - Ch 17. Web Application with Spring MVC.doc

Microsoft Word - Ch 17. Web Application with Spring MVC.doc Chapter 17. Web Applications with Spring MVC * 개요 1. MVC구조 : model1 과 model2 를포함한 MVC구조에대해서언급한다. 2. Spring MVC : MVC구조의컴포넌트를 Spring웹애플리케이션내에서구현하는방법에대해언급한다. 3. controller : 컨트롤러를 Spring내에서구현하는방법과특정요청을다루는컨트롤러를구분하는방법을언급한다.

More information

Data Provisioning Services for mobile clients

Data Provisioning Services for mobile clients 11 장. 세션과쿠키 세션의원리 세션의기본개념 1. 세션의활용 접속중인웹브라우저각각에대응하여서로다른세션이생성되고활용 2/35 1. 세션의활용 세션의원리 세션의생성시점과종료시점 session 생성시기임의의웹브라우저부터의첫번째요청을처리할때 session이생성되고관련타이머가동작한다. session 소멸시기 1) 세션타이머가만료 2) 코드상에서명시적으로세션소멸 한명의브라우저사용자에대해지속적으로관리해야하는데이터저장장소로서세션을활용

More information

Design Issues

Design Issues 11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance

More information

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드] GUI 설계 6 주차 DB 연동김문정 tops@yd.ac.kr 강의순서강의전환경 JDK 설치및환경설정톰캣설치및환경설정이클립스 (JEE) 설치및환경설정 MySQL( 드라이버 ) 설치및커넥터드라이브연결 DB 생성 - 계정생성이클립스에서 DB에연결서버생성 - 프로젝트생성 DB연결테이블생성및등록 2 MySQL 설치확인 mysql - u root -p MySQL 에데이터베이스추가

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성

More information

(jpetstore \277\271\301\246\267\316 \273\354\306\354\272\270\264\302 Spring MVC\277\315 iBatis \277\254\265\277 - Confluence)

(jpetstore \277\271\301\246\267\316 \273\354\306\354\272\270\264\302 Spring MVC\277\315 iBatis \277\254\265\277 - Confluence) 8 중 1 2008-01-31 오전 12:08 오픈소스스터디 jpetstore 예제로살펴보는 Spring MVC와 ibatis 연동 Added by Sang Hyup Lee, last edited by Sang Hyup Lee on 1월 16, 2007 (view change) Labels: (None) 지금까지 Spring MVC 를셋팅하는과정에서부터하나의

More information

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V Mobile Service > IAP > Android SDK IAP SDK TOAST SDK. IAP SDK. Android Studio IDE 2.3.3 Android SDK Version 2.3.3 (API Level 10). Name Reference Version License okhttp http://square.github.io/okhttp/ 1.5.4

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리

More information