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

服務(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.  } 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 紧身裙女教师miad711在线 | www.日日爱 | 免费观看视频在线播放 | 亚洲免费视频在线 | 四虎精品永久在线网址 | 国内精品免费一区二区三区 | 日本漫画工囗全彩番在线 | 四虎一影院区永久精品 | 国产精品久久久久毛片真精品 | 91制片在线观看 | 好性20岁 | 日本中文字幕在线观看视频 | 亚洲天堂男人网 | 国色天香社区视频免费高清在线观看 | 男女爆操 | 毛片的网站 | 国产午夜小视频 | 青青青视频免费观看 | 亚洲 欧美 国产 日韩 字幕 | 暗卫调教女主肉高h | 日本视频在线观看播放 | 无码毛片内射白浆视频 | 成人福利在线视频免费观看 | 精品免费国产 | 蛮荒的童话未删减在线观看 | 香艳69xxxxx有声小说 | 国产激情在线 | 天天躁天天碰天天看 | ady@ady9.映画网| 国产亚洲综合久久 | 欧美黑大吊 | 东北老女人91p0rny | 欧美综合精品一区二区三区 | 国产清纯白嫩大学生正在播放 | 美女扒开腿让男人桶爽免费gif | 久久视频在线视频观看精品15 | 千金奴隶在线 | 成年美女黄网站色视频大全免费 | 四虎4hu新地址入口 四虎1515h永久 | 五月天精品在线 | 思思91精品国产综合在线 |