DWR
둘러보기로 가기
검색하러 가기
JavaScript Framework인 DWR(Direct Web Remoting)을 정리 한다.
- 홈페이지 : http://directwebremoting.org/
- 다운로드 : http://directwebremoting.org/dwr/download.html
- 라이선스 :
- 플랫폼 :
DWR 설정
- DWR 다운로드 사이트에서 dwr.jar 파일을 다운로드 한다.
- dwr.jar 파일을 /WEB-INF/lib/ 폴더에 복사 한다.
- Commons Logging 다운로드 사이트에서 commons-logging-1.1.1.jar 파일을 다운로드 한다.
- commons-logging-1.1.1.jar 파일을 /WEB-INF/lib/ 폴더에 복사 한다.
- JSON_Simple 다운로드 사이트에서 json_simple-1.1.jar를 다운르도 한다.
- json_simple-1.1.jarr 파일을 /WEB-INF/lib/ 폴더에 복사 한다.
- /WEB-INF/web.xml에 다음을 추가 한다.
<servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
- /WEB-INF/classes/dwr.xml 파일을 생성 한다.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd"> <dwr> <allow> <create creator="new" javascript="ContactService"> <param name="class" value="com.jopenbusiness.gae.smartycontact.service.ContactService"/> </create> <convert converter="bean" match="com.jopenbusiness.gae.smartycontact.vo.ContactVO"/> </allow> </dwr>
- ContactService.java 파일을 생성 한다.
package com.jopenbusiness.gae.smartycontact.service; import org.json.simple.JSONObject; public class ContactService { public JSONObject getHello() { JSONObject obj = null; obj = new JSONObject(); obj.put("name", "Hello World!"); return obj; } }
- 자동 생성되는 JavaScript 파일
<script type="text/javascript" src="/dwr/engine.js"></script> <script type="text/javascript" src="/dwr/interface/ContactService.js"></script>
Server Program
JSON Simple
- 홈페이지 : http://code.google.com/p/json-simple/
- 다운로드 : http://code.google.com/p/json-simple/downloads/list
- json_simple.jar
- JSONObject
- import org.json.simple.JSONObject;
- JSONObject result = new JSONObject();
- result.put("list", ~);
- result.toString();
- JSONArray
- import org.json.simple.JSONArray;
- JSONArray list = new org.json.simple.JSONArray();
- list.add(tempObj); //--- GAE에서는 list.put(tempObj)을 사용 한다.
- arg (문자열)을 파싱
- 주의 : 전달되는 문자열이 "name":"value" 형태일 때만 파싱된다. name:value는 파싱되지 않는다.
import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.JSONValue; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; //--- 간단한 방법 opt = (JSONObject) JSONValue.parse(arg); //--- 복잡한 방법 Object obj = null; try { obj = parser.parse(arg); opt = (JSONObject)obj; } catch (ParseException e) { e.printStackTrace(); }
- Google App Engine에 있는 JSON Simple로 파싱
import com.google.appengine.repackaged.org.json.JSONArray; import com.google.appengine.repackaged.org.json.JSONException; import com.google.appengine.repackaged.org.json.JSONObject; JSONObject obj = new JSONObject("JSON_문자열"); JSONObject menu = obj.getJSONObject(name); //--- obj.get(name); String id = obj.getString(name); JSONArray list = obj.getJSONArray(name);