AJAX应用手册.docx

上传人:b****5 文档编号:8230132 上传时间:2023-01-30 格式:DOCX 页数:65 大小:65.37KB
下载 相关 举报
AJAX应用手册.docx_第1页
第1页 / 共65页
AJAX应用手册.docx_第2页
第2页 / 共65页
AJAX应用手册.docx_第3页
第3页 / 共65页
AJAX应用手册.docx_第4页
第4页 / 共65页
AJAX应用手册.docx_第5页
第5页 / 共65页
点击查看更多>>
下载资源
资源描述

AJAX应用手册.docx

《AJAX应用手册.docx》由会员分享,可在线阅读,更多相关《AJAX应用手册.docx(65页珍藏版)》请在冰豆网上搜索。

AJAX应用手册.docx

AJAX应用手册

一Ajax回显server端的执行信息

今天有人问"页面可以用ajax通过事件调java方法,但有是我想把java方法执行过程中的某些提示信息自由自动的反馈给页面。

该怎么办",我下来就做了一个demo.现在贴上来,供后来者参考.

我用的是spring环境,所有的controller都继承子Controller;

RegisteController:

用来模拟用户注册的步骤,它会产生一些执行过程中的信息放到一个链表里;

InfoController:

用来把链表中最顶端的那条信息.发送给客户.

用prototype的ajax来发送请求.

发送请求的同时,发送另外一个请求用来得到执行过程中的提示信息.而这个过程递归执行,直到收到"finish" 消息.

jsp文件,用来发送ajax请求和显示回显信息. 

 注意导入的prototype的路径.

1.<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

2.

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

3.

4.    

5.        Testing page

6.        

7.        

8.            function postAjax(){

9.                var myAjax = new Ajax.Request(

10.                    'register.do',

11.                    {

12.                        method:

 'post',

13.                        parameters:

 {username:

 'username', password:

 'password'},

14.                        onComplete:

 doComplete

15.                    }

16.                );

17.                alert("request send.");

18.                getInfo();

19.            }

20.            function getInfo(){

21.                var infoAjax = new Ajax.Request(

22.                    'info.do',

23.                    {

24.                        method:

 'get',

25.                        parameters:

 {},

26.                        onComplete:

 doResult

27.                    }

28.                );

29.            }

30.            

31.            function doResult(req){

32.                if(req.responseText=='finish'){

33.                    return;

34.                }

35.                //alert(req.responseText);

36.                var myDiv = document.createElement("div");

37.                var infoText = document.createTextNode(req.responseText);

38.                myDiv.appendChild(infoText);

39.                $(info).appendChild(myDiv);

40.                //循环发送请求得到执行信息.

41.                getInfo();

42.            }

43.            

44.            function doComplete(){

45.                

46.            }

47.        

48.

49.        

50.        html,body {

51.            font-family:

 Verdana, Arial, Helvetica, sans-serif;

52.            font-size:

 11pt;

53.            margin:

 0;

54.            padding:

 0;

55.            border:

 0 none;

56.            overflow:

 hidden;

57.            height:

 100%;

58.        }

59.        .title{

60.            font-weight:

 bold;

61.        }

62.        

63.    

64.    

65.        

 postAjax();">点击将提交一个ajax请求, 模拟执行用户注册行为. 这个请求得执行过程将显示在下面.

66.        

 400px; height:

 200px; overflow:

 scroll; border:

 solid red 1px;">

67.            The response information comes from server:

 

68.            

69.        

70.    

71.

RegisteController:

1.import java.util.LinkedList;

2.import javax.servlet.http.HttpServletRequest;

3.import javax.servlet.http.HttpServletResponse;

4.

5.import mons.logging.Log;

6.import mons.logging.LogFactory;

7.import org.springframework.web.servlet.ModelAndView;

8.import org.springframework.web.servlet.mvc.Controller;

9.

