달력

10

« 2018/10 »

  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  

'I.lib()/I.lib(Web)'에 해당되는 글 3

  1. 2014.01.10 Spring에서 DWR 사용하기( annotation 사용)
  2. 2014.01.10 Spring 과 DWR 적용 Sample
  3. 2011.05.03 web.xml 태그 설정
.. .. ..

 

[펌] : http://yunsunghan.tistory.com/562

Spring에서 DWR 사용하기(모든 설정을 annotation 하기)

내가 이글(http://yunsunghan.tistory.com/137)를 쓴지가 벌써 3,4년 전이였는데 아직도 그설정 그대로 사용하고 있는걸 보니, 이젠 뭔가 바뀌어 있지 않을까 하고 찾아 봤다. 별고 바뀐건 없지만, 한가지 눈에 띄는게 있다. @DataTransferObject 인데, 그땐 발견하지 못한건지, 적용하지 못하고 있음을 과거글에서 찾아 볼수있다. 모델 매핑은 XML에서 하고 있으니 말이다. 

경기도 시흥에 1박으로 놀려놨다가 아침에 다른(addon)것 찾아보다 발견하여 기록해본다. @DataTransferObject를 적용하는 방법은 여기(http://www.butterdev.com/dwr/2010/10/dwr-spring-and-annotations/)에 잘 나와 있다. 핵심은 아래 코드를 참조하자. 

[XML설정]

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
       http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd">
  
   <dwr:configuration />   
   <dwr:annotation-scan base-package="org.uk.ltd.dwr.dev" scanDataTransferObject="true" scanRemoteProxy="true"/>   
</beans>

 



[소스코드-Bean]

@DataTransferObject
public class Address {
private String street;
...

 


[소스코드-Biz]

@RemoteProxy(name="dwrService")
public class DWRService {
public DWRService() { }
@RemoteMethod
public Address getAddress() throws Exception {
Address address = new Address();
address.setStreet("2245 NW Overlook Drive");
address.setCity("Portland");
address.setState("Oregon");
return address;
}
     ... 

'I.lib() > I.lib(Web)' 카테고리의 다른 글

Spring에서 DWR 사용하기( annotation 사용)  (0) 2014.01.10
Spring 과 DWR 적용 Sample  (0) 2014.01.10
web.xml 태그 설정  (0) 2011.05.03
.
Posted by .07274.

댓글을 달아 주세요

2014.01.10 11:39

Spring 과 DWR 적용 Sample I.lib()/I.lib(Web)2014.01.10 11:39

.. .. ..

 

[펌] : http://blog.naver.com/PostView.nhn?blogId=fbstar&logNo=100120366091

 

spring 2.5 까지는 페이지 로딩시 spring mvc 를 통해 전달받은 객체에서 값들을 꺼내쓰는 직관적인 개발 구조이다.

그래서 깔끔하고 안정적인 개발환경을 유지할 수 있었으나 매번 새 페이지를 reloading 할 수만은 없어서 Ajax 를 구현하고자 하였다.

정보를 좀 찾아보니 Spring 에서는 DWR 이 그 역할을 대신하고 있어서 dwr 을 이용한 Ajax 통신 구조를 구현하였고 이로써 페이지 reloading 없이

원하는 값을 background 에서 처리 후 가져올 수 있었다.

 

구현시 몇가지 주의할 사항들이 있으니 참조하기 바람.

 

필요 모듈 :  

1. spring 2.5~3.0  

(3.0 에서 테스트해도 별 이상은 없었으나 3.0 부터는 json 을 위한 별도의 viewResolver 등 좀더 세부적인 업데이트가 이루어진듯 하다. )

2. dwr.jar

 

1.  view 페이지
<script type='text/javascript' src='/dwr/interface/mapService.js'></script>
<script type='text/javascript' src='/dwr/engine.js'></script>
<script type='text/javascript' src='/dwr/util.js'></script>

위의 3 가지 script 는 그대로 카피해 넣는다. (필수항목임)

주의 사항은 /dwr/ 은 web.xml 에서 servlet-mapping 으로 설정해놓은 url 이라는 것과 (아래 web.xml 이미지 참조)

/dwr/interface/mapService.js 에서 실제 javascript 객체로 사용되는 mapService명.js 앞에 '/dwr/interface/' 까지는 무조건 표시해야 한다는 것.

reference 를 직접 찾아보진 않아서 이유는 확인 못했으나 사용되는 객체는 반드시 /interface/객체명.js 로 표시해야 하는 듯 하다.

GetGeoCode 는 mapService 클래스의 GetGeoCode method 와 맵핑이 되며 첫번째 파라미터는  전달할 인자가 되고

두번째 파라미터는 callback 함수가 된다. (수행 후 등록한 calback 함수를 통해 수행결과를 return 받는다. )

 

 

2. web.xml

URL 주소가 /dwr/ 로 들어오는 경우 모두 /WEB-INF/dwrController.xml 의 설정을 따르라는 설정. 

 

3. dwrController.xml

위 경로를 통해 들어오는 요청에 대한 처리를 담당하는 controller.xml 이다.

 <beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
 xmlns:p="http://www.springframework.org/schema/p"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans  
       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.directwebremoting.org/schema/spring-dwr
       http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd">

위의 xml 에 대한 참조 정의를 그대로 카피해서 사용한다.

모든 url 은 dwrContrller 이라고 명명한 dwr:controller 로 연결되어 있으며

실제 javascript 에서 사용할 객체는 <dwr:remote javascript="mapService" > 에서 정의하였고

아래 코드는 " javascript 상의 mapService.getGeoCode() 에 대한 구현이 spring.dwr.service.MapServiceImpl 클래스의

getGeoCode 로 매핑된다."고 해석할 수 있다.

 

주의 사항은 

반드시 <props> 내에 정의된 "/engine.js, /util.js, /interface/**, /* " key 를 모두 등록을 해주어야 한다는 것.

jsp 페이지상의 url 과 맵팽되는 prop key 들을 수정해서 테스트 해본 바 engine.js, util.js 는 dwr 에서 기본적으로 추가해주어야 하는

항목인 듯하며jsp 페이지에서 사용하는 객체는 반드시 /interface/** 를 통해서 들어와야 하고 /* 무조건 있어야 에러가안나고....

쓰다보니 좀 부족한듯...^^;;아무튼 정확한 이유에 대해서는 reference 를 통해 공부하기를 바라며 url 맵핑을 각자 테스트해 보시길...^^:

 

 

 

4. spring.dwr.service.MapServiceImpl 을 구현한 class 이다.

여기서는 google geocode 를 가져오는 java source 일부 구현하였다.

인자값으로 받는 MapBean 은 상황에 맞게 Bean 또는 String 등등 으로 대체가능할 듯(^^;)

다만 bean 을 사용할 경우 위 소스 처럼 <dwr:configuration > 에서 사용할 bean 을 등록해주어야 한다.




5. 위에서 등록한 Bean 이다.

이 bean 클래스를 통해서 값을 전달 받는다.

 

6. 여기까지 정상적으로 구현이 되었다면 1번 이미지에서 callback 함수로 등록했던 onGetComments 함수를 통해서

alert() 메세지를 띄울 것이다.

 

여기까지 완성.. ^^;

'I.lib() > I.lib(Web)' 카테고리의 다른 글

Spring에서 DWR 사용하기( annotation 사용)  (0) 2014.01.10
Spring 과 DWR 적용 Sample  (0) 2014.01.10
web.xml 태그 설정  (0) 2011.05.03
.
Posted by .07274.

댓글을 달아 주세요

2011.05.03 16:36

web.xml 태그 설정 I.lib()/I.lib(Web)2011.05.03 16:36

.. .. ..
 web.xml 의 태그 설명
A. icon: 웹 어플리케이션을 나타내기 위해 IDE나 gui 툴에서 사용되는 하나 또는 두개의 이미지 파일들의 위치를 
            지정하는데 사용.
B. Display-name : GUI 툴이 웹어플리케이션을 표시하기 위해 사용하는 이름을 지정하는데 사용.
C. description : 웹 어플리케이션에 대한 설명을 나타낸다.
D. distributale : Distributable 요소가 있다는 것은 웹 어플리케이션이 다중 서버간에 분산 배치 될 수 있다는 것을 의미
E. Context-param : 어플리케이션의 초기화 파라미터를 선언
F. filter : 서블릿이나 jsp 페이지로 들어오는 요청 정보를 사전에 걸러내는 기능
G. Filter-mapping : 필터를 지정했다면 filter-mapping 을 지정하여 하나 이상의 서블릿과 연결
H. listener : 서블릿 2.3버전부터 세션이나 서블릿 컨텍스트가 생성 또는 수정되거나 소멸되는 것을 알려주는
                  이벤트 리스너
I. servlet : 서블릿이나 jsp 페이지에 초기화 파라미터나 사용자 url 들을 할당할 때 사용. 서블릿 jsp 이름 지정.
J. Servlet-mapping : 상대 URL경로를 좀더 쉽게 다루기 위해 기본 URL 를 변경할때 사용.
K. Session-config : 일정시간동안 세션으로 접근이 없을 경우 서버는 메모리를 절약하기 위해 사용하지 않는 
                             메모리를  삭제한다. 세션의 시간유지 기능 설정.
L. Mine-mapping : 특정한 MIME형을 가진 파일을 웹 어플리케이션에 넣어두고 싶은 경우 사용.
M. Welcome-file-list : URL 파일명이 아닌 디레곹리명으로 받았을 경우 기본적으로 불러올 파일명 지정.
N. Error-page : Http 상태코드가 반환되거나 예외가 발생하였을때 그 내용을 출력하는 페이지.
O. Tag-lib : 태그 라이버러리 설명자 파일의 별칭을 지정하는데 사용.
P. Resource-envref : Resource-env-ref 요소는 자원(resource) 과 연관되어 관리되는 객체를 선언하는 역할.
Q. Resource-ref : Resource-ref 요소는 외부에서 참조해야할 자원을 선언할때 사용.
R. Securitly-constraint : 어떤 URL 이 보호되도록 지정하는 역할. lOGIN-CONFIG와 연결되어 사용.
S. Login-config : 보안된 페이지로 들어가려는 사용자에 대한 서버의 인증 방식을 지정해준다.
T. Security-role : 통합개발 환경에서 보안 정보를 좀더 조작하기 쉽게 만들어 준다.
U. Env-entry : 웹 어플리케이션의 환경항목을 선언.
V. Ejb-ref : 엔터프라이즈 빈의 홈에 대한 레퍼런스를 선언
W. Ejb-local-ref : 엔터프라이즈 빈의 로컬 홈에 대한 레퍼런스를 선언.




'I.lib() > I.lib(Web)' 카테고리의 다른 글

Spring에서 DWR 사용하기( annotation 사용)  (0) 2014.01.10
Spring 과 DWR 적용 Sample  (0) 2014.01.10
web.xml 태그 설정  (0) 2011.05.03
.
Posted by .07274.

댓글을 달아 주세요