buffalo初接触

本文介绍了Buffalo,一个基于Prototype的轻量级AJAX框架。通过一个完整的Hello World示例项目,展示了如何设置开发环境、配置文件及实现远程调用等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         AJAX的远程调用框架很多,比较流行的就是dwr,在javaeye看介绍,国内有人写了个不错的框架buffalo,下了DEMO和SRC来看,感觉很不错。很容易上手,它的JS方面也是建立在prototype基础上。只不过好象名气较小,没DWR那么被广泛使用,不过看它主页,已经有几个项目采用了那个框架。比较惭愧的是,我对JS的了解很肤浅,一直不是很严肃地对待这门语言,准备下苦工夫读一读了。

它的主页是

http://www.amowa.net/buffalo/

上面有一些DEMO和文档,现在这方面的资料不是很多。最近随着对AJAX的了解,冒出个想法,写个小型的个人blog系统,把最近所学的应用进去,ajax,rico,xsl等等,有空就开始写写,当作练习!

下面是它提供的经典的HelloWorld示例

. 下载buffalo

请在下载页面中,下载最新版本。你也可以跳过这篇文章,直接下载buffalo-example.war,在那个压缩包中,已经包含了已经配置好的buffalo,以及这篇文章中涉及的演示应用。

2. Web应用目录

 

+ buffalo-example
       WEB-INF/classes
       WEB-INF/lib
       script

 

然后将burlap-2.1.2.jar, buffalo-<version>.jar放到WEB-INF/lib中;将prototype.js, buffalo.js放到script目录中。

3. 编辑web.xml

新建一个web.xml, 放到WEB-INF中;编辑内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-Sun Microsystems, Inc.DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Buffalo Example Application</display-name>
<servlet>
    <servlet-name>bfapp</servlet-name>
    <servlet-class>net.buffalo.web.servlet.ApplicationServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>bfapp</servlet-name>
    <url-pattern>/bfapp/*</url-pattern>
</servlet-mapping>
</web-app>

 

4. 编辑buffalo-service.properties

新建一个空文本文件,命名为buffalo-service.properties,放到WEB-INF/classes中;编辑内容如下:

# Example Service
helloService=example.HelloService

 

5. 编辑JSP文件

新建一个空的HTML文件,命名为example.jsp, 放到根目录下面, 内容如下:

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<title>Example::Hello</title>
<script language="javascript" src="script/prototype.js"></script>
<script language="javascript" src="script/buffalo.js"></script>
<script language="javascript">
var END_POINT="<%=request.getContextPath()%>/bfapp";
var buffalo = new Buffalo(END_POINT);
function hello() {
    var p1 = $("myname").value;
    buffalo.remoteCall("helloService.hello",[p1], function(reply) {
        alert(reply.getResult());
    });
}
</script>
</head>
<body>
    <p>Buffalo Hello World</p>
    <p>&nbsp;</p>
    <form name="form1" method="post" action="">
      输入名字: 
      <input name="myname" type="text" id="myname">
      <input type="button" name="Submit" value="你好!" οnclick="hello()">
    </form>
</body>
</html>

 

6. 编辑HelloService.java

 

package example;
public class HelloService {
public String hello(String name) {
  try {
    // to see the loading div
    Thread.sleep(2000);
  } catch (InterruptedException e) {
    e.printStackTrace();
  }
  return "Hello, " + name;
  }
}

 

编译, 将编译后的类放到WEB-INF/classes下面。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值