DWR框架 (一)認識DWR

DWR是一個比較不錯的實現js語言和java語言橋接的框架,它是一個利用java的反射機制和ajax請求整合的一個框架,操做起來也是十分的容易,而卻能夠自動的實現咱們須要使用的數據的json或者其餘的類型的轉換,從而大大的減小了咱們本身的寫代碼的負擔,我的覺得熟悉使用DWR以後能夠減小之後的java中的轉換一個json的操做,是一個很典型的代理模式的例子,下面進行的是一個基本的認識DWR的步驟javascript

、咱們須要進行的是一個基本的DWR的認識,能夠到DWR的官網http://directwebremoting.org/dwr/進行信息的瀏覽的操做,下載相應的jar包:commons-logging-1.1.1.jar 和dwr.jar;html

、在咱們的myeclipse中新建一個web項目,其中咱們須要進行的一個操做就是把咱們剛剛下載的兩個jar包,放置在咱們的lib文件夾下面;java

、須要本身新建一個web.xml,其中類型的就是一個進行的過濾的操做設置,學習過struts的能夠看出來這裏的操做就是一個簡單的過濾設置,咱們能夠藉助官網給出的實例進行咱們的數據的創建以下:web.xml:web

<!-- lang: xml -->
 <!-- lang: xml -->
<!-- lang: xml -->
           <?xml version="1.0" encoding="UTF-8"?>
<!-- lang: xml -->
<web-app version="2.5" 
<!-- lang: xml -->
	xmlns="http://java.sun.com/xml/ns/javaee" 
<!-- lang: xml -->
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
<!-- lang: xml -->
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
<!-- lang: xml -->
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- lang: xml -->
	
<!-- lang: xml -->
	
<!-- lang: xml -->
<servlet>
<!-- lang: xml -->
  <display-name>DWR Servlet</display-name>
<!-- lang: xml -->
  <servlet-name>dwr-invoker</servlet-name>  
<!-- lang: xml -->
  <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<!-- lang: xml -->
  <init-param>
<!-- lang: xml -->
     <param-name>debug</param-name>
<!-- lang: xml -->
     <param-value>true</param-value>
<!-- lang: xml -->
  </init-param>
<!-- lang: xml -->
</servlet>
<!-- lang: xml -->

<!-- lang: xml -->
<servlet-mapping>
<!-- lang: xml -->
  <servlet-name>dwr-invoker</servlet-name>
