슬라이드 1

Size: px
Start display at page:

Download "슬라이드 1"

Transcription

1 [ 실습 ] 예제어플리케이션개발 1. 실습개요 2. 프로젝트환경구성 3. 기본환경설정 4. 예제어플리케이션개발 5. 참조 - 1 -

2 1. 실습개요 (1/4) 스프링기반의 EGOV 프레임워크를사용하여구현된예제어플리케이션구현을통하여모바일 UX Layer와 Business Layer의연계를살펴본다. 예제어플리케이션구현기능 정보알림이등록, 수정, 삭제, 조회 Presentation Layer Business Layer HandlerMapping Notification Controller Notification Service NotificationDAO Dispacher- Sevlet JstlView UrlBaseView Resolver DATABASE - 2 -

3 1. 실습개요 (2/4) 예제어플리케이션실행순서 사용자는 Web Page를통해서버에요청을보낸다. Spring Framework에의해처리되는모든요청은고유한 URL 매핑혹은확장자 (*.do) 를가지고있다. 모든 URL 매핑혹은확장자는 Servlet Container에의해서모든요청이 Spring Framework에서제공하는 DipatcherServlet으로넘어가게된다. DispatcherServlet은클라이언트의요청을전달받는 Servlet으로서, 컨트롤러나뷰와같은스프링의 MVC 구성요소를이용하여클라이언트에게서비스를제공한다. DispatcherServlet 의설정은웹어플리케이션의 /WEB-INF/web.xml 파일에추가한다. DispatcherServlet은컨트롤러객체의 handlerequest() 메서드를호출하여클라이언트의요청을처리한다. 컨트롤러의 handlerequest() 메서드는처리결과정보를담은 ModelAndView 객체를리턴한다. DistpatcherServlet은 ViewResolver로부터응답결과를생성할뷰개체를구한다. 뷰는클라이언트에전송할응답을생성한다

4 1. 실습개요 (3/4) 프로젝트구조 (1/2) maven Repository MYSQL 로컬 DB 실행소스 (controller, interface, Impl, DAO..) 리소스정보 (message, spring context xml, SQL xml..) Web context - 4 -

5 1. 실습개요 (4/4) 프로젝트구조 (2/2) class Class Model NotificationVO CommonVO - bhntfcintrvl: String ([]) = new String[0] - bhntfcintrvlstring: String = "" - enddatetime: String = "" - frstregisterid: String = "" - frstregisternm: String = "" - frstregisterpnttm: String = "" + lastupdusrid: String = "" - lastupdusrpnttm: String = "" - ntfccn: String = "" - ntfcdate: String = "" - ntfchh: String = "" - ntfcmm: String = "" - ntfcno: String = "" - ntfcsj: String = "" - ntfctime: String = "" - startdatetime: String = "" - uniqid: String = "" + getbhntfcintrvl() : String[] + getbhntfcintrvlstring() : String + getenddatetime() : String + getfrstregisterid() : String + getfrstregisternm() : String + getfrstregisterpnttm() : String + getlastupdusrid() : String + getlastupdusrpnttm() : String + getntfccn() : String + getntfcdate() : String + getntfchh() : String + getntfcmm() : String + getntfcno() : String + getntfcsj() : String + getntfctime() : String + getstartdatetime() : String + getuniqid() : String + setbhntfcintrvl(string[]) : void + setbhntfcintrvlstring(string) : void + setenddatetime(string) : void + setfrstregisterid(string) : void + setfrstregisternm(string) : void + setfrstregisterpnttm(string) : void + setlastupdusrid(string) : void + setlastupdusrpnttm(string) : void + setntfccn(string) : void + setntfcdate(string) : void + setntfchh(string) : void + setntfcmm(string) : void + setntfcno(string) : void + setntfcsj(string) : void + setntfctime(string) : void + setstartdatetime(string) : void + setuniqid(string) : void + tostring() : String - beanvalidator: DefaultBeanValidator ~ commonmessagesource: CommonMessageSource - logger: Logger = Logger.getLogge... # notificationservice: NotificationService # propertyservice: EgovPropertyService NotificationController + deletenotification(notificationvo, NotificationVO, SessionStatus) : String + getnotifications(notificationvo, ModelMap) : String + insertnotification(httpservletrequest, NotificationVO, NotificationVO, BindingResult, SessionStatus, ModelMap) : String + insertnotificationpage(notificationvo, ModelMap) : String + selectnotification(notificationvo, ModelMap) : String + selectnotificationlist(notificationvo, ModelMap) : String + updatenotificaitonpage(notificationvo, ModelMap) : String + updatenotification(notificationvo, NotificationVO, BindingResult, ModelMap) : String #notificationservice «interface» NotificationServ ice + checknotification(notificationvo) : boolean + deletenotifiction(notificationvo) : void + insertnotification(notificationvo) : void + selectnotification(notificationvo) : NotificationVO + selectnotificationdata() : List<NotificationVO> + selectnotificationlist(notificationvo) : Map<String, Object> + updatenotifiction(notificationvo) : void NotificationServ iceimpl - logger: Logger = Logger.getLogge... - notificationdao: NotificationDAO NotificationDAO AbstractServiceImpl + checknotification(notificationvo) : boolean + deletenotifiction(notificationvo) : void - getdatetimewithoutsec(calendar) : String + insertnotification(notificationvo) : void + selectnotification(notificationvo) : NotificationVO + selectnotificationdata() : List<NotificationVO> + selectnotificationlist(notificationvo) : Map<String, Object> + updatenotifiction(notificationvo) : void -notificationdao + deletenotification(notificationvo) : void + getnotificationdata(notificationvo) : List<NotificationVO> + insertnotification(notificationvo) : String + selectnotification(notificationvo) : NotificationVO + selectnotificationlist(notificationvo) : List<NotificationVO> + selectnotificationlistcnt(notificationvo) : int + updatenotification(notificationvo) : void SqlMapClientFactoryBean SqlMapClientDaoSupport org.springframework.orm.ibatis.support.sqlmapclientdaosupport Egov AbstractDAO + delete(string, Object) : int # EgovAbstractDAO() : void + insert(string, Object) : Object + list(string, Object) : List + listwithpaging(string, Object, int, int) : List + selectbypk(string, Object) : Object + setsupersqlmapclient(sqlmapclient) : void + update(string, Object) : int - 5 -

6 2. 프로젝트환경구성 (1/10) Eclipse character encoding 설정 workspace의 character encoding은 UTF-8로한다. windows > preference를선택한다. general 탭의 workspace 선택후 Text file encoding 을 Other : UTF-8 로설정한다

7 2. 프로젝트환경구성 (2/10) Tomcat 서버를설정한다. windows > preference 를선택한다. server탭의 Runtime Environments 선택후 Add버튼을사용하여 Apache Tomcat의각버전 (Tomcat 6.0 이상 ) 에맞는 Tomcat 위치를지정한다. (Tomcat 은사용자의로컬에설치되어있어야한다.) - 7 -

8 2. 프로젝트환경구성 (3/10) egovframework.guideprogram.mobile 프로젝트를 import 한다 (1/2). File>Import... 메뉴를선택한다. General>Maven Projects 를선택한다

9 2. 프로젝트환경구성 (4/10) egovframework.guideprogram.mobile 프로젝트를 import 한다 (2/2). [ 압축해제폴더 ]\egovframework.guideprogram.mobile 를선택한다. Finish 버튼을클릭한다

