DWR (Direct Web Remoting) js 자바 호출 방법

DWR (Direct Web Remoting) 은 웹 페이지 와 자바 류 의 상호작용 을 개선 하 는 원 격 서버 엔 드 Ajax 오픈 소스 프레임 워 크 입 니 다.(자바 스 크 립 트 가 자바 클래스 에 접근 하 는 방법)
1.          웹. xml 설정
<!--   dwr    -->
        <servlet>
                <servlet-name>dwr-invoker</servlet-name>
                <servlet-class>
                        org.directwebremoting.servlet.DwrServlet
                </servlet-class>
        </servlet>

        <servlet-mapping>
                <servlet-name>dwr-invoker</servlet-name>
                <url-pattern>/dwr/*</url-pattern>
        </servlet-mapping>

2.           호출 되 어야 할 클래스, 즉 호출 된 클래스 를 완성 합 니 다.
User.java

package lynn;

 

public class User {

        

        //   ID,    

        private String id;

        //   

        private String name;

        //   

        private String password;

        //     

        private String email;

//    get set  

... ...

UserDAO.java

package lynn;

 

import java.util.HashMap;

import java.util.Map;

 

public class UserDAO {

        //        

        private static Map<String, User> dataMap = new HashMap<String, User>();

 

        //     

        public boolean save(User user) {

                if (dataMap.containsKey(user.getId()))

                        return false;

                System.out.println("        ");

                System.out.println("id:" + user.getId());

                System.out.println("password:" + user.getPassword());

                System.out.println("name:" + user.getName());

                System.out.println("email:" + user.getEmail());

                dataMap.put(user.getId(), user);

                System.out.println("      ");

                return true;

        }

 

        //     

        public User find(String id) {

                return (User) dataMap.get(id);

        }

}

3. dwr. xml 설정
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

 

<dwr>

        <allow>

                <create creator="new" javascript="DWRUserAccess">

                        <param name="class" value="lynn.DWRUserAccess" />

                </create>

                

                <convert converter="bean" match="lynn.User" />

        </allow>

</dwr>

1) < allow > 탭 에는 자 바스 크 립 트 에 접근 할 수 있 는 것 이 포함 되 어 있 습 니 다.
2) < create > 탭 에서 javascript 에 접근 할 자바 클래스 를 지정 하고 DWR 가 원 격 클래스 를 수행 할 인 스 턴 스 를 어떻게 얻 는 지 정의 합 니 다.
creator = "new" 속성 은 자바 류 인 스 턴 스 생 성 방식 을 지정 합 니 다. new 는 DWR 가 클래스 의 기본 구조 함 수 를 호출 하여 인 스 턴 스 를 얻 어야 한 다 는 것 을 의미 합 니 다. 다른 것 은 spring 방식 도 있 습 니 다. IOC 용기 Spring 과 통합 하여 인 스 턴 스 를 얻 는 등 입 니 다.javascript = "DWRUerAccess" 속성 은 javascript 코드 접근 대상 을 지정 할 때 사용 할 이름, 즉 생산 할 js 의 이름 을 html 에서 가 져 온 js 이름과 일치 해 야 합 니 다.
< param > 탭 은 자 바스 크 립 트 에 공개 할 자바 클래스 를 지정 합 니 다.
< include > 탭 은 자바 script 에 공개 할 방법 을 지정 합 니 다.지정 하지 않 으 면 모든 방법 을 공개 합 니 다.
< exclude > 탭 은 접근 을 방지 할 방법 을 지정 합 니 다.
3) < creator > 탭 은 웹 원 격 클래스 와 클래스 를 공개 하 는 방법 을 담당 하고, < convertor > 탭 은 이러한 방법의 매개 변수 와 반환 형식 을 책임 집 니 다.
convert 요 소 는 DWR 가 서버 쪽 자바 대상 표시 와 직렬 화 된 자바 스 크 립 트 사이 에서 데이터 형식 을 어떻게 변환 하 는 지 알려 주 는 역할 을 합 니 다.DWR 은 자바 와 자 바스 크 립 트 표시 사이 에 간단 한 데이터 형식 을 자동 으로 조정 합 니 다.이러한 유형 은 자바 네 이 티 브 유형 과 이들 각자 의 패 키 징 류 를 포함 하고 String, Date, 배열 과 집합 유형 도 포함한다.DWR 도 자바 빈 을 자바 스 크 립 트 로 변환 할 수 있 지만 안전성 때문에 명시 적 설정 을 요구 합 니 다. < convertor > 탭 은 이 기능 을 완성 합 니 다.converter = "bean" 속성 지정 변환 방식 은 자바 빈 이름 규범 을 사용 합 니 다. match = "lynn. user" 속성 은 변환 할 자바 빈 이름 을 지정 하고 탭 은 변환 할 자바 빈 속성 을 지정 합 니 다.
4. html 완성, 즉 호출 자
test.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

        <HEAD>

                <TITLE>DWR  </TITLE>

                <meta http-equiv=Content-Type content="text/html; charset=gb2312">

                <script src="dwr/engine.js"></script>

                <script src="dwr/util.js"></script>

                <script src="dwr/interface/DWRUserAccess.js"></script>

        </HEAD>

        <SCRIPT LANGUAGE="JavaScript">

function saveFun(data) {

        if (data) {

                alert("    !");

        } else {

                alert("  ID    !");

        }

}

 

function OnSave() {

 

        var userMap = {};

        userMap.id = regForm.id.value;

        userMap.password = regForm.password.value;

        userMap.name = regForm.name.value;

        userMap.email = regForm.email.value;

        DWRUserAccess.save(userMap, saveFun);

}

 

function findFun(data) {

        if (data == null) {

                alert("      :" + queryForm.id.value);

                return;

        }

        alert("    ,nid:" + data.id + ",npassword:" + data.password + ",nname:"

                        + data.name + ",nemail:" + data.email);

}

 

function OnFind() {

        DWRUserAccess.find(queryForm.id.value, findFun);

}

</SCRIPT>

        <BODY>

                <B>    </B>

                <br>

                ------------------------------------------------

                <Br>

                <form name="regForm">

                          ID:

                        <input type="text" name="id">

                        <br>

                           :

                        <input type="password" name="password">

                        <br>

                           :

                        <input type="text" name="name">

                        <br>

                            :

                        <input type="text" name="email">

                        <br>

                        <input type="button" name="submitBtn" value="  " onclick="OnSave()">

                        <br>

                </form>

 

                <br>

                <br>

                <B>    </B>

                <br>

                ------------------------------------------------

                <Br>

                <form name="queryForm">

                          ID:

                        <input type="text" name="id">

                        <br>

                        <input type="button" name="submitBtn" value="  " onclick="OnFind()">

                        <br>

                </form>

                <br>

        </BODY>

</HTML>

1) 반드시 가 져 와 야 한다



그 중에서 engine. js 와 util. js 는 모두 dwr - 2.0.3 - src. zip 의 자바 / org / dwrwebremoting / 디 렉 터 리 에 있 습 니 다.DWRUUserAccess. js 는 자동 으로 생산 되 며 주의 경 로 는 * / interface / *. js 여야 합 니 다.
2) 자바 호출 방법
function saveFun(data) {

        if (data) {

                alert("    !");

        } else {

                alert("  ID    !");

        }

}

 

function OnSave() {

 

        var userMap = {};

        userMap.id = regForm.id.value;

        userMap.password = regForm.password.value;

        userMap.name = regForm.name.value;

        userMap.email = regForm.email.value;

        DWRUserAccess.save(userMap, saveFun);

}

DWR 구성 요소 이름. 호출 된 자바 방법 이름 (방법 매개 변수, 방법의 반환 값)
5. DWR 와 Spring 의 통합
변경 할 곳:
1) 웹. xml 에 추가
<!--   WebApplicationContext-->

        <context-param>

                <param-name>contextConfigLocation</param-name>

                <param-value>

                        /WEB-INF/applicationContext.xml

                </param-value>

        </context-param>

        <listener>

                <listener-class>

                        org.springframework.web.context.ContextLoaderListener

                </listener-class>

</listener>

applicationContext. xml 경로 주의
2) applicationContext. xml 에 bean 설정

3) dwr. xml 수정
<dwr>

        <allow>

                <create creator="spring" javascript="DWRUserAccess">

                        <param name="beanName" value="DWRUserAccess" />

                </create>

                

                <convert converter="bean" match="lynn.User" />

        </allow>

</dwr>

creator 의 값 은 new, spring, struts 일 수 있 습 니 다.
< param > 태그 설정 이 호출 된 bean 입 니 다.

좋은 웹페이지 즐겨찾기