`

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)
    {
         
    }
  
 }
}

 

 

原文章:Ajax与servlet交互的实例

分享到:
评论

相关推荐

    Ajax和servlet数据交互小实例

    一个ajax数据验证的小实例,可以实现ajax与servlet数据交互并验证数据是否可用

    实例解读Ajax与servlet交互的方法

    主要介绍了Ajax与servlet交互的方法,需要的朋友可以参考下

    Ajax + JSON + Servlet + prototype.js(实现的一个Ajax实例)

    Ajax + JSON + Servlet + prototype.js(实现的一个Ajax实例) 很好的展示了Ajax与JSON的无缝连接与后台的交互。

    Servlet3.0与纯javascript通过Ajax交互的实例详解

    虽然js.html是一个纯静态的页面,但是以下的程序必须挂在Tomcat服务器上,才能做到Ajax交互,否则看不出效果的。 Eclipse for javaee注意把做好的工程挂在Tomcat上,才运行Tomcat。 本工程除了JSP必须的Servlet包...

    使用jquery 的ajax 与 Java servlet的交互代码实例

    主要介绍了使用jquery 的ajax 与 Java servlet的交互代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    AJAX+Servlet实现的数据处理显示功能示例

    主要介绍了AJAX+Servlet实现的数据处理显示功能,结合实例形式分析了前台ajax与后台Servlet生成随机数显示的相关交互操作技巧,需要的朋友可以参考下

    jQuery调用AJAX时Get和post公用的乱码解决方法实例说明

    以前在新浪博客写过js调用AJAX时Get和post的乱码解决办法,但是使用js代码比较繁琐,我们在使用ajax进行数据交互时可以使用js的一个成熟框架—jQuery。 一个网站的设计,不管是注册登录还是分页查找,都需要提交参数...

    《Java-Web应用开发基础》教学课件08课程设计实例.pptx

    Servlet过滤器与Servlet类似,也是一个Java类。定义Servlet过滤器时,要实现位于javax.servlet包中的Filter接口。Filter接口定义了3个抽象方法:init()、doFilter()和destroy()。自己定义的Servlet过滤器必须具体化...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    Java EE Web开发实例精解完整光盘

    第2章 服务器与客房端的交互 例程2-1:奥运网上问卷调查 例程2-2:发送PDF文件到客房端浏览器 例程2-3:客户信息显示栏 例程2-4:获取服务器基本信息 例程2-5:横幅广告系统 例程2-6:利用过滤器限制客房端访问 例程...

    基于DWR的web应用程序实例

    DWR是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员快速开发基于Ajax技术的网站.它允许在浏览器里的代码使 用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。 DWR包含两个...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    8.6.1 实现与ServletAPI的交互 86.2 域模型DomainModel 86.3 驱动模型ModelDriven 8.7 实战检验 8.7.1 Struts2处理表单数据 8.7.2 使用M印类型的request、session、application 8.8 疑难解惑 8.8.1 Struts Prepare ...

    spring web flow demo

    Ajax 事件的处理与 Web Flow 事件的处理相一致,在处理完成后, flow 即可刷新客户端相关 界面代码。 • 与 JSF 整合 通过将 JSF 层层包装,最终可在 Spring Framework 和 Spring Web Flow 中使用 JSF 的各种 组件。...

    JavaScript完全自学宝典 源代码

    示例描述:介绍JavaScript与各种浏览器插件的交互方法。 15.1.html 使用JavaScript操作Java Applet。 15.2.html 在Java Applet中调用JavaScript。 15.3.svg 基本SVG文件。 15.4.svg 使用JavaScript...

    整理后java开发全套达内学习笔记(含练习)

    abstract (关键字) 抽象 ['æbstrækt] access vt.访问,存取 ['ækses]'(n.入口,使用权) algorithm n....Annotation [java] 代码注释 [ænәu'teiʃәn] anonymous adj.匿名的[ә'nɒnimәs]'(反义:directly adv....

    java web 视频、电子书、源码(李兴华老师出版)

    9.3、Servlet与表单 9.4、Servlet生命周期 9.5、取得初始化配置信息 9.6、取得其他内置对象 9.6.1、取得HttpSession实例 9.6.2、取得ServletContext实例 9.7、Servlet跳转 9.7.1、客户端跳转 9.7.2、...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    9.3、Servlet与表单 9.4、Servlet生命周期 9.5、取得初始化配置信息 9.6、取得其他内置对象 9.6.1、取得HttpSession实例 9.6.2、取得ServletContext实例 9.7、Servlet跳转 9.7.1、客户端跳转 9.7.2、服务器...

Global site tag (gtag.js) - Google Analytics