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

servlet与纯javascript通过ajax交互,对于很多人来说应该很简单。不过还是写写,方便ajax学习的后来者

对于很多人来说应该很简单。不过还是写写,方便Ajax学习的后来者。

虽然js.html是一个纯静态的页面,但是以下的程序必须挂在Tomcat服务器上,才能做到Ajax交互,否则看不出效果的。

Eclipse for javaee注意把做好的工程挂在Tomcat上,才运行Tomcat。

本工程除了JSP必须的Servlet包以外,无须引入其它东西。其实想直接用一个JSP页面完成这个工程的,但是现在搞JSP的,基本上没有人直接在.jsp文件中写东西了吧?后台动作都扔到.java里面了。

立即学习“Java免费学习笔记(深入)”;

一、基本目标

把前台js.html输入框输入的东西,传递到后台名称为ajaxRequest,地址/ajaxRequest的Servlet.java。Servlet.java后台再返回相应的信息给前台js.html,js.html不刷新无跳转,即时响应。

二、基本思想

由于是Servlet3.0,可以采用注解的方式写Servlet,web.xml不用写任何东西,直接让Eclipse生成

里面只需留下如下内容:

  

登录后复制

三、制作过程

1、首先写Servlet.java与js.html哪个都没所谓,反正Ajax交互中,这两个是一体的,不可以割裂。

先看js.html,HTML布局部分很简单,甚至表单都没有,仅有两个输入框。

然后创建Ajax对象XMLHttpRequest的时候,注意不要使用XMLHttpRequest这个关键字,作为Ajax对象XMLHttpRequest的命名,否则一些浏览器处理不了。

nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    Js                  //创建Ajax对象,不同浏览器有不同的创建方法,其实本函数就是一个简单的new语句而已。    function createXMLHttpRequest() {     var XMLHttpRequest1;     if (window.XMLHttpRequest) {       XMLHttpRequest1 = new XMLHttpRequest();     } else if (window.ActiveXObject) {       try {         XMLHttpRequest1 = new ActiveXObject("Msxml2.XMLHTTP");       } catch (e) {         XMLHttpRequest1 = new ActiveXObject("Microsoft.XMLHTTP");       }     }     return XMLHttpRequest1;   }   function ajax() {     //param1与param2就是用户在输入框的两个参数     var param1=document.getElementById("param1").value;     var param2=document.getElementById("param2").value;     var XMLHttpRequest1 = createXMLHttpRequest();     //指明相应页面      var url = "./ajaxRequest";     XMLHttpRequest1.open("POST", url, true);     //这里没法解释,你所有JavaScript的请求头都这样写就对了,不会乱码      XMLHttpRequest1.setRequestHeader("Content-Type",         "application/x-www-form-urlencoded");     //对于ajaxRequest,本js.html将会传递param1与param2给你。      XMLHttpRequest1.send("param1=" + param1 + "¶m2=" + param2);     //对于返回结果怎么处理的问题      XMLHttpRequest1.onreadystatechange = function() {       //这个4代表已经发送完毕之后        if (XMLHttpRequest1.readyState == 4) {         //200代表正确收到了返回结果          if (XMLHttpRequest1.status == 200) {           //弹出返回结果            alert(XMLHttpRequest1.responseText);         } else {           //如果不能正常接受结果,你肯定是断网,或者我的服务器关掉了。            alert("网络连接中断!");         }       }     };   } 

登录后复制

2、之后是Servlet.java,其实doGet与doPost都是在页面上打印东西,但是采取了这种不同的形式。PrintStream是以前JDK的输出流,PrintWriter貌似是JDK1.4之后的输出流。不过这部分太简单了,输入输出流,都是Java的必修课吧?
js.html传param1与param2给此Servlet.java之后,等待这个Servlet.java打印出相应的东西,然后在前台直接通过XMLHttpRequest1.responseText变量读取出来。

package jsServletAjax; import java.io.*;  import javax.servlet.*;  import javax.servlet.http.*;  import javax.servlet.annotation.*;    //说明这个Servlet是没有序列号的  @SuppressWarnings("serial")  //说明这个Servlet的名称是ajaxRequest,其地址是/ajaxRequest //这与在web.xml中设置是一样的  @WebServlet(name = "ajaxRequest", urlPatterns = { "/ajaxRequest" })  public class Servlet extends HttpServlet {    //放置用户之间通过直接在浏览器输入地址访问这个servlet    protected void doGet(HttpServletRequest request,        HttpServletResponse response) throws ServletException, IOException {      PrintStream out = new PrintStream(response.getOutputStream());      response.setContentType("text/html;charSet=utf-8");      out.print("请正常打开此页");   }      protected void doPost(HttpServletRequest request,        HttpServletResponse response) throws ServletException, IOException {     response.setContentType("text/html; charset=utf-8");     PrintWriter pw = response.getWriter();     request.setCharacterEncoding("utf-8");     String param1=request.getParameter("param1");     String param2=request.getParameter("param2");         pw.print("前台传来了参数:param1="+param1+",param2="+param2);     pw.flush();     pw.close();   }  }

登录后复制

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

js+canvas实现滑动拼图验证码功能

红黑树的插入详解及Javascript实现方法示例

js构建二叉树进行数值数组的去重与优化详解

以上就是Servlet3.0与纯javascript通过Ajax交互的实例详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2754468.html

(0)
上一篇 2025年3月8日 06:56:40
下一篇 2025年3月8日 06:56:51

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论