发新话题

J2EE下使用AJAX(二) Prototype封装

需提前下载prototype.js并置于自己的项目中,本例实现的功能与上例类似,Prototype对XMLHttpRequest进行了封装,我们可以使用较为简单的方式发送请求。


2.1 Servlet
实际上与上例的Servlet完全一样。内容如下:

package lld.test.ajax;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class PrototypeAjaxServlet extends HttpServlet
{
    private static final long serialVersionUID = -839091745512216332L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException
    {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException
    {
        String uname = req.getParameter("uname");
        String return_str = "Hello, " + uname;
        resp.getOutputStream().print(return_str);
        resp.getOutputStream().close();
        System.out.println(return_str);
    }

}

2.2 JSP
首先,要在页面中引用prototype.js

<script type="text/javascript" src="js/prototype.js"></script>发送请求的HTML代码

<input type="button" value="Prototype"  />发送/接收请求的JavaScript代码




function prototype_ajax()
{
    var url = "PrototypeAjax.do";
    var pars = "uname=London&reqid=" + Math.random();
    var myAjax = new Ajax.Request(
        url,
        {method: 'post', parameters: pars, onComplete: prototype_response}
    );
}

function prototype_response(req)
{
    alert(req.responseText);
}


与使用原始方法相比,该方式更为简洁直观(我最常用的一种)。

在发送请求时,使用了一个随机数作为参数,是因为浏览器缓存的缘故,如果在调试过程中更改了程序,使用随机数参数可以强制程序不使用缓存中的数据,从而可反映出程序最新的变化。

2.3 web.xml
<servlet>
    <servlet-name>;PrototypeAjax</servlet-name>
    <servlet-class>lld.test.ajax.PrototypeAjaxServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>;PrototypeAjax</servlet-name>
    <url-pattern>/PrototypeAjax.do</url-pattern>
</servlet-mapping>
快乐渡过每一天,减肥坚持每一天



编辑 回复 快速回复 TOP
看过 还是需要顶下啦。
编辑 回复 快速回复 TOP
发新话题