ajax jQuery+servlet

编写具体的Ajax代码,使用jQuery框架将会节省很多的时间,当我们点击按钮的时候,将一些信息收集起来,然后通过Ajax传递到服务端,然后使用布局修改DOM来实现无刷新的效果。

要想实现ajax,先来看一下$.ajax()的一些常用属性吧:

下面通过Ajax实现登录信息的验证,先来看一下以"GET"的请求方式:

jQuery代码:

 1 <script type="text/javascript" src="<%=basePath%>/Js/jquery-1.8.3.js"></script>
 2 <script type="text/javascript">
 3     $(document).ready(function(){
 4         $("[value=GETsubmit]").click(function(){
 5             $.ajax({
 6                 type: "GET",
 7                 url: "JqAjServlet.do?name="+$("[name=name]").val()+"&pwd="+$("[name=pwd]").val()+"&date="+new Date().getTime(),
 8                 dataType: "text",
 9                 success: function(data){
10                     if(data=="true"){
11                         $("#show").html("===ok==="+"<br/>"+"name="+$("[name=name]").val()+"<br/>"+"pwd="+$("[name=pwd]").val());
12                     }else if(data=="false"){
13                         $("#show").html("==信息不符合==");
14                     }
15                 },
16                 error: function(){
17                     $("#show").html("Error XMLHttpRequest");
18                 }
19             });
20         });
21     });
22 </script>

第1行代码是加载一个jQuery库,这里随意加载一个现有的jQuery库即可。

第7行代码是传递数据,数据为发送请求的地址+发送到服务端的数据。这里为什么没有$.ajax的data属性呢?那是因为当data属性的参数不是字符串时,将自动转换成字符串格式。所以在GET请求中附加在url后,以防止这种自动转换。

第8行代码是指定预期服务端返回的数据类型,这里我们将其指定为“text”文本形式(也可指定为xml、json等格式。json的格式将在另一篇文章中讲解)。

第9行代码是请求成功后回调的函数,“function(data)”这里的data是一个变量,是服务端返回的数据,相当于var data = xmlHttp.responseText();

jsp代码:

1 <form action="">
2 <table border="0">
3     <tr><td>name:</td><td><input type="text" name="name"/></td></tr>
4     <tr><td>password:</td><td><input type="password" name="pwd"/></td></tr>
5     <tr><td></td><td><input type="button" value="GETsubmit"/></td></tr>
6 </table>
7 </form>
8 <div id="show"></div>

servlet代码:

 1 public class JqAjServlet extends HttpServlet {
 2
 3
 4     public void doGet(HttpServletRequest request, HttpServletResponse response)
 5             throws ServletException, IOException {
 6
 7         doPost(request, response);
 8     }
 9     public void doPost(HttpServletRequest request, HttpServletResponse response)
10             throws ServletException, IOException {
11         response.setContentType("application/text; charset=utf-8");
12         PrintWriter out = response.getWriter();
13
14         String name = request.getParameter("name");
15         String pwd = request.getParameter("pwd");
16         System.out.println("name="+name+" pwd="+pwd);
17         if(name.equals("admin") && pwd.equals("123456")){
18             try {
19                 out.write("true");
20             } catch (Exception e) {
21                 e.printStackTrace();
22             }finally{
23                 out.close();
24             }
25         }else{
26             try {
27                 out.write("false");
28             } catch (Exception e) {
29                 e.printStackTrace();
30             }finally{
31                 out.close();
32             }
33         }
34     }
35
36 }

这里需要注意的是第1行代码,response.setContentType("application/text; charset=utf-8"); 这里声明response返回一个text文件。调用response.getWriter().write()方法返回数据。

这样一个简单的ajax验证登录信息的界面就完成了。

当然了,Get方式也是可以提交数据的,不过像一些大型的数据,Get就不够了。我们就需要一个Post一个Form。

下面就看一下如何以Post方式向服务端提交数据:

代码很简单,只有2行代码值得解释一下:

 1 $("[value=POSTsubmit]").click(function(){
 2     $.ajax({
 3         type: "POST",
 4         url: "JqAjServlet.do",
 5         dataType: "text",
 6         data: "name="+$("[name=name1]").val()+"&pwd="+$("[name=pwd1]").val()+"&date="+new Date().getTime(),
 7         success: function(data){
 8             if(data=="true"){
 9                 $("#show1").html("===ok==="+"<br/>"+"name="+$("[name=name1]").val()+"<br/>"+"pwd="+$("[name=pwd1]").val());
10             }else if(data=="false"){
11                 $("#show1").html("==信息不符合==");
12             }
13         },
14         error: function(){
15             $("#show1").html("Error XMLHttpRequest");
16         }
17     });
18 });

