슬라이드 1

Size: px
Start display at page:

Download "슬라이드 1"

Transcription

1

2

3

4 1. 개요 - 실행환경화면처리레이어 (1/3) 화면처리레이어는업무프로그램과사용자간의 Interface 를담당하는 Layer 로서, 사용자화면 구성, 사용자입력정보검증등의기능제공 서비스그룹 설명 Presentation Layer 전자정부개발프레임워크실행환경 Business Logic Layer Persistence Layer Batch Layer Integration Layer Mobile Presentation Layer Layer Mobile Device API Presentation Layer Business Logic Layer Persistence Layer 업무프로그램과사용자간의 Interface 를담당하는 Layer 로서, 사용자화면구성, 사용자입력정보검증등의기능을제공함 업무프로그램의업무로직을담당하는 Layer 로서, 업무흐름제어, 에러처리등의기능을제공함 데이터베이스에대한연결및영속성처리, 선언적인트랜잭션관리를제공하는 Layer 임 Batch Layer 대용량데이터처리를위한기반환경을제공하는 Layer 임 Foundation Layer ( 공통기반레이어 ) Integration Layer 타시스템과의연동기능을제공하는 Layer 임 환경 서비스그룹 Foundation Layer 실행환경의각 Layer 에서공통적으로사용하는공통기능을제공함 Page l 4 4

5 1. 개요 - 실행환경화면처리레이어 (2/3) 화면처리레이어는 MVC, Ajax Support 등총 5 개의서비스를제공함 실행환경 화면처리레이어 업무처리레이어 데이터처리레이어 배치처리레이어 연계통합레이어 모바일화면처리 모바일디바이스 API Ajax Support MVC UI Adaptor Internationalization Validation Biz. Process Management Exception Handling Data Access ORM Transaction DataSource Batch Core Batch Support Batch Execution Message Service Naming Service Web Service UX/UI Component Device API 공통기반레이어 AOP Cache Compress/Decompress Encryption/Decryption Excel File Handling File Upload/Download FTP ID Generation IoC Container Logging Mail Marshalling/Unmarshalling Object Pooling Property Resource Scheduling Server Security String Util XML Manipulation 공통기반레이어살펴보기 Page l 5 5

6

7 2. MVC - 개요 (1/2) 서비스개요 MVC(Model-View-Controller) 패턴은코드를기능에따라 Model, View, Controller 3가지요소로분리한다. Model : 어플리케이션의데이터와비지니스로직을담는객체이다. View : Model의정보를사용자에게표시한다. 하나의 Model을다양한 View에서사용할수있다. Controller : Model과 View의중계역할. 사용자의요청을받아 Model에변경된상태를반영하고, 응답을위한 View를선택한다. MVC 패턴은 UI 코드와비지니스코드를분리함으로써종속성을줄이고, 재사용성을높이고, 보다쉬운변경이가능하도록한다. 전자정부프레임워크에서 MVC 서비스 란 MVC 패턴을활용한 Web MVC Framework를의미한다. Page l 7 7

8 2. MVC - 개요 (1/2) 오픈소스 Web MVC Framework Spring MVC, Struts, Webwork 등이있다. 전자정부프레임워크에서는 Spring MVC를채택하였다. Framework내의특정클래스를상속하거나, 참조, 구현해야하는등의제약사항이비교적적다. IOC Contatiner가 Spring 이라면연계를위한추가설정없이 Spring MVC를사용할수있다. 오픈소스프로젝트가활성화 ( 꾸준한기능추가, 빠른 bug fix와 Q&A) 되어있으며로드맵이신뢰할만하다. 국내커뮤니티활성화정도, 관련참고문서나도서를쉽게구할수있다. Spring MVC DispatcherServlet, HandlerMapping, Controller, Interceptor, ViewResolver, View등각컴포넌트들의역할이명확하게분리된다. HandlerMapping, Controller, View등컴포넌트들에다양한인터페이스및구현클래스를제공한다. Controller(@MVC) 나폼클래스 ( 커맨드클래스 ) 작성시에특정클래스를상속받거나참조할필요없이 POJO 나 POJOstyle의클래스를작성함으로써비지니스로직에집중한코드를작성할수있다. 웹요청파라미터와커맨드클래스간에데이터매핑기능을제공한다. 데이터검증을할수있는, Validator와 Error 처리기능을제공한다. JSP Form을쉽게구성하도록 Tag를제공한다. Page l 8 8

9 2. MVC - Spring MVC Architecture(1/2) Spring MVC의핵심 Component DispatcherServlet Spring MVC Framework 의 Front Controller, 웹요청과응답의 Life Cycle 을주관한다. HandlerMapping 웹요청시해당 URL 을어떤 Controller 가처리할지결정한다. Controller 비지니스로직을수행하고결과데이터를 ModelAndView 에반영한다. ModelAndView Controller 가수행결과를반영하는 Model 데이터객체와이동할페이지정보 ( 또는 View 객체 ) 로이루어져있다. ViewResolver 어떤 View 를선택할지결정한다. View 결과데이터인 Model 객체를 display 한다. Page l 9 9

10 2. MVC - Spring MVC Architecture(2/2) Spring MVC 컴포넌트간의관계와흐름 Client의요청이들어오면 DispatchServlet이가장먼저요청을받는다. HandlerMapping이요청에해당하는 Controller를 return한다. Controller는비지니스로직을수행 ( 호출 ) 하고결과데이터를 ModelAndView에반영하여 return한다. ViewResolver는 view name을받아해당하는 View 객체를 return한다. View는 Model 객체를받아 rendering한다. 10 Page l 10

11 Spring MVC 컴포넌트간의관계와흐름 HandlerMapping 이요청에해당하는 Controller 를 return 한다. Client 의요청이들어오면 DispatchServlet 이가장먼저요청을받는다. Controller 는비지니스로직을수행 ( 호출 ) 하고결과데이터를 ModelAndView 에반영하여 return 한다. View 는 Model 객체를받아 rendering 한다. ViewResolver 는 view name 을받아해당하는 View 객체를 return 한다. 11 Page l 11

12 2. MVC - DispatcherServlet(1/3) DispatcherServlet Controller 로향하는모든웹요청의진입점이며, 웹요청을처리하며, 결과데이터를 Client 에게응답한다. Spring MVC 의웹요청 Life Cycle 을주관 12 Page l 12

13 2. MVC DispatcherServlet 상세. Spring MVC 의웹요청 Life Cycle 을주관하는 DispatcherServlet 13 Page l 13

14 2. MVC DispatcherServlet(2/3) DispatcherServlet, ApplicationContext, WebApplicationContext 하나의빈설정파일에모든빈을등록할수도있지만, 아래와같이 Layer 별로빈파일을나누어등록하고 ApplicationContext, WebApplicationContext 사용하는것을권장. ApplicationContext : ContextLoaderListener에의해생성. persistance, service layer의빈 WebApplicationContext : DispatcherServlet에의해생성. presentation layer의빈 ContextLoaderListener는웹어플리케이션이시작되는시점에 ApplicationContext을만들고, 이 ApplicationContext의빈정보는모든 WebApplicationContext들이참조할수있다. 14 Page l 14

