国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

實例解讀Ajax與servlet交互的方法

2019-11-26 15:28:18
字體:
來源:轉載
供稿:網友

本文以實例形式剖析了Ajax與servlet的交互,并且代碼中有較為詳細的注釋,以幫助大家閱讀理解。具體的實現方法如下:

1.JavaScript部分

var req; /*通過異步傳輸XMLHTTP發送參數到ajaxServlet,返回符合條件的XML文檔*/ var url; function getResult() {   var f=document.getElementById("form_pub");  var key=f.s.options[f.s.selectedIndex].text; //獲取對select中文本的引用 if (window.XMLHttpRequest) {  req = new XMLHttpRequest();  url = "ajaxServlet?action="+key+"&bm=UTF-8"; }else if (window.ActiveXObject) {   req = new ActiveXObject("Microsoft.XMLHTTP");  url = "ajaxServlet?action="+key+"&bm=gbk"; } if(req) {   req.open("GET",url, true);   req.setRequestHeader("Content-Type", "text/html;charset=UTF-8");  //這里如果不設定頭部則會導致 firfox 發送數據錯誤,servlet接受到的參數為亂碼,在IE中正常  req.onreadystatechange = complete;   req.send(null);  //req.setRequestHeader("Content-Type", "text/xml; charset=UTF-8");  } } /*分析返回的XML文檔*/ function complete(){ if (req.readyState == 4) {  if (req.status == 200)  {   var items=document.getElementById("belong");  //以下為解析返回的XML文檔     var xmlDoc = req.responseXML;   var Node=xmlDoc.getElementsByTagName("type_name");   //var str=new Array();    var str=null;    //清空工作    items.innerHTML=""; //刪除一個 select內的全部內容 for(var i=0;i<Node.length;i++)    {      str=Node[i];     //alert(str.childNodes[0].nodeValue);     var objectOption=document.createElement("option");      items.options.add(objectOption);     //firfox不支持innerText必須用textContent代替      if (window.ActiveXObject)      {objectOption.innerText=str.childNodes[0].nodeValue;}      else      {objectOption.textContent=str.childNodes[0].nodeValue;}    }   }  } }

2.servlet端:

package ajax;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 Data_GetConn.GetConn;//這個包是自己寫的為獲取對mysql的引用import java.sql.*;//這個包必須有!!public class ajaxServlet extends HttpServlet{ //private static final String CONTENT_TYPE = "text/xml; charset=UTF-8";//這里最好統一用UTF-8進行編碼 public void init() throws ServletException{} public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/xml; charset=UTF-8"); //以下兩句為取消在本地的緩存 response.setHeader("Cache-Control", "no-cache");  response.setHeader("Pragma", "no-cache"); PrintWriter out = response.getWriter(); String action = request.getParameter("action"); String bm = request.getParameter("bm");  if(("gbk").equals(bm)) {  action=new String(action.getBytes("ISO-8859-1"),"gbk");//將獲得的數據用gbk從新編碼!(感謝董衛老師) } else {   action=new String(action.getBytes("ISO-8859-1"),"gbk"); } try  {   GetConn wq=new GetConn();   Connection   con=wq.getCon();   Statement stmt=con.createStatement();   ResultSet rs=stmt.executeQuery("select items from class where main='"+action+"'");   StringBuffer sb = new StringBuffer();    sb.append("<type>");   while(rs.next())   {         sb.append("<type_name>"+rs.getString(1)+"</type_name>");        }    //sb.append("<type_name>"+action+"</type_name>");    sb.append("</type>");     out.write(sb.toString());//注意這里向jsp輸出的流,在script中的截獲方法    out.close();    stmt.close();    con.close();  }  catch(Exception ex)  {       }  }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 赣州市| 德惠市| 东至县| 罗城| 龙门县| 宁晋县| 三都| 汝城县| 浦东新区| 宁蒗| 新野县| 澎湖县| 双鸭山市| 思南县| 贺兰县| 宁强县| 乐至县| 清远市| 松滋市| 清新县| 赫章县| 玉田县| 香格里拉县| 高州市| 龙游县| 涪陵区| 泉州市| 武平县| 林州市| 亚东县| 巴马| 永胜县| 龙里县| 寻乌县| 太保市| 师宗县| 邓州市| 永寿县| 曲松县| 广汉市| 东阿县|