一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - 實例解讀Ajax與servlet交互的方法

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

2019-11-25 14:21shichen2014 JAVA教程

這篇文章主要介紹了Ajax與servlet交互的方法,需要的朋友可以參考下

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

1.JavaScript部分

  1. var req; 
  2.  /*通過異步傳輸XMLHTTP發(fā)送參數(shù)到ajaxServlet,返回符合條件的XML文檔*/ 
  3.  var url; 
  4.  function getResult() 
  5.  {  
  6.   var f=document.getElementById("form_pub"); 
  7.   var key=f.s.options[f.s.selectedIndex].text; //獲取對select中文本的引用 
  8.  if (window.XMLHttpRequest) 
  9.  { 
  10.   req = new XMLHttpRequest(); 
  11.   url = "ajaxServlet?action="+key+"&bm=UTF-8"
  12.  }else if (window.ActiveXObject) 
  13.  { 
  14.    
  15.   req = new ActiveXObject("Microsoft.XMLHTTP"); 
  16.   url = "ajaxServlet?action="+key+"&bm=gbk"
  17.  } 
  18.  if(req) 
  19.  {  
  20.   req.open("GET",url, true);  
  21.   req.setRequestHeader("Content-Type""text/html;charset=UTF-8"); 
  22.   //這里如果不設(shè)定頭部則會導(dǎo)致 firfox 發(fā)送數(shù)據(jù)錯誤,servlet接受到的參數(shù)為亂碼,在IE中正常 
  23.   req.onreadystatechange = complete;  
  24.   req.send(null); 
  25.   //req.setRequestHeader("Content-Type", "text/xml; charset=UTF-8");  
  26.  } 
  27.  } 
  28.  /*分析返回的XML文檔*/ 
  29.  function complete(){ 
  30.  if (req.readyState == 4) 
  31.  { 
  32.   if (req.status == 200) 
  33.   { 
  34.    var items=document.getElementById("belong"); 
  35.   //以下為解析返回的XML文檔   
  36.    var xmlDoc = req.responseXML; 
  37.    var Node=xmlDoc.getElementsByTagName("type_name"); 
  38.    //var str=new Array(); 
  39.     var str=null
  40.     //清空工作 
  41.     items.innerHTML=""//刪除一個 select內(nèi)的全部內(nèi)容 
  42.  for(var i=0;i<Node.length;i++) 
  43.     {  
  44.      str=Node[i]; 
  45.      //alert(str.childNodes[0].nodeValue); 
  46.      var objectOption=document.createElement("option"); 
  47.       items.options.add(objectOption); 
  48.      //firfox不支持innerText必須用textContent代替 
  49.       if (window.ActiveXObject) 
  50.       {objectOption.innerText=str.childNodes[0].nodeValue;} 
  51.       else 
  52.       {objectOption.textContent=str.childNodes[0].nodeValue;} 
  53.     } 
  54.    } 
  55.   } 
  56.  } 

2.servlet端:

  1. package ajax; 
  2.   
  3. import java.io.IOException; 
  4. import java.io.PrintWriter; 
  5. import javax.servlet.ServletException; 
  6. import javax.servlet.http.HttpServlet; 
  7. import javax.servlet.http.HttpServletRequest; 
  8. import javax.servlet.http.HttpServletResponse; 
  9. import Data_GetConn.GetConn;//這個包是自己寫的為獲取對mysql的引用 
  10. import java.sql.*;//這個包必須有??! 
  11.   
  12.   
  13. public class ajaxServlet extends HttpServlet{ 
  14.  //private static final String CONTENT_TYPE = "text/xml; charset=UTF-8";//這里最好統(tǒng)一用UTF-8進行編碼 
  15.  public void init() throws ServletException{} 
  16.  public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException 
  17.  { 
  18.  response.setContentType("text/xml; charset=UTF-8"); 
  19.  //以下兩句為取消在本地的緩存 
  20.  response.setHeader("Cache-Control""no-cache"); 
  21.   response.setHeader("Pragma""no-cache"); 
  22.  PrintWriter out = response.getWriter(); 
  23.  String action = request.getParameter("action"); 
  24.  String bm = request.getParameter("bm"); 
  25.    
  26.  if(("gbk").equals(bm)) 
  27.  { 
  28.   action=new String(action.getBytes("ISO-8859-1"),"gbk");//將獲得的數(shù)據(jù)用gbk從新編碼?。ǜ兄x董衛(wèi)老師) 
  29.  } 
  30.  else 
  31.  { 
  32.    action=new String(action.getBytes("ISO-8859-1"),"gbk"); 
  33.  } 
  34.  try 
  35.   { 
  36.    GetConn wq=new GetConn(); 
  37.    Connection   con=wq.getCon(); 
  38.    Statement stmt=con.createStatement(); 
  39.    ResultSet rs=stmt.executeQuery("select items from class where main='"+action+"'"); 
  40.    StringBuffer sb = new StringBuffer(); 
  41.     sb.append("<type>"); 
  42.    while(rs.next()) 
  43.    { 
  44.         
  45.    sb.append("<type_name>"+rs.getString(1)+"</type_name>"); 
  46.        
  47.    } 
  48.     //sb.append("<type_name>"+action+"</type_name>"); 
  49.     sb.append("</type>");  
  50.     out.write(sb.toString());//注意這里向jsp輸出的流,在script中的截獲方法 
  51.     out.close(); 
  52.     stmt.close(); 
  53.     con.close(); 
  54.   } 
  55.   catch(Exception ex) 
  56.   { 
  57.        
  58.   } 
  59.    
  60.  } 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲男人的天堂网站 | juliaann厨房大战| 色男人的天堂久久综合 | 色就色综合 | 国产成人综合精品一区 | 国产免费好大好硬视频 | 亚洲欧洲日产国码无码av | 精品视频二区 | 成人123| 超级乱淫寡妇 | 网址在线观看你懂我意思吧免费的 | 国产videos hd| 欧美日韩精品在线观看 | chinese军人@gay| 久久综合香蕉久久久久久久 | 久久精品国产亚洲AV天美18 | 4399h漫画| 人体欣赏孕妇季玥图片 | 特黄a大片免费视频 | 五月天婷婷精品免费视频 | 日日日操 | 亚洲国产精品久久丫 | 99热久久国产精品这里 | 激情三级做爰在线观看激情 | 日韩欧美视频二区 | 俺去俺来也www色官网免费的 | 色综合九九 | 国产一区二区三区高清 | 亚洲精品在线免费看 | 日本一区二区在线不卡 | 好湿好紧太硬了我太爽了网站 | 欧美特黄一级大片 | 麻豆视频免费在线观看 | 国产精品免费一级在线观看 | 男女做污事 | 厕所rxxx| 久久精品国产亚洲AV天美18 | 国产宅男 | narutotsunade全彩雏田 | 99re这里只有精品视频 | 99精品观看 |