15 2. MVC DispatcherServlet(3/3) web.xml 에 DispatcherServlet 설정하기 <!-- ApplicationContext 빈설정파일 --> <context-param> <param-name>contextconfiglocation</param-name> <param-value> /WEB-INF/config/service/easycompany-service.xml <!-- 서비스빈정의 --> /WEB-INF/config/service/easycompany-dao.xml <!--Dao 빈정의 --> </param-value> </context-param> <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener> <!-- WebApplicationContext 빈설정파일 --> <servlet> <servlet-name>servlet</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <init-param> <param-name>contextconfiglocation</param-name> <param-value> /WEB-INF/config/easycompany-servlet.xml <!--web layer 관련빈선언 --> </param-value> </init-param> </servlet> <!-- WebApplicationContext 빈설정파일 --> <servlet> <servlet-name>webservice</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <init-param> <param-name>contextconfiglocation</param-name> <param-value> /WEB-INF/config/easycompany-webservice.xml </param-value> </init-param> </servlet> 15 Page l 15

16 어노테이션을이용한설정 : XML 기반으로설정하던정보들을어노테이션을사용해서정의한다. 유연해진메소드시그니쳐 : Controller 메소드의파라미터와리턴타입을좀더다양하게필요에따라선택할수있다. POJO-Style의 Controller : Controller 개발시에특정인터페이스를구현하거나특정클래스를상속해야할필요가없다. 하지만, 폼처리, 다중액션등기존의계층형 Controller가제공하던기능들을여전히쉽게구현할수있다. Bean 설정파일작성 16 Page l 16

17 2. 가붙은클래스들을읽어들여 ApplicationContext, WebApplicationContext에빈정보를저장, <context:include-filter> 나 <context:exclude-filter> 를사용해야한다. <?xml version="1.0" encoding="utf-8"?> <beans xmlns=" xmlns:xsi=" xmlns:p=" xmlns:context=" xsi:schemalocation= <context:component-scan base-package="com.easycompany.controller.annotation"> <context:include-filter type="annotation" expression="org.springframework.stereotype.controller"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.service"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.repository"/> </context:component-scan> </beans> 17 Page l 17