第4行代码,这里的参数只为发送请求的地址。

第6行代码是连同请求发送到服务端的数据,前面有说当data属性的参数不为字符串时,将自动转换成字符串格式;这里,我们就需要用到这个功能(比如:dataType属性的参数为json时,将在另一篇文章中讲解)。

好了,这样,简单的Ajax应用就完成了。

时间: 2024-10-24 10:29:07

ajax jQuery+servlet的相关文章

HTML5 + AJAX ( jQuery版本 ) 文件上传带进度条

页面技术:HTML5 + AJAX ( jQuery) 后台技术:Servlet 3.0 jQuery版本:1.9.1 后台Servlet代码这里就省略了,使用的是 AJAX请求遭遇未登录和Session失效的解决方案 这篇文章里面的后台Servlet.所以这里只看前台的JS代码. 首先HTML5用AJAX提交数据先要学习一个HTML5新增加的对象:FormData  FormData 对象可以使用append 方法进行 key - value的数据添加,与以前我们常用的json不同的就是可以异

ajax和servlet交互,表单日历插件,表单验证,form.js

我的index.jsp <body> <a>点我获取数据</a> <table border=1px> <tr> <td>ID</td> <td>姓名</td> <td>地址</td> </tr> </table> </body> 我的servlet: response.setContentType("text/html;char

使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能

使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下拉跟着变化,市级下拉变化时区下拉跟着变化. 使用chinastates表查询 Ajax加载数据 1.这是chinastates表 2.做一个简单php:Ajax_eg.php <!DOCTYPE html><html>    <head>        <meta c

ajax交互servlet返回数据和jdbc模糊查询-中文-已经设置了UTF-8和解决了乱码

1.编码是将字符按一定翻译方式转换成字节存储在内存或外存中,解码是按照一定翻译方式将存储中的字节转换成字符. 2.ASCII是单字节,最高位总为0,相当于只占用了一个字节的7位,2^7=128个字符,相当于键盘上的128个键,有大小写因为字母,有*,%¥#@!+....等这些可显示字符,也有不可以显示的控制符F1,ctr... 而ISO-8859-1是启用了ASCII码的最高位,理论上是能再多128位,实际上没用掉这么多,至于多了那些,你们自己查下表 UTF-8是可变长的,具体中文几个字节,怎么

python web框架企业实战详解(第六期)\第三课时-ajax&amp;jquery&amp;webpy

main.py __author__ = 'Liao' import web import time urls = ( '/gettime','gettime', '/(.*)', 'hello' ) app = web.application(urls, globals()) class gettime: def GET(self): asctime=time.asctime() print asctime return asctime def POST(self): return self.

HTML5+Ajax+Jquery调用Google搜索API实现搜索引擎,支持web,image,news,vedio4种模式!

原文:HTML5+Ajax+Jquery调用Google搜索API实现搜索引擎,支持web,image,news,vedio4种模式! 源代码下载地址:http://www.zuidaima.com/share/1550463589878784.htm web,image,news,vedio4种模式! 已经拿javaniu作出测试,下载即可查看 

Ajax+JQuery留言特效

原文:Ajax+JQuery留言特效 源代码下载地址:Ajax+JQuery留言特效

MVC中处理表单提交的方式(Ajax+Jquery)

MVC中处理表单有很多种方法,这里说到第一种方式:Ajax+Jquery 先看下表单: <form class="row form-body form-horizontal m-t"> <div class="col-md-6"> <div class="form-group"> <label class="col-sm-3 control-label">订单编号:</la

前端学习笔记--9/5~13/5 Ajax, jQuery

周末没有写本周的总结,今天再补上.顺别计划一下这周的学习内容. 上周说的计划本周做一些HTML+CSS+JS的小demo,但是我并没有去做.准确的说,上周基本上我只有星期一到星期三是全力开赴学习的,星期四的晚上熬了一天的夜,从此一直到今天都没有觉得补回来了,依旧是这么的困.周末也是因为这个原因,所以几乎没有学习,就在家睡过去了.果然是人老了精神跟不上了么.气哭. 赶紧开始总结吧.... Ajax JS和ajax jQuery之间的关系. 1. JS是一门前端语言 2. ajax是一门技术,提供一