10 2. 프로젝트환경구성 (5/10) Maven Dependencies 를확인한다. Maven Dependencies 가생성되었음을확인한다

11 2. 프로젝트환경구성 (6/10) Maven install 을실행한다. install 이성공하면 BUILD SUCCESSFUL 을확인할수있다. BUILD SUCCESSFUL 을확인한다

12 2. 프로젝트환경구성 (7/10) DBMS(Mysql DB) 를실행한다. [ 압축해제폴더 ]\egovframework.guideprogram.mobile\db\mysql_ \bin 폴더로이동한다. 명령프롬프트를실행한후, mysqld 파일을실행시킨다. 종료 : mysql_5.5.10/bin 폴더에 mysqladmin u root shutdown

13 2. 프로젝트환경구성 (8/10) 어플리케이션을실행하여테스트한다. DBMS, Tomcat Server 를실행시킨후, Web Application 이제대로실행되는지확인한다

14 2. 프로젝트환경구성 (9/10) 브라우저로접속하여어플리케이션실행을확인한다

15 2. 프로젝트환경구성 (10/10) 프로젝트환경구성 Resource 환경구성 message spring context sqlmap(query) Webapp 환경구성 common css images config (Spring MVC config) jsp web.xml

16 3. 기본환경설정 (1/7) 어플리케이션구현스텝 web.xml 설정 컨트롤러처리결과사용할뷰를결정할 ViewResolver 설정 DataSource 설정 DataAccess 설정 SQLMap 설정 SQLMapConfig 설정

17 3. 기본환경설정 (2/7) 사용자 Request 를처리하기위한 web.xml 및기본환경 context-*.xml 파일설정 사용자요청을받는서블릿인 DispatcherServlet 은컨트롤러와뷰를이용하여사용자에게응답처리를한다. DispatcherServlet 은 Web Application 의 /WEB-INF/web.xml 파일에다음과같이설정한다. <?xml version="1.0" encoding="utf-8"?> <web-app> <servlet> <servlet-name>action</servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <init-param> <param-name>contextconfiglocation </param-name> <param-value> /WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml </param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>

18 3. 기본환경설정 (3/7) web.xml 설정 Presentation Layer와 Business Layer 연계를위한설정 web.xml에 context-param 요소로 contextconfiglocation 등록한다. Presentation Layer에존재하는 Bean 설정파일의위치를등록하여 Application Context로쉽게참조할수있도록한다. <?xml version="1.0" encoding="utf-8"?> <web-app> <context-param> <param-name>contextconfiglocation </param-name> <param-value> classpath*:egovframework/spring/context-*.xml </param-value> </context-param> </web-app>

19 3. 기본환경설정 (4/7) 컨트롤러처리결과사용할뷰를결정할 ViewResolver 설정 (1/2) 컨트롤러가지정한뷰이름으로부터응답결과화면을생성하는 View 객체는 ViewResolver를통해서생성한다. BasicSampleService의 Exception ViewResolver는아래와같이 dispatcher-servlet.xml에설정한다. <?xml version="1.0" encoding="utf-8"?> <bean class="org.springframework.web.servlet.handler.simplemappingexceptionresolver"> <property name="defaulterrorview" value="cmmn/egoverror" /> <property name="exceptionmappings"> <props> <prop key="org.springframework.dao.dataaccessexception">cmm/dataaccessfailure </prop> <prop key="org.springframework.transaction.transactionexception">cmm/transactionfailure </prop> <prop key="egovframework.rte.fdl.cmmn.exception.egovbizexception">cmm/egovbizexception</prop> </props> </property> </bean>

20 3. 기본환경설정 (5/7) 컨트롤러처리결과사용할뷰를결정할 ViewResolver 설정 (2/2) Basisc Sample Service 의 ViewResolver 는아래와같이 dispatcher-servlet.xml 에설정한다. <?xml version="1.0" encoding="utf-8"?> <bean class="org.springframework.web.servlet.view.urlbasedviewresolver" p:order="1" p:viewclass="org.springframework.web.servlet.view.jstlview" p:prefix="/web-inf/jsp/" p:suffix=".jsp" />

21 3. 기본환경설정 (6/7) DataSource 설정 Datasource 추가 위치 : resources/egovframework/spring/context-datasource.xml Mysql 의 driverclassname : net.sf.log4jdbc.driverspy Mysql 의 url : jdbc:mysql://localhost:3306/mobile Mysql 의 username: mobile Mysql 의 password : mobile01 <bean id="datasource" class="org.apache.commons.dbcp.basicdatasource" destroymethod="close"> <property name="driverclassname" value="net.sf.log4jdbc.driverspy"/> <property name="url" value="jdbc:mysql://localhost:3306/mobile"/> <property name="username" value="mobile"/> <property name="password" value="mobile01"/> </bean>

22 3. 기본환경설정 (7/7) DataAccess 설정 ibatis 를사용하기위한 SqlMapConfig 위치설정 <bean id="sqlmapclient" class="jcf.dao.ibatis.sqlmap.refreshablesqlmapclientfactorybean"> <property name="configlocations"> <list> <value>classpath:/sqlmap/config/*.xml</value> </list> </property> <property name="datasource" ref="datasource" /> SqlMapConfig 설정 : SQL 위치지정 <property name="lobhandler" ref="lobhandler"/> <!-- Java 1.5 or higher and ibatis or higher REQUIRED --> <property name="mappinglocations" value="classpath:/sqlmap/sql/**/*_mysql.xml" /> <property name="checkinterval" value="1000" /><!-- millsecond --> </bean>

23 4. 예제어플리케이션개발 (1/43) 어플리케이션구현스텝 목록조회기능개발 상세조회기능개발 입력기능및 validation 기능개발 수정기능개발 삭제기능개발

24 4. 예제어플리케이션개발 (2/43) 목록조회 NotificationVO 작성 SQLMap 작성및 SQL 작성 DAO 작성 Impl 작성 Controller 작성 JSP 작성