18 2. MVC HandlerMapping RequestMappingHandlerMapping (DefaultAnnotationHandlerMapping 는 개발을위한 HandlerMapping. 표준프레임워크 3.0(Spring 3.2.9) 에서사용가능. 기존 DefaultAnnotationHandlerMapping이 url과해당 Controller의메소드매핑 RequestMappingHandlerMapping은기본 HandlerMapping이며, 선언하기위해서는다음과같이세가지방법이있다. 선언하지않는방법 : 기본 HandlerMapping 이므로지정하지않아도사용가능하다. <mvc:annotation-driven/> 을선언하는방법 사용시필요한빈들을등록해주는 <mvc:annotation-driven/> 을설정하 면내부에서 RequestMappingHandlerMapping, RequestMappingHandlerAdapter 이구성된다. RequestMappingHandlerMaping 을직접선언하는방법 : 다른 HandlerMapping 과함께사용할때선언한다. <?xml version="1.0" encoding="utf-8"?> <beans xmlns=" xmlns:xsi=" xmlns:p=" xmlns:context=" xsi:schemalocation=" <context:component-scan base-package="org.mycode.controller" /> <! 명시적선언 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.requestmappinghandlermapping"/> </beans> 18 Page l 18

19 2. MVC HandlerMapping SimpleUrlAnnotationHandlerMapping( 표준프레임워크 3.0 부터 deprecated 됨 mvc 태그로변경 ) DefaultAnnotationHandlerMapping 은특정 url 에대해 interceptor 를적용할수없음. -> 확장 HandlerMapping DefaultAnnotationHandlerMapping 과함께사용. (order 프로퍼티를 SimpleUrlAnnotationHandlerMapping 에준다.) 표준프레임워크 2.7 이하 표준프레임워크 3.0 이상 <bean id="selectannotaionmapper class="egovframework.rte.ptl.mvc.handler.simpleurlannotationhandlermapping p:order="1"> <property name="interceptors"> <list> <ref local="authenticinterceptor"/> </list> </property> <property name="urls"> <list> <value>/admin/*.do</value> <value>/user/userinfo.do</value> <value>/development/**/code*.do</value> </list> </property> </bean> <bean id="annotationmapper class="org.springframework.web.servlet.mvc.annotation.defaultannotationhandlerm apping p:order="2"/> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/admin/*.do"/> <mvc:mapping path="/user/userinfo.do"/> <mvc:mapping path="/development/**/code*.do"/> <mvc:mapping path="/egov/**"/> <mvc:exclude-mapping path="/egov/admin/**"/> <bean class="egov.interceptors.authenticinterceptor"/> </mvc:interceptor> </mvc:interceptors> 19 Page l 19

20 2. 관련어노테이션 해당클래스가 Controller 임을나타내기위한어노테이션 요청에대해어떤 Controller, 어떤메소드가처리할지를맵핑하기위한어노테이션 Controller 메소드의파라미터와웹요청파라미터와맵핑하기위한어노테이션 Controller 메소드의파라미터나리턴값을 Model 객체와바인딩하기위한어노테이션 Model 객체를세션에저장하고사용하기위한어노테이션 Controller 메소드의파라미터를 Map 형태로받을때웹요청파라미터와맵핑하기위한어노테이션 (egov 3.0 에서 Controller 를붙여주면된다. 특정클래스를구현하거나상속 할필요가없다. import public class HelloController {... } 20 Page l 20

21 2. 관련어노테이션 요청에대해어떤 Controller, 어떤메소드가처리할지를매핑하기위한어노테이션이다 관련속성 이름타입매핑조건설명 value String[] URL 값 /hello.do ) /hello.do, /world.do }) /hello.do ) - Ant-Style 패턴매칭이용 : /mypath/*.do method Request Method[] HTTP Request 메소드값 = RequestMethod.POST) - 사용가능한메소드 : GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE params String[] HTTP Request 파 라미터 - params= myparam=myvalue : HTTP Request URL 중에 myparam 이라는파라미터가있어야하고값은 myvalue 이어야맵핑 - params= myparam : 파라미터이름만으로조건을부여 -!myparam : myparam 이라는파라미터가없는요청만을맵핑 myparam1=myvalue, myparam2,!myparam3 }) 와같이조건을주었다면, HTTP Request 에는파라미터 myparam1 이 myvalue 값을가지고있고, myparam2 파라미터가있어야하고, myparam3 라는파라미터는없어야함. 21 Page l 21

22 2. 관련어노테이션 은클래스단위 (type level) 나메소드단위 (method level) 로설정할수있다. type level /hello.do 요청이오면 HelloController의 hello 메소드가수행된다. type level에서 URL을정의하고 표기를해야제대로맵핑이된다. import org.springframework.stereotype.controller; public class HelloController { public String hello(){... } 22 Page l 22

23 2. 관련어노테이션 (4/8) method level /hello.do 요청이오면 hello 메소드, /helloform.do 요청은 GET 방식이면 helloget 메소드, POST 방식이면 hellopost 메소드가수행된다. import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.requestmapping; import public class HelloController public String hello(){... method = RequestMethod.GET) public String helloget(){... } method = RequestMethod.POST) public String hellopost(){... } 23 Page l 23

24 2. 관련어노테이션 (5/8) type + method level type level, method level 둘다설정할수도있는데, 이경우엔 type value(url) 를 method level에서재정의할수없다. /hello.do 요청시에 GET 방식이면 helloget 메소드, POST 방식이면 public class HelloController = RequestMethod.GET) public String helloget(){... } = RequestMethod.POST) public String hellopost(){... } 24 Page l 24

25 2. 은 Controller 메소드의파라미터와웹요청파라미터와맵핑하기위한어노테이션이다. 관련속성 이름타입설명 value String 파라미터이름 required boolean 해당파라미터가반드시필수인지여부. 기본값은 true 이다. 해당파라미터가 Request 객체안에없을때그냥 null 값을바인드하고싶다면, 아래예제의 pageno 파라미터처럼 required=false 로명시해야한다. name 파라미터는 required 가 true 이므로, 만일 name 파라미터가 null 이면 org.springframework.web.bind.missingservletrequestparameterexception public class HelloController { public String hello(@requestparam("name") String required=false) String pageno){... } 25 Page l 25

26 2. Controller에서 2가지방법으로사용된다. 1. Model 속성 (attribute) 과메소드파라미터의바인딩. 2. 입력폼에필요한참조데이터 (reference data) 작성. - SimpleFormContrller의 referencedata 메소드와유사한기능. 관련속성 이름타입설명 value String 바인드하려는 model attribute를 session에저장, (type level) 에서선언할수있다. 관련속성 이름타입설명 value String[] session 에저장하려는 model attribute 의이름 required Class[] session 에저장하려는 model attribute 의타입 26 Page l 26

27 2. 관련어노테이션 실행환경 3.2 부터 deprecated 으로대체 ) 실행환경 3.0 부터추가되었으며 Controller 에서 Map 형태로웹요청값을받았을때다른 Map 형태의 argument 와구분해주 은파라미터레벨 (type level) 에서선언할수있다. public void test(@commandmap Map<String, String> commandmap, HttpServletRequest request){ // 생략 } CommandMap 을이용하기위해서는반드시 EgovRequestMappingHandlerAdapter 와함께 AnnotationCommandMapArgumentResolver 를등록해주어야한다. <bean class="egovframework.rte.ptl.mvc.bind.annotation.egovrequestmappinghandleradapter"> <property name="customargumentresolvers"> <list> <bean class="egovframework.rte.ptl.mvc.bind.annotationcommandmapargumentresolver" /> </list> </property> </bean> 27 Page l 27

28 2. 메소드시그니쳐 메소드시그니쳐 기존의계층형 Controller(SimpleFormController, MultiAction..) 에비해유연한메소드파라미터, 리턴값을갖는다. 메소드파라미터 Servlet API - ServletRequest, HttpServletRequest, HttpServletResponse, HttpSession 같은요청, 응답, 세션관련 Servlet API. org.springframework.web.context.request.webrequest, org.springframework.web.context.request.nativewebrequest java.util.locale java.io.inputstream / java.io.reader java.io.outputstream / - HTTP Request의파라미터와메소드의 argument를바인딩하기위해사용하는어노테이션. java.util.map / org.springframework.ui.model / org.springframework.ui.modelmap - 뷰에전달할모델데이터. Command/form 객체 - HTTP Request로전달된 alias 를줄수있다. org.springframework.validation.errors / org.springframework.validation.bindingresult - 유효성검사후결과데이터를저장한객체. org.springframework.web.bind.support.sessionstatus - 세션폼처리시에해당세션을제거하기위해사용된다. 28 Page l 28

29 2. 메소드시그니쳐 (2/2) 메소드리턴타입 ModelAndView - 적용된메소드의리턴데이터가담긴 Model 객체와 View 정보가담겨있다. Model( 또는 ModelMap) - 적용된메소드의리턴데이터가 Model 객체에담겨있다. View 이름은 RequestToViewNameTranslator가 URL을이용하여결정한다. Map - 적용된메소드의리턴데이터가 Map 객체에담겨있으며, View 이름은역시 RequestToViewNameTranslator가결정한다 String - 리턴하는 String 값이곧 View 이름이된다. 적용된메소드의리턴데이터가 Model( 또는 ModelMap) 에담겨있다. 리턴할 Model( 또는 ModelMap) 객체가해당메소드의 argument에선언되어있어야한다 void - 메소드가 ServletResponse / HttpServletResponse등을사용하여직접응답을처리하는경우이다. View 이름은 RequestToViewNameTranslator가결정한다. 29 Page l 29

30 2. 예제 로폼처리구현하기 로구현해보자. 메소드의이름은폼처리를담당하는 기존의 Form Controller 인 SimpleFormController 와의비교를위해기능별로동일하게지었다. 화면 & 시나리오 1. 파라미터부서번호의해당부서정보데이터를불러와입력폼을채운다. 2. 상위부서 (selectbox) 는부서정보데이터와는별도로, 상위부서에해당하는부서리스트데이터을구해서참조데이터로구성한다. 3. 사용자가데이터수정을끝내고저장버튼을누르면수정데이터로저장을담당하는서비스 (DB) 를호출한다. 4. 저장이성공하면부서리스트페이지로이동하고에러가있으면다시입력폼페이지로이동한다. 30 Page l 30

31 2. 예제 (2/3) Controller 작성하기 package public class UpdateDepartmentController private DepartmentService departmentservice; // 상위부서 (selectbox) 는부서정보데이터와는별도로, public Map<String, String> referencedata() { Map<String, String> param = new HashMap<String, String>(); param.put("depth", "1"); return departmentservice.getdepartmentidnamelist(param); } // = "/updatedepartment.do", method = RequestMethod.GET) public String formbackingobject(@requestparam("deptid") String deptid, Model model) { Department department = departmentservice.getdepartmentinfobyid(deptid); model.addattribute("department", department); return "modifydepartment"; } } // 사용자가데이터수정을끝내고저장버튼을누르면수정데이터로저장을담당하는서비스 (DB) 를호출한다. // = "/updatedepartment.do", method = RequestMethod.POST) public String onsubmit(@modelattribute("department") Department department) { try { departmentservice.updatedepartment(department); return "redirect:/departmentlist.do?depth=1"; } catch (Exception e) { return "modifydepartment"; } } 31 Page l 31

32 2. 예제 (3/3) JSP 폼필드와모델데이터의편리한데이터바인딩을위해스프링폼태그를사용한다. commandname 에는 model attribute 를적어주면된다. department... taglib prefix="form" uri=" %>... <form:form commandname="department"> <table> <tr> <th> 부서번호 </th><td><c:out value="${department.deptid}"/></td> </tr> <tr> <th> 부서이름 </th><td><form:input path="deptname" size="20"/></td> </tr> <tr> <th> 상위부서 </th> <td> <form:select path="superdeptid"> <option value=""> 상위부서를선택하세요.</option> <form:options items="${deptinfoonedepthcategory}" /> </form:select> </td> </tr> <tr> <th> 설명 </th><td><form:textarea path="description" rows="10" cols="40"/></td> </tr> </table>... <input type="submit" value=" 저장 "/> <input type="button" value=" 리스트페이지 " onclick="location.href='/easycompany/departmentlist.do?depth=1'"/>... </form:form> 32 Page l 32

33 2. MVC - 참고자료 Spring Framework API 이전버전참조 The Spring Framework - Reference Documentation 이전버전참조 Page l 33

34

35 3. Internationalization( 국제화 ) 개요 (1/8) 서비스개요 전자정부표준프레임워크에서는 Spring MVC 에서제공하는 LocaleResolver를이용한다. Spring MVC 는다국어를지원하기위하여아래와같은종류의 LocaleResolver 를제공하고있다. CookieLocaleResolver : 쿠키를이용한 locale정보사용 SessionLocaleResolver : 세션을이용한 locale정보사용 AcceptHeaderLocaleResolver : 클라이언트의브라우져에설정된 locale정보사용 * Bean 설정파일에정의하지않을경우 AcceptHeaderLocaleResolver 가 default 로적용된다. 35 Page l 35

36 3. Internationalization( 국제화 ) 설명 (2/8) CookieLocaleResolver CookieLocaleResolver 를설정하는경우사용자의쿠키에설정된 Locale 을읽어들인다. Bean 설정정보 (xx-servlet.xml) <bean id="localeresolver" class="org.springframework.web.servlet.i18n.cookielocaleresolver" > <property name="cookiename" value="clientlanguage"/> <property name="cookiemaxage" value="100000"/> <property name="cookiepath" value="web/cookie"/> </bean> Property 속성 36 Page l 36

37 3. Internationalization( 국제화 ) 설명 (3/8) SessionLocaleResolver requst 가가지고있는 Session 으로부터 locale 정보를가져온다. Bean 설정정보 (xx-servlet.xml) <bean id="localeresolver" class="org.springframework.web.servlet.i18n.sessionlocaleresolver" /> AcceptHeaderLocaleResolver 사용자의브라우저에서보내진 request 의헤더에 accept-language 부분에서 Locale 을읽어들인다. 사용자 브라우저의 Locale 을나타낸다. Bean 설정정보 (xx-servlet.xml) <bean id="localeresolver" class="org.springframework.web.servlet.i18n.acceptheaderlocaleresolver" /> 37 Page l 37

38 3. Internationalization( 국제화 ) 설명 (4/8) 샘플예제 (SessionLocaleResolver ) Web Configuration Filter 설정 Web 을통해들어오는요청을 Charset UTF-8 적용 1. CharacterEncodingFilter 을이용하여 encoding 할수이도록아래와같이세팅 (Web.xml) <filter> <filter-name>encoding-filter</filter-name> <filter-class> org.springframework.web.filter.characterencodingfilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding-filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 38 Page l 38

39 3. Internationalization( 국제화 ) 설명 (5/8) Spring Configuration (xx-servlet.xml) 아래와같이 localeresover 와 localechangeinterceptor 를등록하고 Annotation 기반에서동작할수있도록 RequestMappingHandlerMapping 에 interceptor 로등록을해준다. ( 표준프레임워크 3.0 에서사용가능 - 기존 DefaultAnnotationHandlerMapping 이 deprecated 됨 ) SessionLocaleResolver 를이용하여위와같이하였을경우 Locale 결정은 language Request Parameter 로넘기게된다. <bean id="localeresolver" class="org.springframework.web.servlet.i18n.sessionlocaleresolver" /> <!-- 쿠키를이용한 Locale 이용시 <bean id="localeresolver" class="org.springframework.web.servlet.i18n.cookielocaleresolver"/> --> <bean id="localechangeinterceptor" class="org.springframework.web.servlet.i18n.localechangeinterceptor"> <property name="paramname" value="language" /> </bean> <bean id="annotationmapper" class="org.springframework.web.servlet.mvc.method.annotation.requestmappinghandlermapping"> <property name="interceptors"> <list> <ref bean="localechangeinterceptor" /> </list> </property> </bean> 39 Page l 39

40 3. Internationalization( 국제화 ) 설명 (6/8) Message Source 설정 먼저다국어를지원해야하므로메시지를 MessageSource 로추출하여구현해야한다. 자세한 MessageSource 내용은 Resource 를참고하길바란다. messagesource는아래와같이설정하였다. <bean id="messagesource" class="org.springframework.context.support.resourcebundlemessagesource"> <property name="basenames"> <list> <value>classpath:/message/message</value> </list> </property> </bean> message properties 파일은아래와같다. locale에따라 ko, en 으로구분하였다. message_ko.properties 파일 : view.category= 카테고리 message_en.properties 파일 : view.category=category 40 Page l 40

41 3. Internationalization( 국제화 ) 설명 (7/8) JSP Spring Message Tag 이용 : <spring:message code="view.category" /> <%@ taglib prefix="spring" uri= %> <form:form commandname="message" >... <table border="1" cellspacing="0" class="boardlist" summary="list of Category"> <thead> <tr> <th scope="col">no.</th> <th scope="col"> <input name="checkall" type="checkbox" class="inputcheck" title="check All" onclick="javascript:fnccheckall();"/> </th> <th scope="col"><spring:message code="view.category" /> ID</th> <th scope="col"><spring:message code="view.category" /> 명 </th> <th scope="col"> 사용여부 </th> <th scope="col">description</th> <th scope="col"> 등록자 </th> </tr> </thead> Page l 41

42 3. Internationalization( 국제화 ) 설명 (8/8) 결과 화면상으로해당페이지를실행해보면아래와같다. 42 Page l 42

43 3. Internationalization( 국제화 ) 참고자료 The Spring Framework - Reference Documentation 이전버전참조 Page l 43

44

45 4. Ajax Support - 개요및설정 jquery Ajax jquery는브라우저호환성을제공하는자바스크립트라이브러리. jquery는자바스크립트프레임워크로서간결한문장의표현으로 front-end( 화면 ) 개발시생산성향상. 다양한오픈소스라이브러리들을통해 java script로 ajax, json parser, css selector, dom seletor, event 등... 다양한 ui 기능등을제공하고 front-end( 화면 ) 을동적으로제어가능 jquery 설정 - jquery java script 추가 jquery url을직접명시 <script src=" jquery script 를직접추가하여참조 <script type="text/javascript" src="jquery 파일경로 "></script> * jquery-버전.js를다운받아프로젝트하위경로에추가한후, 저장한경로를설정. * jquery는 MIT 라이센스를사용함. 45 Page l 45

46 4. Ajax Support - 기본기능 jquery.ajax(url[,settings]) 함수 jquery Ajax 기능을위해서는기본적으로 jquery.ajax(url[,settings]) 함수를이용 설정설명 default type type http 요청방식설정 (POST, GET, PUT.DELETE ) GET type string url request 를전달할 url 명 N/A url string data request 에담아전달할 data 명과 data 값 N/A String/Plain Object/Array contenttype datatype server 로데이터를전달할때 contenttype 서버로부터전달받을데이터타입 'application/x-www-for m-urlencoded; charset =UTF-8' xml, json, script, or ht ml contenttype String xml/html/script/json/jsonp/multiple, space-separated values statuscode HTTP 상태코드에따라분기처리되는함수 N/A 상태코드로분리되는함수 beforesend request 가서버로전달되기전에호출되는콜백함수 N/A error 요청을실패할경우호출되는함수 N/A success 요청에성공할경우호출되는함수 N/A crossdomain crossdomain request(jsonp 와같은 ) 를강제할때설정 (cross-domain request 설정필요 ) same-domain request 에서 false, cross-dom ain request 에서는 true Function( jqxhr jqxhr, PlainObj ect settings ) Function( jqxhr jqxhr, String te xtstatus, String errorthrown ) Function( PlainObject data, String textstatus, jqxhr jqxhr ) Boolean 46 Page l 46

47 4. Ajax Support - 기본예제 기본예제 하나의파라미터를 Ajax request 로전달하는예제. $.ajax({ type : "POST", url : "<c:url value='/example01.do'/>", contenttype: "application/x-www-form-urlennocoded; charset=utf-8", datatype:'json', data : { sampleinput : "sampledata" }, success : function(data, status, jqxhr) { // 통신이정상적일때해당함수실행 }, error : function(request, status, error){ // 통신이비정상적일때해당함수실행 }, complete : function(jqxhr, status) { // 통신의성공과실패시해당함수실행 } }); Http 요청동기Ajax Post Method 방식으로 example01.do로호출 contenttype을 application/x-www-form-urlennocoded 방식으로 charset을 UTF-8 으로설정. sampleinput이란데이터명으로 sampledata String을전달 통신의요청이성공할경우 success 함수호출 통신이비정상적일때 error 함수호출 통신의성공과실패시 complete 함수호출 47 Page l 47

48 4. Ajax Support - ajax 함수의 jqxhr 기능 ajax함수의 jqxhr(xmlhttprquest) jquery 1.5부터 jquery의모든 ajax함수는 XMLHttpRequest객체의상위집합을리턴받을수있다. 이객체를 jquery에서는 jqxhr( 응답값, 통신 status, readystatus) 이라부르며, jqxhr의함수로콜백함수를정의한다. jqxhr(xmlhttprquest) 의 callback 함수 사용자정의에의해순차적으로실행 Ajax에서 request를리턴받아호출가능 함수명 jqxhr.done(function( data, textstatus, jqxhr ) {}); jqxhr.fail(function( jqxhr, textstatus, errorthrown ) {}); jqxhr.always(function( data jqxhr, textstatus, jqxhr' errorthrown ) { }); 설명 성공시호출되는콜백함수실패시호출되는콜백함수항상호출되는콜백함수 Ajax 내부 callback 과 jqxhr(xmlhttprquest) callback 의실행순서 성공 : success( 내부 ) > complete ( 내부 ) > done(jqxhr) > always(jqxhr) 실패 : error ( 내부 ) > complete ( 내부 ) > fail(jqxhr) > always(jqxhr) 48 Page l 48

49 4. Ajax Support - callback 함수예제 jqxhr(xmlhttprquest) callback 함수예제 1 여러개의데이터를전달하며호출후 콜백함수로서버에서값을받는예제. $.ajax({ url : "<c:url value='/example02.do'/>", data : { name : "gil-dong", location : "seoul" }, }).done(function( data ) { if ( console && console.log ) { console.log( "Sample of data:", data.slice( 0, 100 ) ); } }); example02.do 을호출하며 name, location 을요청데이터로전달 성공시에 done 콜백함수를호출 jqxhr(xmlhttprquest) callback 함수예제 2 example03.do 를호출하며 성공시 done 콜백함수, 실패시 fail 콜백함수호출. var jqxhr = $.ajax( "<c:url value='/example03.do'/>", ).done(function() { alert( "success" ); }).fail(function() { alert( "error" ); }).always(function() { alert( "complete" ); }); jqxhr.always(function() { alert( "second complete" ); }); 성공, 실패여부에상관없이 always 콜백함수는 항상호출 done, fail, always 콜백함수는 ajax 함수를통해 리턴되어 request 로호출가능 49 Page l 49

50 4. Ajax Support - 응용. Auto complete Auto complete jquery에서는 input창에서예상되는텍스트값을보여주는자동완성기능을쉽게구현할수있도록 autocomplete() 을제공 autocomplete의설정구분설정설명 Type Options source 하단에뜨는자동완성리스트 ( 필수값 ) Array, String, function Options minlength 자동완성이동작하는최소문자열수 Integer Options disabled disable 여부 Boolean Events change(event, ui) 값변경시발생하는이벤트함수 autocompletechange Events focus( event, ui ) 값이포커스될때발생하는이벤트함수 autocompletefocus Events select( event, ui ) 값이선택될때발생하는이벤트함수 autocompleteselect * jquery UI script 를직접추가하여참조하는경우는 jquery-ui.js 와 jquery-ui.css 를다운받아 프로젝트하위경로에추가한후, 저장한경로를지정 50 Page l 50

51 4. Ajax Support - 응용. Auto complete 예제 autocomplete 기본예제 autocomplete 예제결과 <html lang="en"> <head> <meta charset="utf-8"> <title>jquery UI Autocomplete - Default functionality</title> <link rel="stylesheet" href="//code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css"> <script src="//code.jquery.com/jquery js"></script> <script src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script> <link rel="stylesheet" href="/resources/demos/style.css"> <script> $(function() { var availabletags = [ "ActionScript", "AppleScript", "Asp", "BASIC", "C", "C++", "Clojure", "COBOL", "ColdFusion", "Erlang", "Fortran", "Groovy", "Haskell", "Java", "JavaScript", "Lisp", "Perl", "PHP", "Python", "Ruby", "Scala", "Scheme" ]; $( "#tags" ).autocomplete({ source: availabletags }); }); </script> </head> <body> <div class="ui-widget"> <label for="tags">tags: </label> <input id="tags"> </div> </body> </html> * minlength 는 default 값이 1 - input 에 1 개이상의문자를입력했을때 source 의 String 배열들이자동문자리스트로표시됨. 51 Page l 51

52

53 5. Validation - 개요 Validation 서비스 화면처리레이어의 Validation 서비스는입력값유효성검증기능을제공한다. 유효성검증후, 잘못된유효성이있을경우오류메시지를표시한다. 유효성검사규칙 (validation rules) 을템플릿형태로제공하여쉽게적용이가능하다. 입력값유효성검증 (validation) 을위한기능은 Valang, Jakarta Commons, Spring 등에서제공한다. 기반오픈소스로 Jakarta Commons Validator를선택. MVC 프레임워크인 Spring MVC와 Jakarta Commons Validator의연계와활용방안을제공한다. 53 Page l 53

54 5. Validation - Jakarta Commons Validator Jakarta Commons Validator Jakarta Commons Validator는필수값, 각종 primitive type (int,long,float ), 최대-최소길이, 이메일, 신용카드번호등의값체크등을할수있도록 Template이제공된다. Template은 Java 뿐아니라 Javascript로도제공되어 client-side, server-side의검증을함께할수있으며, Configuration과에러메시지를 client-side, server-side 별로따로하지않고한곳에같이쓰는관리상의장점이있다. 54 Page l 54

55 5. Validation - Spring+Commons Validator Spring Framework + Jakarta Commons Validator Struts에서는 Commons Validator를사용하기위한 org.apache.struts.validator.validatorplugin 같은플러그인클래스를제공하는데, Spring에서는 Spring Modules( 프로젝트에서연계모듈을제공한다. 필요라이브러리 commons-validator : Ver 아래 4개의파일에대한 dependency가있다. 1. commons-beanutils : Ver commons-digester : Ver commons-logging : Ver junit : Ver spring modules : Ver 0.9 다운받고압축을풀어보면여러파일들이있으나여기서필요한건 spring-modulesvalidation.jar 뿐이다. 예제를보려면 \samples\sources\spring-modules-validation-commons-samples-src.zip도필요하다. 위에서언급한라이브러리들을설치한다. 55 Page l 55

56 5. Validation - DefaultValidatorFactory, DefaultBeanValidator DefaultValidatorFactory, DefaultBeanValidator 설정 DefaultValidatorFactory 프로퍼티 'validationconfiglocationsapache' 에정의된 Validation rule을기반으로 Commons Validator들의인스턴스를얻는다. DefaultBeanValidator DefaultBeanValidator는 org.springframework.validation.validator를 implements하고있지만, DefaultValidatorFactory가가져온 Commons Validator의인스턴스를이용해 validation을수행한다. Controller의 validation을수행할때이 DefaultBeanValidator를참조하면된다. 빈정의파일에아래와같이 DefaultValidatorFactory, DefaultBeanValidator 를선언한다. <!-- Integrated Apache Commons Validator by Spring Modules --> <bean id="beanvalidator" class="org.springmodules.validation.commons.defaultbeanvalidator"> <property name="validatorfactory" ref="validatorfactory"/> </bean> <bean id="validatorfactory" class="org.springmodules.validation.commons.defaultvalidatorfactory"> <property name="validationconfiglocations"> <list> <value>/web-inf/config/validator-rules.xml</value> <value>/web-inf/config/validator.xml</value> </list> </property> </bean> 56 Page l 56

57 5. Validation - validator-rules.xml validator-rules.xml 설정 validator-rules.xml 은 application 에서사용하는모든 validation rule 에대해정의하는파일이다. <validator> 태그를구성하는주요요소는아래와같다. name : validation rule(required,mask,integer, ) classname : validation check 를수행하는클래스명 (org.springmodules.validation.commons.fieldchecks) method : validation check 를수행하는클래스의메소드명 (validaterequired,validatemask ) methodparams : validation check 를수행하는클래스의메소드의파라미터 msg : 에러메시지 key. (message 프로퍼티에서설정한다.) javascript : client-side validation 을위한자바스크립트코드 <!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" " <form-validation> <global> <validator name="required" classname="org.springmodules.validation.commons.fieldchecks" method="validaterequired" methodparams="java.lang.object, org.apache.commons.validator.validatoraction, org.apache.commons.validator.field, org.springframework.validation.errors" msg="errors.required > <javascript><![cdata[... ]]> </javascript> </validator> </form-validation> 57 Page l 57

58 5. Validation - Validation Rule Validation Rule name(validation rule) FieldCheck 클래스 FieldCheck 메소드기능 required org.springmodules.validation.commons.fieldchecks validaterequired 필수값체크 minlength org.springmodules.validation.commons.fieldchecks validateminlength 최소길이체크 maxlength org.springmodules.validation.commons.fieldchecks validatemaxlength 최대길이체크 mask org.springmodules.validation.commons.fieldchecks validatemask 정규식체크 byte org.springmodules.validation.commons.fieldchecks validatebyte Byte형체크 short org.springmodules.validation.commons.fieldchecks validateshort Short형체크 integer org.springmodules.validation.commons.fieldchecks validateinteger Integer 형체크 long org.springmodules.validation.commons.fieldchecks validatelong Long 형체크 Spring Modules float org.springmodules.validation.commons.fieldchecks validatefloat Float형체크 double org.springmodules.validation.commons.fieldchecks validatedouble Double형체크 date org.springmodules.validation.commons.fieldchecks validatedate Date형체크 range org.springmodules.validation.commons.fieldchecks validateintrange 범위체크 intrange org.springmodules.validation.commons.fieldchecks validateintrange int형범위체크 floatrange org.springmodules.validation.commons.fieldchecks validatefloatrange Float형범위체크 creditcard org.springmodules.validation.commons.fieldchecks validatecreditcard 신용카드번호체크 org.springmodules.validation.commons.fieldchecks validate 이메일체크 ihidnum egovframework.rte.ptl.mvc.validation.rtefieldchecks validateihidnum 주민등록번호체크 korean egovframework.rte.ptl.mvc.validation.rtefieldchecks validatekorean 한글체크 htmltag egovframework.rte.ptl.mvc.validation.rtefieldchecks validatehtmltag <,> 태그정보체크 egovframework 58 Page l 58

59 5. Validation - validator.xml(1/2) validator.xml 설정 validator.xml 은 validation rule 과 validation 할 Form 을매핑한다. form name 과 field property 의 name-rule 은 Server-side 와 Client-side 인경우에따라다르다. Server-side validation 의경우 form name 과 field property 는 validation 할폼클래스의이름, 필드가각각매핑된다.(camel case) 폼클래스가 Employee 면 employee, DepartmentForm 이면 departmentform 을 form name 으로지정한다. Client-side 의경우 form name 은 JSP 에서설정한 <validator:javascript formname= employee /> 태그의 formname 과매핑되고, field property 는각각의폼필드의이름과일치하면된다. 따라서, Server-side, Client-side 둘다수행하려면, JSP 의 <validator:javascript formname= employee /> 태그의 formname 은폼클래스의이름이되어야하고, JSP 의폼 필드들은폼클래스의필드와일치해야한다. 59 Page l 59

60 5. Validation - validator.xml(2/2) depends는해당필드에적용할 (validator-rules.xml에정의된 rule name) validator를의미한다. <arg key > 는메시지출력시파라미터를지정하는값이다. 아래와같이작성했다면, Employee 클래스의 name 필드에대해서필수값체크를, age 필드에대해서 integer 체크를, 필드에대해선필수값과 유효값체크를하겠다는의미이다. <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1//EN" <form-validation> <formset> <form name="employee"> <field property="name" depends="required,korean"> <arg0 key="employee.name" /> </field> <field property="age" depends="integer"> <arg0 key="employee.age" /> </field> <field property=" " depends=" ,htmltag"> <arg0 key="employee. " /> </field> <field property="ihidnum" depends="ihidnum"/> </form> </formset> </form-validation> 60 Page l 60

61 5. Validation - Server-Side Validation(1/4) Server-Side Validation Controller Server-Side Validation 을위해 Controller 에 validation 로직을추가. package com.easycompany.controller.annotation;... import public class UpdateEmployeeController private DefaultBeanValidator = "/updateemployee.do", method = RequestMethod.POST) public String updateemployee(@modelattribute("employee") Employee employee, BindingResult bindingresult, Model model) { beanvalidator.validate(employee, bindingresult); //validation 수행 if (bindingresult.haserrors()) { // 만일 validation 에러가있으면 return "modifyemployee"; } } } employeemanageservice.updateemployee(employee); return "changenotify"; 61 Page l 61

62 5. Validation - Server-Side Validation(2/4) JSP form submit을하면이름, 나이, 이메일등의입력값이 Employee 클래스에바인딩이되어서 Controller에전달이되고, Controller에 validation 수행로직이있으면 validator.xml 내용에따라 validation이이루어진다. 만일에러가발생하면 <form:error /> 에해당에러메시지를출력한다. <form:form commandname="employee"> <table> <tr> <th> 이름 </th><td><form:input path="name" size="20"/><form:errors path="name" /></td> </tr> <tr> <th> 비밀번호 </th><td><form:input path="password" size="10"/></td> </tr> <tr> <th> 나이 </th><td><form:input path="age" size="10"/><form:errors path="age" /></td> </tr> <tr> <th> 이메일 </th><td><form:input path=" " size="50"/><form:errors path=" " /></td> </tr> </table> <table width="80%" border="1"> <tr> <td><input type="submit"/> <input type="button" value="list" onclick="location.href='/easycompany/employeelist.do'"/> </td> </tr> </table> </form:form> 62 Page l 62

63 5. Validation - Server-Side Validation(3/4) 에러메시지등록 메시지파일 (message.properties) 에에러메시지를등록한다. validation 에러가발생하면 validator-rules.xml에서정의했던 msg값으로에러메시지의 key값을찾아해당하는메시지를출력해준다. 예를들어, validation에서에러가발생하면 msg값이 errors. 이므로, 유효하지않은이메일주소입니다. 라는에러메시지를 JSP에있는 <form:errors path= /> 부분에출력하게된다. employee.name= 이름 employee. = 이메일 employee.age= 나이 employee.password= 비밀번호 # -- validator errors -- errors.required={0} 은필수입력값입니다. errors.minlength={0} 은 {1} 자이상입력해야합니다. errors.maxlength={0} 은 {1} 자이상입력할수없습니다. errors.invalid={0} 은유효하지않은값입니다. errors.byte={0} 은 byte 타입이어야합니다. errors.short={0} 은 short 타입이어야합니다. errors.integer={0} 은 integer 타입이어야합니다.... errors. = 유효하지않은이메일주소입니다. 63 Page l 63

64 5. Validation - Server-Side Validation(4/4) TEST 이름필드에값을비우고 submit 하면, name 에필수값 (required) validation rule 이설정되어있으므로 아래와같이이름필드옆에에러메시지가출력된다. 64 Page l 64

65 5. Validation - Client-Side Validation(1/3) Client-Side Validation validator.jsp 추가 <%@ page language="java" contenttype="javascript/x-javascript" %> <%@ taglib prefix="validator" uri=" %> <validator:javascript dynamicjavascript="false" staticjavascript="true"/> /validator.do 로호출하도록 Controller 에서메소드를추가하고 requestmapping 한다. validator.jsp 를 브라우져에서호출해보면, validator-rules.xml 에서정의한 javascript 함수들이다운로드되거나화면에 print 되는걸확인할수있다. validator.jsp 는 client-validation 을위해 validator-rules.xml 에서정의한 javascript 함수들을로딩한다. 따라서 client-validation 을할페이지에서는이 validator.jsp 를 <script type= text/javascript src= <c:url value= /validator.do /> ></script> 같이호출한다. JSP 설정 (taglib,javascript) 추가 client-validation 을위해서는해당 JSP 에아래와같은작업이추가되어야한다. commons-validator taglib 를선언한다. <%@ taglib prefix= validator uri= %> 필요한자바스크립트함수를 generate 하기위한코드를추가한다. validation-rules.xml 에서선언한함수를불러오기위 해, 위에서작성한 validator.jsp 를아래와같이호출한다. <script type= text/javascript src= <c:url value= /validator.do /> ></script> 65 Page l 65

66 5. Validation - Client-Side Validation(2/3) 위의자바스크립트함수를이용해필요한 validation 과메시지처리를위한자바스크립트를 generate 하기위한코드를 추가한다. formname 에는 validator.xml 에서정의한 form 의이름을써준다. <validator:javascript formname= employee staticjavascript= false xhtml= true cdata= false /> form submit 시에 validatevo 클래스명 () 함수를호출한다. onsubmit= return validateemployee(this) > 따라서앞의 server-side validation 에서작성한 modifyemployee.jsp 은아래와같이변경된다. <!-- commons-validator tag lib 선언 --> <%@ taglib prefix="validator" uri=" %> <!--for including generated Javascript Code(in validation-rules.xml)--> <script type="text/javascript" src="<c:url value="/validator.do"/>"></script> <!--for including generated JavascriptCode(validateEmployee(),formName:validator.xml 에서정의한 form 의이름 )--> <validator:javascript formname="employee" staticjavascript="false" xhtml="true" cdata="false"/> <script type="text/javascript"> function save(form){ if(!validateemployee(form)){ return; }else{ form.submit(); } } </script> <form:form commandname="employee"> <!--<input type="submit"/>--> <input type="button" value="save" onclick="save(this.form)"/> <!-- client-validation 을위해바로 submit 하지않고먼저 validateemployee 함수를호출 --> <input type="button" value="list" onclick="location.href='/easycompany/employeelist.do'"/> </td></tr> </table> </form:form> 66 Page l 66

67 5. Validation - Client-Side Validation(3/3) TEST 이름필드의값을지우고저장버튼을누르면아래와같은 alert 메시지가보인다. 67 Page l 67

68 5. Validation - 참고자료 Spring Modules Reference Documentation v Page l 68

슬라이드 1

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

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

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

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

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

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

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

PowerPoint Template

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

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

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

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

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

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

슬라이드 1

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

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

Spring

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

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

<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

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

<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

2파트-07

2파트-07 CHAPTER 07 Ajax ( ) (Silverlight) Ajax RIA(Rich Internet Application) Firefox 4 Ajax MVC Ajax ActionResult Ajax jquery Ajax HTML (Partial View) 7 3 GetOrganized Ajax GetOrganized Ajax HTTP POST 154 CHAPTER

More information

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

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

More information

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

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

More information

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas 플랫폼사용을위한 ios Native Guide - 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager class 개발. - Native Controller에서

More information

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx 과목명 : 웹프로그래밍응용교재 : 모던웹을위한 JavaScript Jquery 입문, 한빛미디어 Part3. Ajax Ch20. XMLHttpRequest 2014년 1학기 Professor Seung-Hoon Choi 20 XMLHttpRequest XMLHttpRequest 객체 자바스크립트로 Ajax를이용할때사용하는객체 간단하게 xhr 이라고도부름 서버

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

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

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

Ext JS À¥¾ÖÇø®ÄÉÀ̼ǰ³¹ß-³¹Àå.PDF

Ext JS À¥¾ÖÇø®ÄÉÀ̼ǰ³¹ß-³¹Àå.PDF CHAPTER 2 (interaction) Ext JS., HTML, onready, MessageBox get.. Ext JS HTML CSS Ext JS.1. Ext JS. Ext.Msg: : Ext Ext.get: DOM 22 CHAPTER 2 (config). Ext JS.... var test = new TestFunction( 'three', 'fixed',

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

Microsoft PowerPoint 세션.ppt

Microsoft PowerPoint 세션.ppt 웹프로그래밍 () 2006 년봄학기 문양세강원대학교컴퓨터과학과 세션변수 (Session Variable) (1/2) 쇼핑몰장바구니 장바구니에서는사용자가페이지를이동하더라도장바구니의구매물품리스트의내용을유지하고있어야함 PHP 에서사용하는일반적인변수는스크립트의수행이끝나면모두없어지기때문에페이지이동시변수의값을유지할수없음 이러한문제점을해결하기위해서 PHP 에서는세션 (session)

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES HTML 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES HTML 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES 2012.02.18 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone 02-2108-8030 Fax 02-2108-8031 www.softbase.co.kr Copyright 2010 SOFTBase Inc. All rights reserved 목차 1 장 : HTML 연동개요...

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 HTML5 웹프로그래밍입문 부록. 웹서버구축하기 1 목차 A.1 웹서버시스템 A.2 PHP 사용하기 A.3 데이터베이스연결하기 2 A.1 웹서버시스템 3 웹서버의구축 웹서버컴퓨터구축 웹서버소프트웨어설치및실행 아파치 (Apache) 웹서버가대표적 서버실행프로그램 HTML5 폼을전달받아처리 PHP, JSP, Python 등 데이터베이스시스템 서버측에데이터를저장및효율적관리

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

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

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_20160320.pptx

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_20160320.pptx (보험TM) 소개서 2015.12 대표전화 : 070 ) 7405 1700 팩스 : 02 ) 6012 1784 홈 페이지 : http://www.itfact.co.kr 목 차 01. Framework 02. Application 03. 회사 소개 01. Framework 1) Architecture Server Framework Client Framework

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

교육자료

교육자료 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

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

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 프레젠테이션

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

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

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

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

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

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

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

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

Microsoft PowerPoint - CSharp-10-예외처리

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

More information

슬라이드 1

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

More information

요약 1

요약 1 Globalization Support Guide Using Oracle and Java Version 1.0 www.sds-epartner.com 2003.03 목차 요약 1. 해결과제 2. Multilingual Database 3. Multilingual Web Application 4. Multiple Time Zone 5. Multiple Currency

More information

어댑터뷰

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

More information

untitled

untitled PowerBuilder 連 Microsoft SQL Server database PB10.0 PB9.0 若 Microsoft SQL Server 料 database Profile MSS 料 (Microsoft SQL Server database interface) 行了 PB10.0 了 Sybase 不 Microsoft 料 了 SQL Server 料 PB10.0

More information

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E >

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E > Chapter 8 데이터베이스응용개발 목차 사용자인터페이스와도구들 웹인터페이스와데이터베이스 웹기초 Servlet 과 JSP 대규모웹응용개발 ASP.Net 8 장. 데이터베이스응용개발 (Page 1) 1. 사용자인터페이스와도구들 대부분의데이터베이스사용자들은 SQL을사용하지않음 응용프로그램 : 사용자와데이터베이스를연결 데이터베이스응용의구조 Front-end Middle

More information

Javascript.pages

Javascript.pages JQuery jquery part1 JavaScript : e-mail:leseraphina@naver.com http://www.webhard.co.kr I.? 2 ......,,. : : html5 ; ; .

More information

thesis

thesis ( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype

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

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture4-1 Vulnerability Analysis #4-1 Agenda 웹취약점점검 웹사이트취약점점검 HTTP and Web Vulnerability HTTP Protocol 웹브라우저와웹서버사이에하이퍼텍스트 (Hyper Text) 문서송수신하는데사용하는프로토콜 Default Port

More information

슬라이드 1

슬라이드 1 [ CRM Fair 2004 ] CRM 1. CRM Trend 2. Customer Single View 3. Marketing Automation 4. ROI Management 5. Conclusion 1. CRM Trend 1. CRM Trend Operational CRM Analytical CRM Sales Mgt. &Prcs. Legacy System

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

Orcad Capture 9.x

Orcad Capture 9.x OrCAD Capture Workbook (Ver 10.xx) 0 Capture 1 2 3 Capture for window 4.opj ( OrCAD Project file) Design file Programe link file..dsn (OrCAD Design file) Design file..olb (OrCAD Library file) file..upd

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

교육2 ? 그림

교육2 ? 그림 Interstage 5 Apworks EJB Application Internet Revision History Edition Date Author Reviewed by Remarks 1 2002/10/11 2 2003/05/19 3 2003/06/18 EJB 4 2003/09/25 Apworks5.1 [ Stateless Session Bean ] ApworksJava,

More information

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint 웹 연동 기술.pptx 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우

More information

0. 들어가기 전

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

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

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

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

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

슬라이드 1

슬라이드 1 - 1 - 전자정부모바일표준프레임워크실습 LAB 개발환경 실습목차 LAB 1-1 모바일프로젝트생성실습 LAB 1-2 모바일사이트템플릿프로젝트생성실습 LAB 1-3 모바일공통컴포넌트생성및조립도구실습 - 2 - LAB 1-1 모바일프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new Mobile Project 메뉴를선택한다.

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

PowerPoint Presentation

PowerPoint Presentation Spring MVC 기초 - 강사김현오 - 1. Spring MVC 개요 1.1 SpringMVC 개요 1.2 SpringMVC 시작하기 MVC 패턴 DispatcherServlet SpringMVC 요청처리과정 MVC 패턴 (1/2) Model 어플리케이션상태의캡슐화 상태쿼리에대한응답 어플리케이션의기능표현 변경을뷰에통지 View 모델을화면에시각적으로표현 모델에게업데이트요청

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

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E > 6. ASP.NET ASP.NET 소개 ASP.NET 페이지및응용프로그램구조 Server Controls 데이터베이스와연동 8 장. 데이터베이스응용개발 (Page 20) 6.1 ASP.NET 소개 ASP.NET 동적웹응용프로그램을개발하기위한 MS 의웹기술 현재 ASP.NET 4.5까지출시.Net Framework 4.5 에포함 Visual Studio 2012

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

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

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

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

JVM 메모리구조

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

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

No Slide Title

No Slide Title J2EE J2EE(Java 2 Enterprise Edition) (Web Services) :,, SOAP: Simple Object Access Protocol WSDL: Web Service Description Language UDDI: Universal Discovery, Description & Integration 4. (XML Protocol

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

파워포인트 템플릿

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

More information

Modern Javascript

Modern Javascript ES6 - Arrow Function Class Template String Destructuring Default, Rest, Spread let, const for..of Promises Module System Map, Set * Generator * Symbol * * https://babeljs.io/ Babel is a JavaScript compiler.

More information

초보자를 위한 C# 21일 완성

초보자를 위한 C# 21일 완성 C# 21., 21 C#., 2 ~ 3 21. 2 ~ 3 21.,. 1~ 2 (, ), C#.,,.,., 21..,.,,, 3. A..,,.,.. Q&A.. 24 C#,.NET.,.,.,. Visual C# Visual Studio.NET,..,. CD., www. TeachYour sel f CSharp. com., ( )., C#.. C# 1, 1. WEEK

More information

1. SNS Topic 생성여기를클릭하여펼치기... Create Topic 실행 Topic Name, Display name 입력후 Create topic * Topic name : 특수문자는 hyphens( - ), underscores( _ ) 만허용한다. Topi

1. SNS Topic 생성여기를클릭하여펼치기... Create Topic 실행 Topic Name, Display name 입력후 Create topic * Topic name : 특수문자는 hyphens( - ), underscores( _ ) 만허용한다. Topi 5 주차 - AWS 실습 - SNS 시나리오 1. SNS Topic 생성 2. 3. 4. 5. Subscriptions 생성및 Confirm [ Email Test ] Message 발송 코드로보기 번외 ) SMS 발송하기 실습준비 HTML 파일, AWS 계정및 secretaccesskey, accesskeyid 간단설명 1. 2. 3. 4. SNS : 이메일,

More information

1

1 1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2

More information

Building Mobile AR Web Applications in HTML5 - Google IO 2012

Building Mobile AR Web Applications in HTML5 - Google IO 2012 Building Mobile AR Web Applications in HTML5 HTML5 -, KIST -, UST HCI & Robotics Agenda Insight: AR Web Browser S.M.AR.T: AR CMS HTML5 HTML5 AR - Hello world! - Transform - - AR Events 3/33 - - - (Simplicity)

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

초보자를 위한 ASP.NET 21일 완성

초보자를 위한 ASP.NET 21일 완성 ASP.NET 21!!.! 21 ( day 2 ), Active Server Pages.NET (Web-based program -ming framework).,... ASP.NET. ASP. NET Active Server Pages ( ASP ),. ASP.NET,, ( ),.,.,, ASP.NET.? ASP.NET.. (, ).,. HTML. 24 ASP.

More information

Portal_9iAS.ppt [읽기 전용]

Portal_9iAS.ppt [읽기 전용] Application Server iplatform Oracle9 A P P L I C A T I O N S E R V E R i Oracle9i Application Server e-business Portal Client Database Server e-business Portals B2C, B2B, B2E, WebsiteX B2Me GUI ID B2C

More information