10.public class RegisteController implements Controller {

11.

12.    private Log log = LogFactory.getLog(getClass());

13.    

14.    public ModelAndView handleRequest(HttpServletRequest arg0,

15.            HttpServletResponse arg1) throws Exception {

16.        String username = arg0.getParameter("username");

17.        String password = arg0.getParameter("password");

18.        log.info("username:

" + username + " password:

" + password);

19.        /**

20.         * 下面的infoList将用来存放执行过程中的提示信息. 

21.         * 之所以用LinkedList是因为LinkedList具有队列操做的特点.

22.         * 最先放进去的信息可以最先被取走.

23.         */

24.        LinkedList infoList = new LinkedList();

25.        /**

26.         * 这里放的信息仅仅是起到模拟作用.

27.         * 我一次性把所有的信息都放进去了.只是为了模拟效果.

28.         * 你可以根据实际需要, 在需要的时候再放入信息.

29.         */

30.        infoList.add("username:

 " + username);

31.        //do something else.

32.        infoList.add("password:

 " + password);

33.        //do something else.

34.        infoList.add("Try to validate username......");

35.        //do something else.

36.        infoList.add("this username is valid to use");

37.        //do something else.

38.        infoList.add("Try to validate password......");

39.        //do something else.

40.        infoList.add("the password is valid to use");

41.        //do something else.

42.        infoList.add("Try to add this user into database......");

43.        //do something else.

44.        infoList.add("try to set entitlement for this user");

45.        //do something else.

46.        infoList.add("user registering ok.");

47.        //do something else.

48.        infoList.add("succeed......");

49.        arg0.getSession().setAttribute("infoList", infoList);

50.        arg1.getWriter().write("succeed");

51.        return null;

52.    }

53.

54.}

55.

InfoController:

1.import java.util.LinkedList;

2.import javax.servlet.http.HttpServletRequest;

3.import javax.servlet.http.HttpServletResponse;

4.import org.springframework.web.servlet.ModelAndView;

5.import org.springframework.web.servlet.mvc.Controller;

6./**

7. * @author Administrator

8. * 这个controller用来向客户端发送执行过程中产生的信息.

9. */

10.public class InfoController implements Controller{

11.

12.    public ModelAndView handleRequest(HttpServletRequest arg0,

13.            HttpServletResponse arg1) throws Exception {

14.        LinkedList list = (LinkedList)arg0.getSession().getAttribute("infoList");

15.        /**

16.         * 为了模拟延迟效果, 这里睡一小会儿.

17.         */

18.        Thread.sleep(1000);

19.        if(list==null){

20.            arg1.getWriter().write("please wait a second.");

21.            return null;

22.        }

23.        if(list.size()==0){

24.            arg1.getWriter().write("finish");

25.            return null;

26.        }

27.        /**

28.         * linkedList.remove()将取走第一条信息.

29.         */

30.        String info = list.remove();

31.        arg1.getWriter().write(info);

32.        return null;

33.    }

34.

35.}

36.

spring配置文件:

1.......

2.    

3.

4......

二AJAX级联菜单

AJAX级联菜单实例

说明ajax级联菜单,例如,一级菜单选择中国,二级菜单列出中国城市;一级菜单选择美国,二级菜单列出美国城市。

数据库脚本count.sql

DROPTABLEIFEXISTS`country`;

CREATETABLE`country`(

`id`int(11)NOTNULLauto_increment,

`name`varchar(50)defaultNULL,

`city`varchar(50)defaultNULL,

PRIMARYKEY(`id`)

)ENGINE=MyISAMDEFAULTCHARSET=utf8;

insertintocountryvalues(1,'中国','沈阳');

insertintocountryvalues(2,'中国','北京');

insertintocountryvalues(3,'美国','洛杉矶');

insertintocountryvalues(4,'美国','纽约');

DAO

packageedu.syict.www.dao;

importjava.util.List;

importorg.hibernate.HibernateException;

importorg.hibernate.Query;

importorg.hibernate.Session;

importorg.hibernate.Transaction;

importedu.syict.www.HibernateSessionFactory;

publicclassDBOperator{

@SuppressWarnings("unchecked")

publicListqueryByName(Stringname){

Sessionsession=HibernateSessionFactory.getSession();

Listlist=null;

Stringhql="SELECTco.cityFROMCountryAScoWHEREco.name=?

";

System.out.println(hql+name);

Transactiontx=null;

try{

tx=session.beginTransaction();

Queryquery=session.createQuery(hql);

query.setString(0,name);

list=query.list();

System.out.println("数据库中记录个数:

"+list.size());

mit();

}catch(HibernateExceptione){

if(tx!

=null)

tx.rollback();

throwe;

}finally{

session.close();

}

returnlist;

}

}

Bean类(Hibernate反向工程)Country.java

packageedu.syict.www.POJO;

@SuppressWarnings("serial")

publicclassCountryimplementsjava.io.Serializable{

privateIntegerid;

privateStringname;

privateStringcity;

publicCountry(){

}

publicCountry(Stringname,Stringcity){

this.name=name;

this.city=city;

}

publicIntegergetId(){

returnthis.id;

}

publicvoidsetId(Integerid){

this.id=id;

}

publicStringgetName(){

returnthis.name;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicStringgetCity(){

returnthis.city;

}

publicvoidsetCity(Stringcity){

this.city=city;

}

}

Country.hbm.xml

xmlversion="1.0"encoding="utf-8"?

>

DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"

"

JSP页面

<%@pagelanguage="java"pageEncoding="UTF-8"%>

<%@pageimport="java.util.*"%>

<%@pageimport="edu.syict.www.dao.*"%>

<%@pageimport="edu.syict.www.POJO.*"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

MyJSP'menu.jsp'startingpage

<%

Country

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1