25 4. 예제어플리케이션개발 (3/43) NotificationVO 작성 속성 속성 설명 타입 ntfcno 알림번호 String ntfcsj 알림제목 String ntfccn 알림내용 String ntfcdate 알림날자 String ntfctime 알림시간 String bhntfcintrvl 사전알림간격 String 패키지 : egovframework.template.guide.service private String ntfcno; public String getntfcno() { return ntfcno; public void setntfcno(string ntfcno) { this.ntfcno = ntfcno;

26 4. 예제어플리케이션개발 (4/43) SQLMap 작성 Alias 추가 resources/egovframework/sqlmap/sql/guide/notification_sql_mysql.xml 파일에설정 notificationvo : egov egovframework.template.guide.service.notificationvo 1. 공지사항조회결과를매핑되기위한필드정보객체 <sqlmap namespace="education"> <typealias alias="notificationvo" type="egovframework.template.guide.service.notificationvo"/> </sqlmap> <resultmap id="notificationlist" class="egovframework.template.guide.service.notificationvo"> <result property="ntfcno" column="ntfc_no" columnindex="1"/> <result property="ntfcsj" column="ntfc_sj" columnindex="2"/> <result property="ntfccn" column="ntfc_cn" columnindex="3"/> <result property="ntfctime" column="ntfc_time" columnindex="4"/> <result property="bhntfcintrvlstring" column="bh_ntfc_intrvl" columnindex="5"/> <result property="frstregisterpnttm" column="frst_register_pnttm" columnindex="6"/> </resultmap>

27 4. 예제어플리케이션개발 (5/43) 목록조회 (1/8) SQL 작성 : resources/egovframework/sqlmap/sql/guide/notification_sql_mysql.xml 파일에설정 <select id="notificationdao.selectnotificationlist" parameterclass="notificationvo" resultmap="notificationlist" > <![CDATA[ SELECT a.ntfc_no, a.ntfc_sj, a.ntfc_cn, DATE_FORMAT(a.NTFC_TIME, '%Y-%m-%d %H:%i:%S') as NTFC_TIME, CONCAT(REPLACE(BH_NTFC_INTRVL,',',' 분,'), ' 분 ') as BH_NTFC_INTRVL, DATE_FORMAT(a.FRST_REGISTER_PNTTM, '%Y-%m-%d') as FRST_REGISTER_PNTTM FROM COMTNNTFCINFO a WHERE 1=1 ]]> <isequal prepend="and" property="searchcnd" comparevalue="0"> <![CDATA[a.NTFC_TIME LIKE CONCAT (#searchwrd#,'%') ]]> </isequal> <isequal prepend="and" property="searchcnd" comparevalue="1"> <![CDATA[a.NTFC_SJ LIKE CONCAT ('%', #searchwrd#,'%') ]]> </isequal> <isequal prepend="and" property="searchcnd" comparevalue="2"> <![CDATA[a.NTFC_CN LIKE CONCAT ('%', #searchwrd#,'%') ]]> </isequal> <![CDATA[ ORDER BY a.frst_register_pnttm DESC LIMIT #recordcountperpage# OFFSET #firstindex# ]]> </select>

28 4. 예제어플리케이션개발 (6/43) 목록조회 (2/8) DAO 클래스작성 public List<NotificationVO> selectnotificationlist(notificationvo vo) throws Exception { return list("notificationdao.selectnotificationlist", vo); Impl 클래스작성 public Map<String, Object> selectnotificationlist(notificationvo searchvo) throws Exception { List<NotificationVO> result = notificationdao.selectnotificationlist(searchvo); int cnt = notificationdao.selectnotificationlistcnt(searchvo); Map<String, Object> map = new HashMap<String, Object>(); Controller 작성 map.put("resultlist", result); map.put("resultcnt", Integer.toString(cnt)); return map;

29 4. 예제어플리케이션개발 (7/43) 목록조회 (3/8) Controller public String NotificationVO notificationvo, ModelMap model) throws Exception { LoginVO user = UserHelper.getUserInfo(); notificationvo.setuniqid(user.getuniqid()); logger.debug("search : " + notificationvo.getsearchwrd()); notificationvo.setpageunit(propertyservice.getint("pageunit")); notificationvo.setpagesize(propertyservice.getint("pagesize")); PaginationInfo paginationinfo = new PaginationInfo(); paginationinfo.setcurrentpageno(notificationvo.getpageindex()); paginationinfo.setrecordcountperpage(notificationvo.getpageunit()); paginationinfo.setpagesize(notificationvo.getpagesize()); notificationvo.setfirstindex(paginationinfo.getfirstrecordindex()); notificationvo.setlastindex(paginationinfo.getlastrecordindex()); notificationvo.setrecordcountperpage(paginationinfo.getrecordcountperpage()); Map<String, Object> map = notificationservice.selectnotificationlist(notificationvo); int totcnt = Integer.parseInt((String)map.get("resultCnt")); paginationinfo.settotalrecordcount(totcnt); model.addattribute("resultlist", map.get("resultlist")); model.addattribute("resultcnt", map.get("resultcnt")); model.addattribute("paginationinfo", paginationinfo); Jsp 에서 items 로결과를받아온다. return "guide/notificationlist"; View(notificationList.jsp)

30 4. 예제어플리케이션개발 (8/43) 목록조회 (4/8) JSP( 선언부 ) <!DOCTYPE html> <html> HTML5 선언부 <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <title> 정보알림이 </title> Viewport 설정 <link rel="stylesheet" href="/css/egovframework/mbl/cmm/jquery.mobile-1.0b1.min.css"/> <link rel="stylesheet" href="/css/egovframework/mbl/cmm/egovmobile.css" /> <script src="/js/egovframework/mbl/cmm/jquery min.js"></script> <script type="text/javascript"> $( document ).bind( "mobileinit", function(){ $.mobile.page.prototype.options.degradeinputs.date = 'text'; ); </script> <script src="/js/egovframework/mbl/cmm/jquery.mobile-1.0b1.min.js"></script> <script src="/js/egovframework/mbl/cmm/egovmobile.js"></script> <script type="text/javascript" src="/js/egovframework/mbl/cmm/datepicker/jquery.mobile.datebox.js"></script> <script language="javascript" src="<c:url value='/js/guide/notification.js' />"></script> Library Import <script type="text/javascript"> function isvaliddate(str) { </script> </head>

31 4. 예제어플리케이션개발 (9/43) 목록조회 (5/8) JSP(service 영역 javascript) <script type="text/javascript"> function fn_egov_insert_notification() { document.frm.action = "<c:url value='/guide/insertnotificationpage.do'/>"; document.frm.submit(); 알람등록페이지 function fn_egov_select_notification(pageno) { if (document.frm.searchcnd.value == '0' && document.frm.searchwrd.value!= '') { if (rawdatestring(document.frm.searchwrd)) { // no-op else { alert('<spring:message code="errors.date" arguments=" 알림일자 " />'); document.frm.searchwrd.focus(); return; 알람목록조회 document.frm.pageindex.value = pageno; document.frm.action = "<c:url value='/guide/selectnotificationlist.do'/>"; document.frm.submit(); function fn_egov_inqire_notification(ntfcno) { document.frm.ntfcno.value = ntfcno; document.frm.action = "<c:url value='/guide/selectnotification.do'/>"; document.frm.submit(); </script> 알람상세보기

32 4. 예제어플리케이션개발 (10/43) 목록조회 (6/8) JSP(page, header, content, footer) <!-- 알림이목록 start --> <div data-role="page" data-theme="b" id="pagelist"> 모바일 Page 선언부 <form name="frm" method="post" action="<c:url value='/guide/selectnotificationlist.do'/>"> <input type="hidden" name="ntfcno"> <input name="pageindex" type="hidden" value="<c:out value='${searchvo.pageindex'/>"/> <!-- header start --> <div data-role="header"> <h1> 정보알림이 </h1> <a href="javascript:fn_egov_insert_notification(); data-role="button" data-icon="plus" class="ui-btn-right"><spring:message code="button.create" /></a> </div> <!-- header end --> header <!-- content start --> <div data-role="content"> </div> <!-- content end --> content <!-- footer start --> <div data-role="footer" data-position="fixed"> <h1>egovframe</h1> </div> <!-- footer end --> footer </form> </div> <!-- 알림이목록 end -->

33 4. 예제어플리케이션개발 (11/43) 목록조회 (7/8) JSP(content 상세 ) <!-- content start --> <div data-role="content"> <div data-role="fieldcontain"> <label for="searchcnd" class="select"> 검색구분 : </label> <select name="searchcnd" id="searchcnd" data-native-menu="false"> <option></option> Select <option value="0" <c:if test="${searchvo.searchcnd == '0'">selected="selected"</c:if> > 알림일자 </option> <option value="1" <c:if test="${searchvo.searchcnd == '1'">selected="selected"</c:if> > 제목 </option> <option value="2" <c:if test="${searchvo.searchcnd == '2'">selected="selected"</c:if> > 내용 </option> </select> </div> <div data-role="fieldcontain"> <label for="searchwrd">text :</label> <input type="text" id="searchwrd" name="searchwrd" value='<c:out value="${searchvo.searchwrd"/>' maxlength="35"> </div> <a href="javascript:fn_egov_select_notification('1'); data-role="button" data-rel="dialog" data-transition="slideup"> 조회 </a> <ul data-role="listview" data-inset="true"> <c:foreach var="result" items="${resultlist" varstatus="status"> <li> <a href="javascript:fn_egov_inqire_notification('<c:out value="${result.ntfcno"/>');"> <h3><c:out value="${result.ntfcsj"/></h3> <p><strong> 알람시간 : <c:out value="${result.ntfctime"/></strong></p> <p> 사전알람간격 : <c:out value="${result.bhntfcintrvlstring"/></p> <p class="ui-li-aside"><c:out value="${result.frstregisterpnttm"/></p> </a> </li> </c:foreach> </ul> <p><ui:pagination paginationinfo="${paginationinfo" type="image" jsfunction="fn_egov_select_notification" /></p> </div> <!-- content end --> component Input component List component Page Navi

34 4. 예제어플리케이션개발 (12/43) 목록조회 (8/8) 결과

35 4. 예제어플리케이션개발 (13/43) 알림조회 SQLMap (ResultMap) 작성 DAO 작성 Impl 작성 Controller 작성 JS 작성

36 4. 예제어플리케이션개발 (14/43) 알림조회 (1/5) SQL 작성 <select id="notificationdao.getnotificationdata" parameterclass="notificationvo" resultmap="notificationlist" > <![CDATA[ SELECT a.ntfc_no, a.ntfc_sj, a.ntfc_cn, DATE_FORMAT(a.NTFC_TIME, '%Y-%m-%d %H:%i:%S') as NTFC_TIME, BH_NTFC_INTRVL as BH_NTFC_INTRVL, DATE_FORMAT(a.FRST_REGISTER_PNTTM, '%Y-%m-%d %H:%i:%S') as FRST_REGISTER_PNTTM FROM COMTNNTFCINFO a WHERE a.ntfc_time BETWEEN #startdatetime# AND #enddatetime# ]]> <![CDATA[ ORDER BY a.ntfc_time ASC ]]> </select> DAO 작성 public List<NotificationVO> getnotificationdata(notificationvo vo) throws Exception { return list("notificationdao.getnotificationdata", vo);

37 4. 예제어플리케이션개발 (15/43) 알림조회 (2/5) Impl 작성 public List<NotificationVO> selectnotificationdata() throws Exception { List<NotificationVO> result = new ArrayList<NotificationVO>(); NotificationVO vo = new NotificationVO(); SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat other = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar start = Calendar.getInstance(); Calendar end = Calendar.getInstance(); start.add(calendar.hour, -1); end.add(calendar.hour, 1); vo.setstartdatetime(formatter.format(start.gettime())); vo.setenddatetime(formatter.format(end.gettime())); List<NotificationVO> target = notificationdao.getnotificationdata(vo); Calendar current = Calendar.getInstance(); for (int i = 0; i < target.size(); i++) { vo = target.get(i); String[] interval = ("0," + vo.getbhntfcintrvlstring()).split(","); for (int j = 0; j < interval.length; j++) { Calendar alarm = Calendar.getInstance(); alarm.settime(other.parse(vo.getntfctime())); alarm.add(calendar.minute, -1 * Integer.parseInt(interval[j])); if (getdatetimewithoutsec(current).equals(getdatetimewithoutsec(alarm))) { result.add(vo); break; return result;

38 4. 예제어플리케이션개발 (16/43) 알림조회 (3/5) Controller public String NotificationVO notificationvo, ModelMap model) throws Exception { Boolean isauthenticated = UserHelper.isAuthenticated(); if (isauthenticated) { List<NotificationVO> list = notificationservice.selectnotificationdata(); model.addattribute("list", list); return "guide/notificationdata";

39 4. 예제어플리케이션개발 (17/43) 알림조회 (4/5) JSP(notification.js : service 영역 javascript) // 서버로 XML 데이터요청. function fcrequestdata() { cfxmlhttpstatus("get", "/guide/getnotifications.do", true, ""); Ajax 요청 // 메인처리 function cfhttpresult(xmlhttp) { var xml = xmlhttp.responsexml; //XML 파일데이터 var notificationlist = xml.getelementsbytagname("list"); // Parent Node var titlenode = xml.getelementsbytagname("title"); var contentsnode = xml.getelementsbytagname("contents"); var rowcnt = notificationlist.length; // 레코드건수 for (var i = 0; i < rowcnt; i++) { var title = titlenode[i].childnodes[0].nodevalue; var contents = contentsnode[i].childnodes[0].nodevalue; jalert( "<" + title + ">" + contents, ' 정보알리미 '); Xml Data Parsing // 자동호출등록하기 window.setinterval('fcrequestdata()', 55000); Timer 등록

40 4. 예제어플리케이션개발 (18/43) 알림조회 (5/5) 결과

41 4. 예제어플리케이션개발 (19/43) 상세조회 SQLMap (ResultMap) 작성 DAO 작성 Impl 작성 Controller 작성 JSP 작성

42 4. 예제어플리케이션개발 (20/43) 상세조회 (1/5) SQLMap 작성 <resultmap id="notificationdetail" class="egovframework.template.guide.service.notificationvo"> <result property="ntfcno" column="ntfc_no" columnindex="1"/> <result property="ntfcsj" column="ntfc_sj" columnindex="2"/> <result property="ntfccn" column="ntfc_cn" columnindex="3"/> <result property="ntfctime" column="ntfc_time" columnindex="4"/> <result property="bhntfcintrvlstring" column="bh_ntfc_intrvl" columnindex="5"/> <result property="frstregisterid" column="frst_register_id" columnindex="6"/> SQL <result 작성 property="frstregisternm" column="frst_register_nm" columnindex="7"/> <result property="frstregisterpnttm" column="frst_register_pnttm" columnindex="8"/> </resultmap> SQL 작성 <select id="notificationdao.selectnotification" parameterclass="notificationvo" resultmap="notificationdetail" > <![CDATA[ SELECT a.ntfc_no, a.ntfc_sj, a.ntfc_cn, DATE_FORMAT(STR_TO_DATE(a.NTFC_TIME, '%Y%m%d%H%i%S'), '%Y-%m-%d %H:%i:%S') as NTFC_TIME, CONCAT(REPLACE(a.BH_NTFC_INTRVL, ',', ' 분,'), ' 분 ') as BH_NTFC_INTRVL, a.frst_register_id, ' 홍길동 ' as FRST_REGISTER_NM, DATE_FORMAT(a.FRST_REGISTER_PNTTM, '%Y-%m-%d %H:%i:%S') as FRST_REGISTER_PNTTM FROM COMTNNTFCINFO a WHERE a.ntfc_no = #ntfcno# ]]> </select>

43 4. 예제어플리케이션개발 (21/43) 상세조회 (2/5) DAO 작성 public NotificationVO selectnotification(notificationvo searchvo) { return (NotificationVO)selectByPk("NotificationDAO.selectNotification", searchvo); Impl 작성 public NotificationVO selectnotification(notificationvo searchvo) throws Exception { NotificationVO resultvo = notificationdao.selectnotification(searchvo); if (resultvo == null) { throw processexception("info.nodata.msg"); return resultvo; Controller public String selectnotification(@modelattribute("searchvo") NotificationVO notificationvo, ModelMap model) throws Exception { LoginVO user = UserHelper.getUserInfo(); NotificationVO vo = notificationservice.selectnotification(notificationvo); model.addattribute("sessionuniqid", user.getuniqid()); model.addattribute("result", vo); return "guide/notificationdetail";

44 4. 예제어플리케이션개발 (22/43) 상세조회 (3/5) JSP(service 영역 javascript) <meta name="viewport" content="width=device-width, initial-scale=1"> <title> 알림이생성 </title> <link rel="stylesheet" href="/css/egovframework/mbl/cmm/jquery.mobile-1.0b1.min.css"/> <link rel="stylesheet" href="/css/egovframework/mbl/cmm/egovmobile.css" /> <script src="/js/egovframework/mbl/cmm/jquery min.js"></script> <script src="/js/egovframework/mbl/cmm/jquery.mobile-1.0b1.min.js"></script> <script src="/js/egovframework/mbl/cmm/egovmobile.js"></script> <script type="text/javascript"> function fn_egov_select_notificationlist(pageno) { document.frm.pageindex.value = pageno; document.frm.action = "<c:url value='/guide/selectnotificationlist.do'/>"; document.frm.submit(); function fn_egov_delete_notification() { if (confirm('<spring:message code="common.delete.msg" />')) { document.frm.action = "<c:url value='/guide/deletenotification.do'/>"; document.frm.submit(); function fn_egov_moveupdt_notification() { document.frm.action = "<c:url value='/guide/updatenotificationpage.do'/>"; document.frm.submit(); </script> 알람목록이동 알람삭제 알람삭제

45 4. 예제어플리케이션개발 (23/43) 상세조회 (4/5) JSP(content 상세 ) <!-- content start --> <div data-role="content"> <p> 제목 : <c:out value="${result.ntfcsj" /></p> <p> 내용 : <c:out value="${result.ntfccn"/></p> <p> 알림시간 : <c:out value="${result.ntfctime" /></p> <p> 사전알림간격 : <c:out value="${result.bhntfcintrvlstring" /></p> <p> 작성자 : <c:out value="${result.frstregisternm" /></p> <p> 작성시간 : <c:out value="${result.frstregisterpnttm" /></p> 상세보기내용 <div class="ui-grid-b"> <div class="ui-block-a"> <a href="javascript:fn_egov_moveupdt_notification();" data-role="button"> 수정 </a></div> <div class="ui-block-b"> <a href="javascript:fn_egov_delete_notification();" data-role="button"> 삭제 </a></div> <div class="ui-block-b"> <a href="javascript:history.go(-1);" data-role="button"> 목록 </a></div> </div> button component </div> <!-- content end -->

46 4. 예제어플리케이션개발 (24/43) 상세조회 (5/5) 결과

47 4. 예제어플리케이션개발 (25/43) 등록 SQL 작성 DAO 작성 Impl 작성 context-idgen.xml 작성 Validator 작성 JSP 작성

48 4. 예제어플리케이션개발 (26/43) 등록 (1/8) SQL 작성 <insert id="notificationdao.insertnotification" parameterclass="notificationvo" > <selectkey resultclass="java.lang.string" keyproperty="ntfcno"> SELECT IFNULL(MAX(NTFC_NO),0)+1 AS NTFC_NO FROM COMTNNTFCINFO </selectkey> <![CDATA[ INSERT INTO COMTNNTFCINFO (NTFC_NO, NTFC_SJ, NTFC_CN, NTFC_TIME, BH_NTFC_INTRVL, FRST_REGISTER_ID, FRST_REGISTER_PNTTM ) VALUES ( #ntfcno#, #ntfcsj#, #ntfccn#, #ntfctime#, #bhntfcintrvlstring#, #frstregisterid#, SYSDATE() ) ]]> </insert> DAO 작성 public String insertnotification(notificationvo notification) throws Exception { return (String)insert("NotificationDAO.insertNotification", notification);

49 4. 예제어플리케이션개발 (27/43) 등록 (2/8) Impl 작성 public void insertnotification(notificationvo notification) throws Exception { StringBuffer time = new StringBuffer(); time.append(notification.getntfcdate().replaceall("-", "")); time.append(notification.getntfctime().replaceall(":", "")); time.append("00"); notification.setntfctime(time.tostring()); StringBuffer interval = new StringBuffer(); String[] array = notification.getbhntfcintrvl(); for (int i = 0; i < array.length; i++) { if (i!= 0) { interval.append(","); interval.append(array[i]); notification.setbhntfcintrvlstring(interval.tostring()); notificationdao.insertnotification(notification);

50 4. 예제어플리케이션개발 (28/43) 등록 (3/8) Controller public String NotificationVO notificationvo, ModelMap model) throws Exception { NotificationVO notification = new NotificationVO(); model.addattribute("notification", notification); return "guide/notificationregist"; 등록 public String insertnotification(httpservletrequest NotificationVO NotificationVO notification, BindingResult bindingresult, SessionStatus status, ModelMap model) throws Exception { LoginVO user = UserHelper.getUserInfo(); Boolean isauthenticated = UserHelper.isAuthenticated(); beanvalidator.validate(notification, bindingresult); if (bindingresult.haserrors()) { return "guide/notificationregist ; if (!notificationservice.checknotification(notification)) { model.addattribute("msg", commonmessagesource.getmessage("template.guide.alertntfctime")); return "guide/notificationregist ; 알람등록 if (isauthenticated) { notification.setfrstregisterid(user.getuniqid()); notificationservice.insertnotification(notification); return "forward:/guide/selectnotificationlist.do";

51 4. 예제어플리케이션개발 (29/43) 등록 (4/8) Validator : dispatcher-servlet.xml 수정 <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/egovframework/validator/validator-rules.xml</value> <value>/web-inf/config/egovframework/validator/validator.xml</value> </list> </property> </bean>

52 4. 예제어플리케이션개발 (30/43) 등록 (5/8) Validator : NotificationRegist.xml 작성 <form-validation> <formset> <form name="notification"> <field property="ntfcsj" depends="required, maxlength"> <arg0 key="template.guide.ntfcsj" /> <arg1 key="30" resource="false"/> <var> <var-name>maxlength</var-name> <var-value>30</var-value> </var> </field> <field property="ntfccn" depends="required"> <arg0 key="template.guide.ntfccn" /> <arg1 key="50" resource="false"/> <var> <var-name>maxlength</var-name> <var-value>50</var-value> </var> </field> <field property="ntfcdate" depends="required"> <arg0 key="template.guide.ntfcdate" /> Validator-rules.xml </field> 작성 <field property="ntfchh" depends="required"> <arg0 key="template.guide.ntfctime" /> </field> <field property="bhntfcintrvl" depends="required"> <arg0 key="template.guide.bhntfcintrvl" /> </field> </form> </formset> </form-validation>

53 4. 예제어플리케이션개발 (31/43) 등록 (6/8) JSP(service 영역 javascript) taglib prefix="validator" uri=" %> <script type="text/javascript" src="<c:url value="/validator.do"/>"></script> <validator:javascript formname="notification" staticjavascript="false" xhtml="true" cdata="false"/> <script type="text/javascript"> function onloading() { if ("<c:out value='${msg'/>"!= "") { jalert("<c:out value='${msg'/>"); function fn_egov_regist_notification(){ if (!validatenotification(document.notification)){ return; var checked = false; for (var i = 0; i < document.notification.bhntfcintrvl.length; i++) { if (document.notification.bhntfcintrvl[i].checked) { checked = true; break; if (!checked) { jalert('<spring:message code="template.guide.bhntfcintrvl.msg" />'); return; if (confirm('<spring:message code="common.regist.msg" />')) { form = document.notification; form.action = "<c:url value='/guide/insertnotification.do'/>"; form.submit(); </script> validation 알람등록 javascript

54 4. 예제어플리케이션개발 (32/43) 등록 (7/8) JSP(content 상세 ) <!-- content start --> <div data-role="content"> <input name="pageindex" type="hidden" value="<c:out value='${searchvo.pageindex'/>"/> <div data-role="fieldcontain"> <label for="ntfcsj"><spring:message code="template.guide.ntfcsj" /> *</label> <input type="text" id="ntfcsj" name="ntfcsj" /> </div> <div data-role="fieldcontain"> <label for="ntfccn"><spring:message code="template.guide.ntfccn" /> *</label> <textarea id="ntfccn" name="ntfccn"></textarea> </div> <div data-role="fieldcontain"> <label for="ntfcdate"><spring:message code="template.guide.ntfcdate" /> *</label> <input id="ntfcdate" name="ntfcdate" type="date" data-role="datebox" /> </div> <div data-role="fieldcontain"> <label for="ntfctime"><spring:message code="template.guide.ntfctime" /> *</label> <input id="ntfctime" name="ntfctime" type="date" data-role="datebox" data-options='{"mode": "timebox"' /> </div> <fieldset data-role="controlgroup"> <legend><spring:message code="template.guide.bhntfcintrvl" /> *</legend> <input type="checkbox" id="bhntfcintrvl1" name="bhntfcintrvl" value="1" class="custom" /><label for="bhntfcintrvl1">1 분 </label> <input type="checkbox" id="bhntfcintrvl2" name="bhntfcintrvl" value="3" class="custom" /><label for="bhntfcintrvl2">3 분 </label> <input type="checkbox" id="bhntfcintrvl3" name="bhntfcintrvl" value="5" class="custom" /><label for="bhntfcintrvl3">5 분 </label> <input type="checkbox" id="bhntfcintrvl4" name="bhntfcintrvl" value="10" class="custom" /><label for="bhntfcintrvl4">10 분 </label> <input type="checkbox" id="bhntfcintrvl5" name="bhntfcintrvl" value="30" class="custom" /><label for="bhntfcintrvl5">30 분 </label> </fieldset> <div class="ui-grid-a"> <div class="ui-block-a"><a href="javascript:fn_egov_regist_notification();" data-role="button"><spring:message code="button.create" /></a></div> <div class="ui-block-b"><a href="javascript:fn_egov_select_notification();" data-role="button"><spring:message code="button.list" /></a></div> </div> </div> <!-- content end --> Input Element Button Component

55 4. 예제어플리케이션개발 (33/43) 등록 (8/8) 결과

56 4. 예제어플리케이션개발 (34/43) 수정 (1/6) SQL 작성 <update id="notificationdao.updatenotification" parameterclass="notificationvo"> <![CDATA[ UPDATE COMTNNTFCINFO SET NTFC_SJ = #ntfcsj#, NTFC_CN = #ntfccn#, NTFC_TIME = #ntfctime#, BH_NTFC_INTRVL = #bhntfcintrvlstring#, LAST_UPDUSR_ID = #lastupdusrid#, LAST_UPDUSR_PNTTM = SYSDATE() WHERE NTFC_NO = #ntfcno# ]]> </update> DAO 작성 public void updatenotification(notificationvo notification) throws Exception { update("notificationdao.updatenotification", notification);

57 4. 예제어플리케이션개발 (35/43) 수정 (2/6) Impl 작성 public void updatenotifiction(notificationvo notification) throws Exception { StringBuffer time = new StringBuffer(); time.append(notification.getntfcdate().replaceall("-", "")); time.append(notification.getntfctime().replaceall(":", "")); time.append("00"); notification.setntfctime(time.tostring()); logger.debug("time : " + notification.getntfctime()); StringBuffer interval = new StringBuffer(); String[] array = notification.getbhntfcintrvl(); for (int i = 0; i < array.length; i++) { if (i!= 0) { interval.append(","); interval.append(array[i]); notification.setbhntfcintrvlstring(interval.tostring()); notificationdao.updatenotification(notification);

58 4. 예제어플리케이션개발 (36/43) 수정 (3/6) Controller public String NotificationVO notificationvo, ModelMap model) throws Exception { NotificationVO vo = notificationservice.selectnotification(notificationvo); model.addattribute("result", vo); return "guide/notificationupdt ; public String updatenotification(@modelattribute("searchvo") NotificationVO NotificationVO notification, BindingResult bindingresult, ModelMap model) throws Exception { LoginVO user = UserHelper.getUserInfo(); Boolean isauthenticated = UserHelper.isAuthenticated(); beanvalidator.validate(notification, bindingresult); if (bindingresult.haserrors()) { NotificationVO vo = notificationservice.selectnotification(notificationvo); model.addattribute("result", vo); return "guide/notificationupdt"; if (!notificationservice.checknotification(notification)) { model.addattribute("msg", commonmessagesource.getmessage("template.guide.alertntfctime")); NotificationVO vo = notificationservice.selectnotification(notificationvo); model.addattribute("result", vo); return "guide/notificationupdt ; if (isauthenticated) { notification.setlastupdusrid(user.getuniqid()); notificationservice.updatenotifiction(notification); return "forward:/guide/selectnotificationlist.do"; 알람수정

59 4. 예제어플리케이션개발 (37/43) 수정 (4/6) JSP(service 영역 javascript) function onloading() { if ("<c:out value='${msg'/>"!= "") { jalert("<c:out value='${msg'/>"); function fn_egov_update_notification(){ if (!validatenotification(document.notification)){ return; var checked = false; for (var i = 0; i < document.notification.bhntfcintrvl.length; i++) { if (document.notification.bhntfcintrvl[i].checked) { checked = true; break; if (!checked) { jalert('<spring:message code="template.guide.bhntfcintrvl.msg" />'); return; if (confirm('<spring:message code="common.update.msg" />')) { form = document.notification; form.action = "<c:url value='/guide/updatenotification.do'/>"; form.submit(); function fn_egov_select_notification(){ var form = document.notification; form.action = "<c:url value='/guide/selectnotificationlist.do'/>"; form.submit(); validation 알람수정 javascript

60 4. 예제어플리케이션개발 (38/43) 수정 (5/6) JSP(content 상세 ) <!-- content start --> <div data-role="content"> <div data-role="fieldcontain"> <label for="ntfcsj"><spring:message code="template.guide.ntfcsj" /> *</label> <input type="text" id="ntfcsj" name="ntfcsj" value="<c:out value="${result.ntfcsj"/>" /> </div> <div data-role="fieldcontain"> <label for="ntfccn"><spring:message code="template.guide.ntfccn" /> *</label> <textarea id="ntfccn" name="ntfccn"><c:out value="${result.ntfccn" escapexml="true" /></textarea> </div> <div data-role="fieldcontain"> <label for="ntfcdate"><spring:message code="template.guide.ntfcdate" /> *</label> <input id="ntfcdate" name="ntfcdate" type="date" data-role="datebox" value="<c:out value='${fn:substring(result.ntfctime, 0, 10)'/>" /> </div> <div data-role="fieldcontain"> <label for="ntfctime"><spring:message code="template.guide.ntfctime" /> *</label> <input id="ntfctime" name="ntfctime" type="date" data-role="datebox" data-options='{"mode": "timebox"' value="<c:out value='${fn:substring(result.ntfctime, 11, 16)'/>"/> </div> <div class="ui-grid-a"> <div class="ui-block-a"><a href="javascript:fn_egov_update_notification();" data-role="button"><spring:message code="button.update" /></a></div> <div class="ui-block-b"><a href="javascript:fn_egov_select_notification();" data-role="button"><spring:message code="button.list" /></a></div> </div> Input Element </div> <!-- content end --> Button Component

61 4. 예제어플리케이션개발 (39/43) 수정 (6/6) 결과

62 4. 예제어플리케이션개발 (40/43) 삭제 (1/4) SQL 작성 <update id="notificationdao.deletenotification" parameterclass="notificationvo"> <![CDATA[ DELETE FROM COMTNNTFCINFO WHERE NTFC_NO = #ntfcno# ]]> </update> DAO 작성 public void deletenotification(notificationvo notification) throws Exception { update("notificationdao.deletenotification", notification);

63 4. 예제어플리케이션개발 (41/43) 삭제 (2/4) Impl 작성 public void deletenotifiction(notificationvo notification) throws Exception { notificationdao.deletenotification(notification); Controller public String deletenotification(@modelattribute("searchvo") NotificationVO NotificationVO notification, SessionStatus status) throws Exception { LoginVO user = UserHelper.getUserInfo(); Boolean isauthenticated = UserHelper.isAuthenticated(); if (isauthenticated) { notification.setlastupdusrid(user.getuniqid()); notificationservice.deletenotifiction(notification); return "forward:/guide/selectnotificationlist.do";

64 4. 예제어플리케이션개발 (42/43) 수정 (3/4) JSP(service 영역 javascript) <script type="text/javascript"> function fn_egov_moveupdt_notification() { document.frm.action = "<c:url value='/guide/updatenotificationpage.do'/>"; document.frm.submit(); </script> 삭제 script <!-- content start --> <div data-role="content"> <p> 제목 : <c:out value="${result.ntfcsj" /></p> <p> 내용 : <c:out value="${result.ntfccn"/></p> <p> 알림시간 : <c:out value="${result.ntfctime" /></p> <p> 사전알림간격 : <c:out value="${result.bhntfcintrvlstring" /></p> <p> 작성자 : <c:out value="${result.frstregisternm" /></p> <p> 작성시간 : <c:out value="${result.frstregisterpnttm" /></p> <div class="ui-grid-b"> <div class="ui-block-a"><a href="javascript:fn_egov_moveupdt_notification(); data-role="button"> 수정 </a></div> <div class="ui-block-b"><a href="javascript:fn_egov_delete_notification();" data-role="button"> 삭제 </a></div> <div class="ui-block-b"><a href="javascript:history.go(-1);" data-role="button"> 목록 </a></div> </div> Button Component </div> <!-- content end -->

65 4. 예제어플리케이션개발 (43/43) 삭제 (6/6) 결과

66 5. 참조 (1/2) AbstractServiceImpl 기본메소드 EgovBizException 발생을위한메소드 protected Exception processexception(final String msgkey) protected Exception processexception(final String msgkey, Exception e) protected Exception processexception(final String msgkey, final String[] msgargs) protected Exception processexception(final String msgkey, final String[] msgargs, final Exception e) protected Exception processexception(final String msgkey, final String[] msgargs, final Exception e, Locale locale) protected Exception processexception(final String msgkey, final String[] msgargs, final Exception e, final Locale locale, ExceptionCreator exceptioncreator) Exception 발생없이후처리로직실행을위한메소드 protected void leaveatrace(string msgkey) protected void leaveatrace(string msgkey, String[] msgargs) protected void leaveatrace(string msgkey, String[] msgargs, Locale locale)

67 5. 참조 (2/2) EgovAbstractDAO ibatis 의 SqlMapClientDaoSupport 확장 입력처리 SQL mapping 을실행한다. public Object insert(string queryid, Object parameterobject) 수정처리 SQL mapping 을실행한다. public int update(string queryid, Object parameterobject) 삭제처리 SQL mapping 을실행한다. public int delete(string queryid, Object parameterobject) pk 를조건으로한단건조회처리 SQL mapping 을실행한다. public Object selectbypk(string queryid, Object parameterobject) 리스트조회처리 SQL mapping 을실행한다. public List list(string queryid, Object parameterobject) 부분범위리스트조회처리 SQL mapping 을실행한다. ( 부분범위 - pageindex 와 pagesize 기반으로현재부분범위조회를위한 skipresults, maxresults 를계산하여 ibatis 호출 ) public List listwithpaging(string queryid, Object parameterobject, int pageindex, int pagesize)

슬라이드 1

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

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

<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

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

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

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

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

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

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

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

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

More information

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 한

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용   한 수업환경구축 웹데이터베이스구축및실습 구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 http://chrome.google.com 한림대학교웹데이터베이스 - 이윤환 APM 설치 : AUTOSET6

More information

슬라이드 1

슬라이드 1 전자정부모바일표준프레임워크실행환경컴포넌트별실습 - 1 - UX Component 실습목차 Step 1. Step 2. Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Page Structure Button Panel Internal / External Link Label / Text Tabs Form Menu

More information

untitled

untitled A Leader of Enterprise e-business Solution FORCS Co., LTD 1 OZ Application Getting Started 2 FORCS Co., LTD A Leader of Enterprise e-business Solution FORCS Co., LTD 3 OZ Application Getting Started 'OZ

More information

PowerPoint Template

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

More information

슬라이드 1

슬라이드 1 전자정부개발프레임워크 1 일차실습 LAB 개발환경 - 1 - 실습목차 LAB 1-1 프로젝트생성실습 LAB 1-2 Code Generation 실습 LAB 1-3 DBIO 실습 ( 별첨 ) LAB 1-4 공통컴포넌트생성및조립도구실습 LAB 1-5 템플릿프로젝트생성실습 - 2 - LAB 1-1 프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new

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

(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

다른 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

슬라이드 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

Javascript.pages

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

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

untitled

untitled A Leader of Enterprise e-business Solution FORCS Co., LTD 1 OZ Application Designer Getting Started 2 FORCS Co., LTD A Leader of Enterprise e-business Solution FORCS Co., LTD 3 OZ Application Designer

More information

untitled

untitled A Leader of Enterprise e-business Solution FORCS Co., LTD 1 OZ Application Designer Getting Started 2 FORCS Co., LTD A Leader of Enterprise e-business Solution FORCS Co., LTD 3 OZ Application Designer

More information

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) 8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) - DDL(Data Definition Language) : show, create, drop

More information

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET 135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26

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

PART 1 CHAPTER 1 Chapter 1 Note 4 Part 1 5 Chapter 1 AcctNum = Table ("Customer").Cells("AccountNumber") AcctNum = Customer.AccountNumber Note 6 RecordSet RecordSet Part 1 Note 7 Chapter 1 01:

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

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

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

TP_jsp7.PDF

TP_jsp7.PDF (1) /WEB_INF.tld /WEB_INF/lib (2) /WEB_INF/web.xml (3) http://{tag library }/taglibs/{library} /web_inf/{

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

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

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

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

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

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

untitled

untitled A Leader of Enterprise e-business Solution FORCS Co., LTD 1 OZ Application Getting Started (ver 5.1) 2 FORCS Co., LTD A Leader of Enterprise e-business Solution FORCS Co., LTD 3 OZ Application Getting

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

슬라이드 1

슬라이드 1 NeoDeveloper 설치가이드 차례 1. 환경 3 2. 설치 3 2.1 웹서버설치 3 Tomcat 7 3 JDK 1.6 3 2.2 NeoDeveloper 설치 3 Neo Developer 서버구성 3 Demo용 User Application 구성 4 Neo Developer 서버 Data File 4 Client 개발 Tool 설치 4 3. 설정 5 3.1

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

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

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

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

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

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

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

요약 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

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

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

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

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

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

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

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

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

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

Week13

Week13 Week 13 Social Data Mining 02 Joonhwan Lee human-computer interaction + design lab. Crawling Twitter Data OAuth Crawling Data using OpenAPI Advanced Web Crawling 1. Crawling Twitter Data Twitter API API

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

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

PHP & ASP

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

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

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

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Synergy EDMS www.comtrue.com opyright 2001 ComTrue Technologies. All right reserved. - 1 opyright 2001 ComTrue Technologies. All right reserved. - 2 opyright 2001 ComTrue Technologies. All right reserved.

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

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 CHAPTER 7. HTML 와 CSS 로웹사이트만들 기 웹사이트작성 웹사이트구축과정 내비게이션구조도 홈페이지레이아웃 헤더 web Shop 내비게이션메뉴

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

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아 LG U+ SMS/MMS 통합클라이언트 LG U+ SMS/MMS Client Simple Install Manual LG U+ SMS/MMS 통합클라이언트 - 1 - 간단설치매뉴얼 1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml

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

Dialog Box 실행파일을 Web에 포함시키는 방법

Dialog Box 실행파일을 Web에 포함시키는 방법 DialogBox Web 1 Dialog Box Web 1 MFC ActiveX ControlWizard workspace 2 insert, ID 3 class 4 CDialogCtrl Class 5 classwizard OnCreate Create 6 ActiveX OCX 7 html 1 MFC ActiveX ControlWizard workspace New

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

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID android:title= 항목제목 /> </menu> public boolean oncreateoptionsmenu(menu menu) { getme 8 차시메뉴와대화상자 1 학습목표 안드로이드에서메뉴를작성하고사용하는방법을배운다. 안드로이드에서대화상자를만들고사용하는방법을배운다. 2 확인해볼까? 3 메뉴 1) 학습하기 [ 그림 8-1] XML 을이용한옵션메뉴설정방법 public boolean

More information

SK Telecom Platform NATE

SK Telecom Platform NATE SK Telecom Platform NATE SK TELECOM NATE Browser VER 2.6 This Document is copyrighted by SK Telecom and may not be reproduced without permission SK Building, SeRinDong-99, JoongRoGu, 110-110, Seoul, Korea

More information

슬라이드 1

슬라이드 1 전자정부모바일표준프레임워크실행환경 ( 모바일 ) - 1 - 1. 개요 2. 배경 3. 실행환경특징 4. 실행환경구성 5. 실행환경구조 6. UX Component 7. 가이드프로그램 (UX Code Generator) 8. 참고사이트 - 2 - 1. 개요 전자정부모바일표준프레임워크실행환경의사용자경험 (UX) 지원기능은스마트기반모바일환경에서최적화된화면처리기능,

More information

NoSQL

NoSQL MongoDB Daum Communications NoSQL Using Java Java VM, GC Low Scalability Using C Write speed Auto Sharding High Scalability Using Erlang Read/Update MapReduce R/U MR Cassandra Good Very Good MongoDB Good

More information

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

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

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

INDEX 들어가기 고민하기 HTML(TABLE/FORM) CSS JS

INDEX 들어가기 고민하기 HTML(TABLE/FORM) CSS JS 개발자에게넘겨주기편한 TABLE&FORM 마크업 김남용 INDEX 들어가기 고민하기 HTML(TABLE/FORM) CSS JS 들어가기 이제는 ~ 서로간의이슈웹표준 & 웹접근성왜웹표준으로해야할까요? 모든웹페이지는 ~ 퍼블리싱순서 이제는 ~ 디자이너 디자이너 퍼블리셔 Front-end (UI 개발자 ) 퍼블리셔 Front-end (UI 개발자 ) 서버개발자 서버개발자

More information

파워포인트 템플릿

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

More information

어댑터뷰

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

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

HTML5

HTML5 주사위게임 류관희 충북대학교 주사위게임규칙 플레이어 두개의주사위를던졌을때두주사위윗면숫자의합 The First Throw( 두주사위의합 ) 합 : 7 혹은 11 => Win 합 : 2, 3, 혹은 12 => Lost 합 : 4, 5, 6, 8, 9, 10 => rethrow The Second Throw 합 : 첫번째던진주사위합과같은면 => Win 합 : 그렇지않으면

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

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

JMF2_심빈구.PDF

JMF2_심빈구.PDF JMF JSTORM http://wwwjstormpekr Issued by: < > Document Information Document title: Document file name: Revision number: Issued by: JMF2_ doc Issue Date: Status: < > raica@nownurinet

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

10.ppt

10.ppt : SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL

More information

Overall Process

Overall Process CSS ( ) Overall Process Overall Process (Contents : Story Board or Design Source) (Structure : extensible HyperText Markup Language) (Style : Cascade Style Sheet) (Script : Document Object Model) (Contents

More information

Spring

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

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 CHAPTER 14. HTML5 웹스토리지, 파일 API, 웹소켓 웹스토리지 웹스토리지 (web storage) 는클라이언트컴퓨터에데이터를저장하는메카니즘 웹스토리지는쿠키보다안전하고속도도빠르다. 약 5MB 정도까지저장이가능하다. 데이터는키 / 값 (key/value) 의쌍으로저장 localstorage 와 sessionstorage localstorage 객체

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

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

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

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

More information

하둡을이용한파일분산시스템 보안관리체제구현

하둡을이용한파일분산시스템 보안관리체제구현 하둡을이용한파일분산시스템 보안관리체제구현 목 차 - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - 1. 사용자가웹서버에로그인하여다양한서비스 ( 파일업 / 다운로드, 폴더생성 / 삭제 ) 를활용 2. 웹서버와연동된하둡서버에서업 / 다운로드된파일을분산저장. ( 자료송수신은 SSH 활용 ) - 9 - - 10 - - 11 -

More information

PowerPoint Presentation

PowerPoint Presentation FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

중간고사

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

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

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

09-interface.key

09-interface.key 9 Database insert(record r): boolean find(key k): Record 1 Record getkey(): Key * Record Key Database.? Key equals(key y): boolean Database insert(record r): boolean find(key k): Record * Database OK 1

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