<!-- lang: xml -->
  <url-pattern>/dwr/*</url-pattern>
<!-- lang: xml -->
</servlet-mapping>
<!-- lang: xml -->
	
<!-- lang: xml -->
	
<!-- lang: xml -->
	
<!-- lang: xml -->
	
<!-- lang: xml -->
  <welcome-file-list>
<!-- lang: xml -->
    <welcome-file>index.jsp</welcome-file>
<!-- lang: xml -->
  </welcome-file-list>
<!-- lang: xml -->
</web-app>
<!-- lang: xml -->

<!-- lang: xml -->
    <!-- lang: xml -->

、上述的web.xml和接下來的dwr.xml都是放置在WEB-INF文件下面的 dwr.xmlajax

<!-- lang: xml -->
  <!-- lang: xml -->
<!-- lang: xml -->
     <!DOCTYPE dwr PUBLIC
<!-- lang: xml -->
    "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"
<!-- lang: xml -->
    "http://getahead.org/dwr/dwr30.dtd">
<!-- lang: xml -->

<!-- lang: xml -->
<dwr>
<!-- lang: xml -->
  <allow>
<!-- lang: xml -->
    <create creator="new" javascript="test">
<!-- lang: xml -->
      <param name="class" value="com.fww.service.Test"/>
<!-- lang: xml -->
    </create>
<!-- lang: xml -->
   
<!-- lang: xml -->
  </allow>
<!-- lang: xml -->
</dwr>
<!-- lang: xml -->
    <!-- lang: xml -->


配置文中的意思就是說個人是一個新建立的一個test類,其中在js中使用的時候須要使用的test進行一個對象的建立和使用。

、測試類java的創建:json

Test:app

<!-- lang: xml -->
 <!-- lang: java -->
<!-- lang: xml -->
  package com.fww.service;
<!-- lang: xml -->

<!-- lang: xml -->
public class Test {
<!-- lang: xml -->
	
<!-- lang: xml -->
	public Test() {
<!-- lang: xml -->
		System.out.println("初始化的操做!");
<!-- lang: xml -->
	}
<!-- lang: xml -->

<!-- lang: xml -->
	public int add(int a,int b){
<!-- lang: xml -->
		System.out.println("使用了一次哦!");
<!-- lang: xml -->
		return a+b;
<!-- lang: xml -->
	}
<!-- lang: xml -->
}
<!-- lang: xml -->

<!-- lang: xml -->
    <!-- lang: java -->

,項目部署以後,咱們須要把項目啓動,而後再地址欄中輸入的是項目名稱下面的/dwr/*的操做,其中咱們能夠看到咱們本身寫的一個Test的js對應的test假對象了,點擊這個test咱們能夠看到全部的暴漏在外面的,用戶能夠調用的方法,咱們須要注意其實幾行的時候的兩行js代碼,讀英語的說明,咱們能夠知道使用的時候,咱們須要把這兩個js導入到咱們使用的頁面中去,下面是個人引用的頁面:框架

index.jsp:eclipse

<!-- lang: html -->
 <!-- lang: html -->
<!-- lang: html -->
   <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!-- lang: html -->
<%
<!-- lang: html -->
	String path = request.getContextPath();
<!-- lang: html -->
	String basePath = request.getScheme() + "://"
<!-- lang: html -->
			+ request.getServerName() + ":" + request.getServerPort()
<!-- lang: html -->
			+ path + "/";
<!-- lang: html -->
%>
<!-- lang: html -->

<!-- lang: html -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- lang: html -->
<html>
<!-- lang: html -->
<head>
<!-- lang: html -->
<base href="<%=basePath%>">
<!-- lang: html -->

<!-- lang: html -->
<title>My JSP 'index.jsp' starting page</title>
<!-- lang: html -->
<meta http-equiv="pragma" content="no-cache">
<!-- lang: html -->
<meta http-equiv="cache-control" content="no-cache">
<!-- lang: html -->
<meta http-equiv="expires" content="0">
<!-- lang: html -->
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<!-- lang: html -->
<meta http-equiv="description" content="This is my page">
<!-- lang: html -->
<script type='text/javascript' src='/dwr_001/dwr/interface/test.js'></script>
<!-- lang: html -->
<script type='text/javascript' src='/dwr_001/dwr/engine.js'></script>
<!-- lang: html -->
<script type="text/javascript">
<!-- lang: html -->
	function tt() {
<!-- lang: html -->
		test.add(1,2);
<!-- lang: html -->
		test.add(5,6,function(result){
<!-- lang: html -->
			document.getElementById("divid").innerHTML = result;
<!-- lang: html -->
		});
<!-- lang: html -->
	}
<!-- lang: html -->
</script>
<!-- lang: html -->
</head>
<!-- lang: html -->

<!-- lang: html -->
<body>
<!-- lang: html -->
	This is my JSP page.
<!-- lang: html -->
	<br>
<!-- lang: html -->
	<input type="button" onclick="tt();" value="點擊我進行測試">
<!-- lang: html -->
	<div id="divid" ></div>
<!-- lang: html -->
</body>
<!-- lang: html -->
</html>
<!-- lang: html -->

<!-- lang: html -->
    <!-- lang: html -->


  如此的操做以後,咱們能夠發現本身的代碼比起以前的ajax的請求時候,少了不少,並且咱們一樣的是能夠實現ajax的操做。
相關文章
相關標籤/搜索