激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

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

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

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

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

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

1.JavaScript部分

  1. var req; 
  2.  /*通過異步傳輸XMLHTTP發送參數到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.   //這里如果不設定頭部則會導致 firfox 發送數據錯誤,servlet接受到的參數為亂碼,在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內的全部內容 
  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";//這里最好統一用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");//將獲得的數據用gbk從新編碼!(感謝董衛老師) 
  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.  } 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲一区二区三区在线免费观看 | 一级片国产片 | 欧美一级黄视频 | 免费国产在线视频 | 成人黄色短视频在线观看 | 久久国产亚洲视频 | 在线看毛片的网站 | 中文字幕偷拍 | 国产一区免费在线 | 姑娘第5集高清在线观看 | 一级外国毛片 | 免看一级片| 欧美黄色一级生活片 | 国产超碰人人做人人爱ⅴa 国产精品久久久久久久hd | 国产一区二区久久精品 | 看毛片电影| 日本在线播放一区二区三区 | asian超清日本肉体pics | 免费观看国产精品视频 | 久久精国| 成人在线视频一区 | 久久逼逼 | 国产超碰人人做人人爱 | 国产乱子视频 | 免费国产自久久久久三四区久久 | 久久美女免费视频 | 午夜精品网 | 色综合精品 | 91在线视频导航 | 国产69精品99久久久久久宅男 | 99精品国产视频 | 暖暖免费观看高清完整版电影 | 黄色片免费在线播放 | 狠狠操夜夜爱 | 视频国产一区二区 | 色婷婷综合久久久中字幕精品久久 | 刘亦菲一区二区三区免费看 | 日韩一级电影在线观看 | 国产精品久久久乱弄 | 欧美一级免费视频 | 1级片在线观看 |