六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 909|回复: 0

ajax

[复制链接]

升级  14.67%

18

主题

18

主题

18

主题

秀才

Rank: 2

积分
72
 楼主| 发表于 2013-1-29 13:20:15 | 显示全部楼层 |阅读模式
ajax(Asynchronous JavaScript and XML, 非同步 JavaScript 及 XML技术);两大功能:
   在不重新读取页面的情況下对服务器送出请求,如连动下拉列表呀;
   解析、使用 XML 文件.

function getActDefined(stateVal); {var url = "/servlet/InitAddCustSelect?servCode=" + stateVal;//stateVal是从页面上传到后台servlet的值。        if (window.XMLHttpRequest); {//// Mozilla, Safari.....req = new XMLHttpRequest();;        } else if (window.ActiveXObject); {//IE(可跨浏览器);req = new ActiveXObject("Microsoft.XMLHTTP");;        }        if(req); {req.open("GET", url, true);;req.onreadystatechange = complete;//指定的函式名称后不加括号req.send(null);;        }}
complete函数,接受返回值并解析。
function complete(); {         if (req.readyState == 4); {//request的返回状态;4表示数据已传回if (req.status == 200); {//http接受数据状态;200ok,404文件未找到;500服务器内部错var values = req.responseXML.getElementsByTagName("actDefinedId");;//解析var lables = req.responseXML.getElementsByTagName("name");;document.theForm.Act_define_id.length = values.length;for(var i = 0; i < values.length; i++); {        document.theForm.Act_define_id.options[i].value = values[i].firstChild.data;//读入下拉表。document.theForm.Act_define_id.options[i].text = lables[i].firstChild.data;}}}}

处理业务的servlet:
import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.sql.*;import topway.common.Helper;import topway.business.SelectParam;public class InitAddCustSelect    extends HttpServlet {  public InitAddCustSelect(); {    super();;  }  public void destroy(); {    super.destroy();;  }  public void doGet(HttpServletRequest request, HttpServletResponse response); throws      ServletException, IOException {      response.setContentType("text/xml;CHARSET=utf8");;    response.setHeader("Cache-Control", "no-cache");;    String state = request.getParameter("servCode");;//接收request传来的参数       StringBuffer sb = new StringBuffer(        "<?xml version=\"1.0\" encoding=\"GB2312\"?>");;    sb.append("<addCustSelect>");;    Connection conn = null;    try {      conn = Helper.getConnection();;      SelectParam selectBean = new SelectParam();;      ResultSet actDefine = selectBean.getActDefine(conn, state);;      while (actDefine.next();); {        sb.append("<actDefinedId>" + actDefine.getString(1); + "</actDefinedId>");;        sb.append("<name>" + actDefine.getString(2); + "</name>");;        sb.append("<prepayFee>" + actDefine.getString(3); + "</prepayFee>");;        sb.append("<firstInstallFee>" + actDefine.getString(4); +                  "</firstInstallFee>");;        sb.append("<ipnums>" + actDefine.getString(5); + "</ipnums>");;      }    }    catch (SQLException ex); {      ex.printStackTrace();;    }    finally {      try {        conn.close();;      }      catch (SQLException ex); {        ex.printStackTrace();;      }    }    sb.append("</addCustSelect>");;    PrintWriter out = response.getWriter();;    out.write(sb.toString(););;//输出    out.close();;  }  public void doPost(HttpServletRequest request, HttpServletResponse response); throws      ServletException, IOException {    doGet(request, response);;  }}

加载webapplication时初始化servlet,在web.xml中:
<servlet>                <servlet-name>ServletNames</servlet-name><servlet-class>cn.common.InitAddCustSelect</servlet-class></servlet><servlet-mapping><servlet-name>ServletNames</servlet-name><url-pattern>/servlet/InitAddCustSelect</url-pattern></servlet-mapping>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表