移动App,AJAX异步请求,实现简单的增、删、改、查

用ajax发异步请求时,要注意url。“AppServer”为后台项目名,“LoginServlet.action”为web.xml中的<url-pattern></url-pattern>标签中的内容。

前台代码如下(核心代码):

index.html:

 1             $(function() {
 2                 $(‘#login‘).click(function() {
 3                     var account = $("#account").val();
 4                     var passwords = $(‘#passwords‘).val();
 5                     $.ajax({
 6                         url: "http://localhost:8080/AppServer/LoginServlet.action?ajaxType=jsonp",
 7                         dataType: "jsonp",
 8                         jsonpCallback: "jsonpCallback",
 9                         jsonp: "callback",
10                         data: {
11                             account: account,
12                             passwords: passwords,
13                         },
14                         success: function(server) {
15                             if (server.is) {
16                                 alert("登录成功");
17                                 $(location).attr(‘href‘, ‘main.html?account=‘ + account);
18                             } else {
19                                 alert("登录失败:" + server.err);
20                             }
21                         },
22                         error: function(server) {
23                             alert("连接服务器失败");
24                         },
25                     });
26                 });
27                 $(‘#register‘).click(function() {
28                     $(location).attr(‘href‘, ‘register.html‘);
29                 });
30             })

register.html:

 1             $(function() {
 2                 $(‘#register‘).click(function() {
 3                     var islen = ($(‘#password1‘).val().length >= 6 && $(‘#password1‘).val().length <= 12) && ($(‘#password2‘).val().length >= 6 && $(‘#password2‘).val().length <= 12);
 4                     var isID = $(‘#user_id‘).val().length > 0 && $(‘#user_id‘).val().length <= 18;
 5                     if (islen && isID) {
 6                         if ($(‘#password1‘).val() == $(‘#password2‘).val()) {
 7                             $.ajax({
 8                                 type: "post",
 9                                 url: "http://localhost:8080/AppServer/RegisterServlet.action?ajaxType=jsonp",
10                                 dataType: "jsonp",
11                                 jsonpCallback: "jsonpCallback",
12                                 jsonp: "callback",
13                                 data: {
14                                     account: $(‘#account‘).val(),
15                                     passwords: $(‘#password1‘).val(),
16                                     phone: $(‘#phone‘).val(),
17                                     email: $(‘#email‘).val(),
18                                     userId: $(‘#user_id‘).val(),
19                                     userName: $(‘#user_name‘).val(),
20                                     sex: $(‘input:radio:checked‘).val(),
21                                 },
22                                 success: function(server) {
23                                     if (server.is) {
24                                         alert("注册成功");
25                                         $(location).attr(‘href‘, ‘index.html‘);
26                                     } else {
27                                         alert("注册失败");
28                                     }
29                                 },
30                                 error: function(server) {
31                                     alert("连接服务器失败");
32                                 },
33                             });
34                         } else {
35                             alert(‘密码不一致!‘);
36                         }
37                     } else {
38                         if (!isID) {
39                             alert(‘请输入正确的身份证!‘);
40                         } else if (!islen) {
41                             alert(‘密码长度不一致‘);
42                         } else {
43                             alert(‘请输入合法的信息!‘);
44                         }
45                     }
46                 });
47             })

main.html:

  1             $(function() {
  2                 var loc = location.href;
  3                 var n1 = loc.length; //地址的总长度
  4                 var n2 = loc.indexOf("="); //取得=号的位置
  5                 var accounts = decodeURI(loc.substr(n2 + 1, n1 - n2));
  6                 $(‘#select‘).click(function() {
  7                     $(‘#div2‘).show(1500);
  8                     $(‘#div3‘).hide(1500);
  9                     $.ajax({
 10                         url: "http://localhost:8080/AppServer/MainServlet.action?ajaxType=jsonp&Type=select",
 11                         dataType: "jsonp",
 12                         jsonpCallback: "jsonpCallback",
 13                         jsonp: "callback",
 14                         data: {
 15                             account: accounts,
 16                         },
 17                         success: function(server) {
 18                             if (server.is) {
 19                                 $(‘#account‘).val(server.account);
 20                                 $(‘#phone‘).val(server.phone);
 21                                 $(‘#email‘).val(server.email);
 22                                 $(‘#ids‘).val(server.userId);
 23                                 $(‘#name‘).val(server.userName);
 24                                 $(‘#password‘).val(server.passwords);
 25                                 $(‘#sex‘).val(server.sex);
 26                             } else {
 27                                 alert("查看失败!");
 28                             }
 29                         },
 30                         error: function(server) {
 31                             alert("连接服务器失败!");
 32                         },
 33                     });
 34                 });
 35                 $(‘#save‘).click(function() {
 36                     var islen = $(‘#password‘).val().length >= 6 && $(‘#password‘).val().length <= 12;
 37                     var isID = $(‘#ids‘).val().length > 0 && $(‘#ids‘).val().length <= 18;
 38                     if (islen && isID) {
 39                         $.ajax({
 40                             async: true,
 41                             type: "post",
 42                             url: "http://localhost:8080/AppServer/MainServlet.action?ajaxType=jsonp&Type=save",
 43                             dataType: "jsonp",
 44                             jsonpCallback: "jsonpCallback",
 45                             jsonp: "callback",
 46                             data: {
 47                                 account: $(‘#account‘).val(),
 48                                 passwords: $(‘#password‘).val(),
 49                                 phone: $(‘#phone‘).val(),
 50                                 email: $(‘#email‘).val(),
 51                                 userId: $(‘#ids‘).val(),
 52                                 userName: $(‘#name‘).val(),
 53                                 sex: $(‘#sex‘).val(),
 54                             },
 55                             success: function(server) {
 56                                 if (server.is) {
 57                                     alert("修改成功!");
 58                                     $(‘#div2‘).hide(1500);
 59                                 } else {
 60                                     alert("修改失败!");
 61                                 }
 62                             },
 63                             error: function(server) {
 64                                 alert("连接服务器失败!");
 65                             },
 66                         });
 67                     } else {
 68                         if (!isID) {
 69                             alert(‘请输入正确的身份证!‘);
 70                         } else if (!islen) {
 71                             alert(‘密码长度不一致‘);
 72                         } else {
 73                             alert(‘请输入合法的信息!‘);
 74                         }
 75                     }
 76                 });
 77                 $(‘#cancel‘).click(function() {
 78                     $.ajax({
 79                         url: "http://localhost:8080/AppServer/MainServlet.action?ajaxType=jsonp&Type=cancel",
 80                         dataType: "jsonp",
 81                         jsonpCallback: "jsonpCallback",
 82                         jsonp: "callback",
 83                         data: {
 84                             account: accounts,
 85                         },
 86                         success: function(server) {
 87                             if (server.is) {
 88                                 alert("注销成功!");
 89                                 $(location).attr(‘href‘, ‘index.html‘);
 90                             } else {
 91                                 alert("注销失败!");
 92                             }
 93                         },
 94                         error: function(server) {
 95                             alert("连接服务器失败!");
 96                         },
 97                     });
 98                 });
 99                 $(‘#all‘).click(function() {
100                     $(‘#div3‘).show(1500);
101                     $(‘#div2‘).hide(1500);
102                     $.ajax({
103                         url: "http://localhost:8080/AppServer/MainServlet.action?ajaxType=jsonp&Type=all",
104                         dataType: "jsonp",
105                         jsonpCallback: "jsonpCallback",
106                         jsonp: "callback",
107                         success: function(server) {
108                             if (server.is) {
109                                 alert("查看成功!");
110                                 var arrData = [];
111                                 var arr = null;
112                                 for (i = 0; i < server.data.length; i++) {
113                                     if (arr == null) {
114                                         arr = new Array;
115                                     }
116                                     arr.push(server.data[i].userId);
117                                     arr.push(server.data[i].userName);
118                                     arr.push(server.data[i].account);
119                                     arr.push(server.data[i].phone);
120                                     arr.push(server.data[i].email);
121                                     arr.push(server.data[i].passwords);
122                                     arr.push(server.data[i].sex);
123                                     arrData.push(arr);
124                                     arr = null;
125                                 }
126                                 var td = "";
127                                 var table = "";
128                                 if(arrData != null){
129                                     for(var i=0 ; i<arrData.length ; i++){
130                                         var tr = "<tr>";
131                                         for(var j=0 ; j<arrData[i].length; j++){
132                                             td += ‘<td>‘ + arrData[i][j] + ‘</td>‘;
133                                         }
134                                         var tr2 = "</tr>";
135                                         table += (tr + td + tr2);
136                                         td = "";
137                                     }
138                                     $(‘#bodys‘).html(table);
139                                 }
140                             } else {
141                                 alert("查看失败!");
142                             }
143                         },
144                         error: function(server) {
145                             alert("连接服务器失败!");
146                         },
147                     });
148                 });
149             })

web.xml:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
 3   <display-name></display-name>
 4   <servlet>
 5     <servlet-name>LoginServlet</servlet-name>
 6     <servlet-class>com.yuw.servlet.LoginServlet</servlet-class>
 7   </servlet>
 8   <servlet>
 9     <servlet-name>RegisterServlet</servlet-name>
10     <servlet-class>com.yuw.servlet.RegisterServlet</servlet-class>
11   </servlet>
12   <servlet>
13     <servlet-name>MainServlet</servlet-name>
14     <servlet-class>com.yuw.servlet.MainServlet</servlet-class>
15   </servlet>
16   <servlet-mapping>
17     <servlet-name>LoginServlet</servlet-name>
18     <url-pattern>/LoginServlet.action</url-pattern>
19   </servlet-mapping>
20   <servlet-mapping>
21     <servlet-name>RegisterServlet</servlet-name>
22     <url-pattern>/RegisterServlet.action</url-pattern>
23   </servlet-mapping>
24   <servlet-mapping>
25     <servlet-name>MainServlet</servlet-name>
26     <url-pattern>/MainServlet.action</url-pattern>
27   </servlet-mapping>
28 </web-app>

 后台代码:

项目结构:

AccessData.java(与数据库交互)

  1 package com.yuw.jdbc;
  2
  3 import java.io.IOException;
  4 import java.io.PrintWriter;
  5 import java.io.UnsupportedEncodingException;
  6 import java.sql.Connection;
  7 import java.sql.PreparedStatement;
  8 import java.sql.ResultSet;
  9 import java.sql.SQLException;
 10 import java.util.List;
 11
 12 import javax.servlet.http.HttpServletRequest;
 13 import javax.servlet.http.HttpServletResponse;
 14
 15 import com.yuw.servlet.example.JDBCDataBase;
 16 import com.yuw.transfer.DataTransfer;
 17
 18 /**
 19  *
 20  * @author Yuw
 21  * @data 2017-12-20
 22  */
 23 public abstract class AccessData {
 24     public static final int ONE = 1;
 25     protected Connection connection = null;
 26     protected PreparedStatement preparedStatement = null;
 27     protected ResultSet resultSet = null;
 28     // 接收数据
 29     protected List<Object> listDataReceive = null;
 30     public AccessData() {
 31
 32     }
 33     /*
 34      * @dataBase 数据库连接
 35      * @dataTransfer 获得每次连接的数据信息
 36      */
 37     public void connectionJDBC(JDBCDataBase dataBase,DataTransfer<List<Object>> dataTransfer) {
 38         if(this.connection == null){
 39             this.connection = dataBase.example();
 40             this.listDataReceive = dataTransfer.transfer();
 41         }
 42     }
 43     /*
 44      * 删除
 45      */
 46     public int deleteData(String sql){
 47         int msg = 0;
 48         try {
 49             if(listDataReceive != null){
 50                 preparedStatement = connection.prepareStatement(sql);
 51                 int index = 1;
 52                 for(Object object : listDataReceive){
 53                     preparedStatement.setString(index++, (String)object);
 54                 }
 55                 msg = preparedStatement.executeUpdate();
 56             }
 57         } catch (SQLException e) {
 58             // TODO Auto-generated catch block
 59             e.printStackTrace();
 60         }finally{
 61             close();
 62         }
 63         return msg;
 64     }
 65     /*
 66      * 插入
 67      */
 68     public int insertData(String sql){
 69         int msg = 0;
 70         try {
 71             if(listDataReceive != null){
 72                 preparedStatement = connection.prepareStatement(sql);
 73                 int index = 1;
 74                 for(Object object : listDataReceive){
 75                     preparedStatement.setString(index++, (String)object);
 76                 }
 77                 msg = preparedStatement.executeUpdate();
 78             }
 79         } catch (SQLException e) {
 80             // TODO Auto-generated catch block
 81             e.printStackTrace();
 82         }finally{
 83             close();
 84         }
 85         return msg;
 86
 87     }
 88     /*
 89      * 查询
 90      */
 91     public int selectData(String sql){
 92         PreparedStatement preparedStatement = setPreparedStatement(sql);
 93         try {
 94             if(listDataReceive != null){
 95                 int index = 1;
 96                 for(Object object : listDataReceive){
 97                     preparedStatement.setString(index++, (String)object);
 98                     System.out.println((String)object);
 99                 }
100                 resultSet = preparedStatement.executeQuery();
101                 return returnONE(resultSet);
102             }
103
104         } catch (SQLException e) {
105             // TODO Auto-generated catch block
106             e.printStackTrace();
107         }finally{
108             close();
109         }
110         return 0;
111
112     }
113     /*
114      * 判断结果集是否只有一行
115      */
116     public int returnONE(ResultSet resultSet){
117         try {
118             resultSet.last();
119             if(resultSet.getRow() == ONE){
120                 return ONE;
121             }
122         } catch (SQLException e) {
123             // TODO Auto-generated catch block
124             e.printStackTrace();
125         }
126         return 0;
127
128     }
129
130     public PreparedStatement setPreparedStatement(String sql){
131         try {
132             if(this.preparedStatement == null){
133                 this.preparedStatement = connection.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
134             }
135         } catch (SQLException e) {
136             // TODO Auto-generated catch block
137             e.printStackTrace();
138         }
139         return preparedStatement;
140
141     }
142     /*
143      * 处理乱码
144      */
145     public String toCharacterEncoding(String str) throws UnsupportedEncodingException{
146         if(str == null){
147             System.out.println("请传参");
148         }
149         return new String(str.getBytes("iso-8859-1"),"utf-8");
150
151     }
152     /*
153      * 关闭连接
154      */
155     public void close(){
156         if(preparedStatement != null){
157             try {
158                 preparedStatement.close();
159             } catch (SQLException e) {
160                 // TODO Auto-generated catch block
161                 e.printStackTrace();
162             }
163         }
164         if(connection != null){
165             try {
166                 connection.close();
167             } catch (SQLException e) {
168                 // TODO Auto-generated catch block
169                 e.printStackTrace();
170             }
171         }
172     }
173     /*
174      * 与前台交互
175      */
176     public void WriteMsg(int msg,int t,HttpServletRequest request,HttpServletResponse response){
177         try {
178             if(t == msg){
179                 String jsonp = request.getParameter("callback");
180                 PrintWriter out =  response.getWriter();
181                 out.write(jsonp+"({\"is\":true})");
182             }else{
183                 String jsonp = request.getParameter("callback");
184                 PrintWriter out =  response.getWriter();
185                 out.write(jsonp+"({\"is\":false,\"err\":"+"\"账号或密码错误!\""+"})");
186             }
187         } catch (IOException e) {
188             // TODO Auto-generated catch block
189             e.printStackTrace();
190         }
191     }
192
193 }

 LoginServlet.java(登录)

 1 package com.yuw.servlet;
 2
 3 import java.io.IOException;
 4 import java.util.ArrayList;
 5 import java.util.Arrays;
 6 import java.util.List;
 7
 8 import javax.servlet.ServletException;
 9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12
13 import com.yuw.jdbc.AccessData;
14 import com.yuw.servlet.example.SQLserverJDBC;
15 import com.yuw.transfer.DataTransfer;
16
17 /**
18  * @author Yuw
19  * @data 2017-12-20
20  *
21  */
22 public class LoginServlet extends HttpServlet implements
23         DataTransfer<List<Object>> {
24
25     private static final long serialVersionUID = 1L;
26     // 数据传送
27     private List<Object> listDataSend = null;
28
29     public List<Object> getListDataSend() {
30         return listDataSend;
31     }
32
33     public void setListDataSend(List<Object> listDataSend) {
34         this.listDataSend = listDataSend;
35     }
36
37     public void doGet(HttpServletRequest request, HttpServletResponse response)
38             throws ServletException, IOException {
39
40         doPost(request, response);
41     }
42
43     public void doPost(HttpServletRequest request, HttpServletResponse response)
44             throws ServletException, IOException {
45         response.setContentType("text/plain; charset=utf-8");
46
47         ActionListen actionListen = new ActionListen();
48         List<Object> list = new ArrayList<Object>();
49         list.addAll(Arrays.asList(
50                 actionListen.toCharacterEncoding(request.getParameter("account")),
51                 actionListen.toCharacterEncoding(request.getParameter("passwords"))));
52         setListDataSend(list);
53         // 发起数据库连接
54         actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);
55         final String sql = "select * from user_Account where account = ? and password = ?";
56         // 与前台交互
57         actionListen.WriteMsg(ActionListen.ONE,actionListen.selectData(sql), request, response);
58
59     }
60     /*
61      * 监听类
62      */
63     private class ActionListen extends AccessData {
64
65         public ActionListen() {
66
67         }
68
69     }
70
71     public List<Object> transfer() {
72         // TODO Auto-generated method stub
73         return this.listDataSend;
74     }
75
76 }

MainServlet.java(主要功能)

  1 package com.yuw.servlet;
  2
  3 import java.io.IOException;
  4 import java.io.PrintWriter;
  5 import java.sql.PreparedStatement;
  6 import java.sql.SQLException;
  7 import java.util.ArrayList;
  8 import java.util.Arrays;
  9 import java.util.List;
 10
 11 import javax.servlet.ServletException;
 12 import javax.servlet.http.HttpServlet;
 13 import javax.servlet.http.HttpServletRequest;
 14 import javax.servlet.http.HttpServletResponse;
 15
 16 import org.junit.Test;
 17
 18 import com.yuw.jdbc.AccessData;
 19 import com.yuw.servlet.example.SQLserverJDBC;
 20 import com.yuw.transfer.DataTransfer;
 21 import com.yuw.transfer.DataTransferReport;
 22 /**
 23  * @author Yuw
 24  * @data 2017-12-21
 25  *
 26  */
 27 public class MainServlet extends HttpServlet implements DataTransfer<List<Object>>{
 28
 29     private static final long serialVersionUID = 1L;
 30     //数据传送
 31     private List<Object> listDataSend = null;
 32     //数据接收
 33     private List<Object> listDataReceive = null;
 34
 35     public MainServlet(){
 36
 37     }
 38
 39     public List<Object> getListDataReceive() {
 40         return listDataReceive;
 41     }
 42
 43     public void setListDataReceive(DataTransferReport<List<Object>> dataTransferReport) {
 44         this.listDataReceive = dataTransferReport.transfer();
 45     }
 46
 47     public List<Object> getListDataSend() {
 48         return listDataSend;
 49     }
 50
 51     public void setListDataSend(List<Object> listDataSend) {
 52         this.listDataSend = listDataSend;
 53     }
 54
 55     public void doGet(HttpServletRequest request, HttpServletResponse response)
 56             throws ServletException, IOException {
 57
 58         doPost(request, response);
 59     }
 60
 61     public void doPost(HttpServletRequest request, HttpServletResponse response)
 62             throws ServletException, IOException {
 63         response.setContentType("text/plain; charset=utf-8");
 64         ActionListen actionListen = new ActionListen();
 65         List<Object> list = new ArrayList<Object>();
 66         // 查看个人信息
 67         if("select".equals(request.getParameter("Type"))){
 68             System.out.println(request.getParameter("account"));
 69             list.add(actionListen.toCharacterEncoding(request.getParameter("account")));
 70             setListDataSend(list);
 71             actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);
 72             final String sql = "select users.*,user_Account.password from users,user_Account where users.account = user_Account.account and user_Account.account = ?;";
 73             int t = actionListen.selectData(sql);
 74             setListDataReceive(actionListen);
 75             actionListen.WriteMsg(ActionListen.ONE,t,request,response,listDataReceive);
 76         }else if("save".equals(request.getParameter("Type"))){ // 保存
 77             list.addAll(Arrays.asList(actionListen.toCharacterEncoding(request.getParameter("account")),
 78                     actionListen.toCharacterEncoding(request.getParameter("account")),
 79                     actionListen.toCharacterEncoding(request.getParameter("account")),
 80                     actionListen.toCharacterEncoding(request.getParameter("passwords")),
 81                     actionListen.toCharacterEncoding(request.getParameter("userId")),
 82                     actionListen.toCharacterEncoding(request.getParameter("userName")),
 83                     actionListen.toCharacterEncoding(request.getParameter("account")),
 84                     actionListen.toCharacterEncoding(request.getParameter("phone")),
 85                     actionListen.toCharacterEncoding(request.getParameter("email")),
 86                     actionListen.toCharacterEncoding(request.getParameter("sex"))));
 87             setListDataSend(list);
 88             actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);
 89             final String sql = "begin tran saves "+
 90                                "delete users where account=?;"+
 91                                "delete user_Account where account=?;"+
 92                                "insert into user_Account values(?,?);"+
 93                                "insert into users values(?,?,?,?,?,?);"+
 94                                "commit tran saves";
 95             actionListen.WriteMsg(ActionListen.ONE,actionListen.insertData(sql), request, response);
 96         }else if("cancel".equals(request.getParameter("Type"))){ // 注销
 97             list.addAll(Arrays.asList(actionListen.toCharacterEncoding(request.getParameter("account")),
 98                     actionListen.toCharacterEncoding(request.getParameter("account"))));
 99             setListDataSend(list);
100             actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);
101             final String sql = "begin tran deletes "+
102                         "delete users where account=?;"+
103                        "delete user_Account where account=?;"+
104                        "commit tran deletes";
105             actionListen.WriteMsg(ActionListen.ONE,actionListen.deleteData(sql), request, response);
106         }else if("all".equals(request.getParameter("Type"))){ // 查看所有
107             actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);
108             final String sql = "select users.*,user_Account.password from users, user_Account where users.account = user_Account.account;";
109             int t = actionListen.selectAllData(sql);
110             setListDataReceive(actionListen);
111             if(t == 1){
112                 // 拼接JSON数据
113                 int index = 0;
114                 String str = "";
115                 String str1 = "";
116                 String str2 = "";
117                 String str3 = "},";
118                 for(int i=0 ; i<listDataReceive.size() ; i++){
119
120                     if(index <= 6){
121                         for(int j=0 ; j<1 ; j++){
122                             str2 += "\"" + actionListen.flag[index] + "\"" + ":" + "\"" + listDataReceive.get(i) + "\"" +",";
123                         }
124                         if(index++ == 6){
125                             str1 = "{";
126                             index = 0;
127                             str += (str1+str2+str3);
128                             str2 = "";
129                         }
130                     }
131                 }
132                 System.out.println(str);
133                 String jsonp = request.getParameter("callback");
134                 PrintWriter out =  response.getWriter();
135                 out.write(jsonp+"({\"is\":true" + "," + "\"data\"" + ":" + "[" + str + "]" + "})");
136
137             }
138         }
139
140     }
141
142     /*
143      * 监听类
144      */
145     private class ActionListen extends AccessData implements DataTransferReport<List<Object>>{
146         //发送数据
147         private List<Object> listDataSend = null;
148         // 前台标志
149         private final String[] flag = new String[]{"userId","userName","account","phone","email","passwords","sex"};
150         @SuppressWarnings("unused")
151         public List<Object> getListDataSend() {
152             return listDataSend;
153         }
154
155         public void setListDataSend(List<Object> listDataSend) {
156             this.listDataSend = listDataSend;
157         }
158
159         public ActionListen() {
160
161         }
162         public int selectAllData(String sql){
163             List<Object> total = new ArrayList<Object>();
164             List<Object> row = null;
165             try {
166                 PreparedStatement preparedStatement = setPreparedStatement(sql);
167                 resultSet = preparedStatement.executeQuery();
168                 while (resultSet.next()) {
169                     if(row == null){
170                         row = new ArrayList<Object>();
171                         row.addAll(Arrays.asList(resultSet.getString("userId"),
172                                 resultSet.getString("userName"),
173                                 resultSet.getString("account"),
174                                 resultSet.getString("phone"),
175                                 resultSet.getString("email"),
176                                 resultSet.getString("password"),
177                                 resultSet.getString("sex")));
178                         total.addAll(row);
179                     }
180                     row = null;
181                 }
182                 setListDataSend(total);
183                 //if(listDataSend != null){
184                     return 1;
185                 //}
186             } catch (SQLException e) {
187                 // TODO Auto-generated catch block
188                 e.printStackTrace();
189             }
190             return 0;
191
192         }
193         /*
194          * 与前台交互
195          */
196         public void WriteMsg(int msg, int t, HttpServletRequest request,
197                 HttpServletResponse response,List<Object> list) {
198             String data = "";
199             int index = 0;
200             try {
201                 if(t == msg){
202                     String jsonp = request.getParameter("callback");
203                     PrintWriter out =  response.getWriter();
204                     for(Object object : list){
205                         data += "," + "\"" + flag[index++] + "\"" + ":" + "\"" + (String)object + "\"";
206                     }
207                     System.out.println("DATA:"+data);
208                     out.write(jsonp+"({\"is\":true" + data + "})");
209                 }else{
210                     String jsonp = request.getParameter("callback");
211                     PrintWriter out =  response.getWriter();
212                     out.write(jsonp+"({\"is\":false,\"err\":"+"\"账号或密码错误!\""+"})");
213                 }
214             } catch (IOException e) {
215                 // TODO Auto-generated catch block
216                 e.printStackTrace();
217             }
218         }
219         /*
220          * 查询
221          * @see com.yuanwei.jdbc.AccessData#selectData(java.lang.String)
222          */
223         @Override
224         public int selectData(String sql) {
225             PreparedStatement preparedStatement = setPreparedStatement(sql);
226             try {
227                 if(super.listDataReceive != null){
228                     int index = 1;
229                     for(Object object : super.listDataReceive){
230                         preparedStatement.setString(index++, (String)object);
231                         System.out.println((String)object);
232                     }
233                     resultSet = preparedStatement.executeQuery();
234                     while(resultSet.next()){
235                         List<Object> list = new ArrayList<Object>();
236                         list.addAll(Arrays.asList(resultSet.getString("userId"),
237                                 resultSet.getString("userName"),
238                                 resultSet.getString("account"),
239                                 resultSet.getString("phone"),
240                                 resultSet.getString("email"),
241                                 resultSet.getString("password"),
242                                 resultSet.getString("sex")));
243                         setListDataSend(list);
244                     }
245                     return returnONE(resultSet);
246                 }
247
248             } catch (SQLException e) {
249                 // TODO Auto-generated catch block
250                 e.printStackTrace();
251             }finally{
252                 close();
253             }
254             return 0;
255
256         }
257
258         public List<Object> transfer() {
259             // TODO Auto-generated method stub
260             return this.listDataSend;
261         }
262
263     }
264
265     public List<Object> transfer() {
266         // TODO Auto-generated method stub
267         return this.listDataSend;
268     }
269
270 }

RegisterServlet.java(注册)

 1 package com.yuw.servlet;
 2
 3 import java.io.IOException;
 4 import java.util.ArrayList;
 5 import java.util.Arrays;
 6 import java.util.List;
 7
 8 import javax.servlet.ServletException;
 9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12
13 import com.yuw.jdbc.AccessData;
14 import com.yuw.servlet.example.SQLserverJDBC;
15 import com.yuw.transfer.DataTransfer;
16
17 /**
18  *
19  * @author Yuw
20  * @data 2017-12-20
21  *
22  */
23 public class RegisterServlet extends HttpServlet implements
24         DataTransfer<List<Object>> {
25
26     private static final long serialVersionUID = 1L;
27     // 数据传送
28     private List<Object> listDataSend = null;
29
30     public List<Object> getListDataSend() {
31         return listDataSend;
32     }
33
34     public void setListDataSend(List<Object> listDataSend) {
35         this.listDataSend = listDataSend;
36     }
37
38     public void doGet(HttpServletRequest request, HttpServletResponse response)
39             throws ServletException, IOException {
40
41         doPost(request, response);
42     }
43
44     public void doPost(HttpServletRequest request, HttpServletResponse response)
45             throws ServletException, IOException {
46         ActionListen actionListen = new ActionListen();
47         List<Object> list = new ArrayList<Object>();
48         list.addAll(Arrays.asList(actionListen.toCharacterEncoding(request.getParameter("account")),
49                 actionListen.toCharacterEncoding(request.getParameter("passwords")),
50                 actionListen.toCharacterEncoding(request.getParameter("userId")),
51                 actionListen.toCharacterEncoding(request.getParameter("userName")),
52                 actionListen.toCharacterEncoding(request.getParameter("account")),
53                 actionListen.toCharacterEncoding(request.getParameter("phone")),
54                 actionListen.toCharacterEncoding(request.getParameter("email")),
55                 actionListen.toCharacterEncoding(request.getParameter("sex"))));
56         setListDataSend(list);
57         // 发起数据库连接
58         actionListen.connectionJDBC(SQLserverJDBC.getInstance(), this);
59         final String sql = "begin tran inserta "+
60                 "insert into user_Account values(?,?);"+
61                 "insert into users values(?,?,?,?,?,?);"+
62                 "commit tran inserta";
63         // 与前台交互
64         actionListen.WriteMsg(ActionListen.ONE,actionListen.insertData(sql), request, response);
65     }
66
67     private class ActionListen extends AccessData {
68
69         public ActionListen() {
70
71         }
72
73     }
74
75     public List<Object> transfer() {
76         // TODO Auto-generated method stub
77         return this.listDataSend;
78     }
79
80 }

 JDBCDataBase.java(连接数据库的接口)

 1 package com.yuw.servlet.example;
 2
 3 import java.sql.Connection;
 4 /**
 5  *
 6  * @author Yuw
 7  * @data 2017-12-20
 8  * 数据库连接
 9  */
10 public interface JDBCDataBase{
11
12     Connection example();
13 }

SQLserverJDBC.java(具体实现类)

 1 package com.yuw.servlet.example;
 2
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 /**
 6  *
 7  * @author Yuw
 8  * @data 2017-12-20
 9  */
10 public class SQLserverJDBC implements JDBCDataBase{
11     private static final String DriverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
12     private static final String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=TestDB";
13     private static final String UserName = "sa";
14     private static final String UserCipher = "123456c";
15     /*
16      * 单例模式:整个应用只实例化JDBC一个
17      */
18     private SQLserverJDBC() {
19
20     }
21     private static class LazyHolder {
22            private static final SQLserverJDBC sqlserverJDBC = new SQLserverJDBC();
23     }
24
25     public static final SQLserverJDBC getInstance() {
26            return LazyHolder.sqlserverJDBC;
27     }
28     public Connection example() {
29         Connection dataBase = null;
30         try{
31             Class.forName(DriverName);
32             dataBase = DriverManager.getConnection(URL, UserName, UserCipher);
33         } catch (Exception e ){
34             // TODO Auto-generated catch block
35             System.out.println("连接失败");
36             e.printStackTrace();
37         }
38         return dataBase;
39     }
40
41 }

DataTransfer.java(servlet向数据层发送数据的中间价)

1 package com.yuw.transfer;
2
3 public interface DataTransfer<T>{
4     /*
5      * 数据集通讯
6      */
7     T transfer();
8 }

DataTransferReport.java数据层向servlet发送数据的中间价)

 1 package com.yuw.transfer;
 2
 3 /*
 4  * 回送
 5  */
 6 public interface DataTransferReport<T>
 7 {
 8
 9     /*
10      * 数据集通讯
11      */
12     T transfer();
13 }

原文地址:https://www.cnblogs.com/YuWeiXiF/p/8331595.html

时间: 2024-10-08 05:55:41

移动App,AJAX异步请求,实现简单的增、删、改、查的相关文章

数据库基础学习4--表格的 增 删 改 查(简单查询与高级查询)

一.增 C:create 增加,创建,向数据库里面添加数据. insert into Fruit values('K009','苹果',3.0,'高青',90,'') insert into Fruit(Ids,Name,Price,Source,Numbers) values('K010','苹果',3.0,'高青',90) 二.改 U:update修改,从数据库表里面修改数据. update Fruit set Source='烟台' where Ids='K001' 三.删 D:delet

Ajax与ashx异步请求的简单案例

Ajax与ashx异步请求的简单案例: 前台页面(aspx): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=

如何使用angularjs实现ajax异步请求

Sample.html <!DOCTYPE html> <html ng-app="myApp"> <head> <title>form</title> <script type="text/javascript" src="js/angular.min.js"></script> </head> <body> <form name=

MVC&amp;WebFomr对照学习:ajax异步请求

写在前面:由于工作需要,本人刚接触asp.net mvc,虽然webform的项目干过几个.但是也不是很精通.抛开asp.net webform和asp.net mvc的各自优劣和诸多差异先不说.我认为虽然mvc和webform有诸多不同,但是也只是为了达到相同的目的而在各自的机制下采取了不同的手段而已.更何况它们都是基于asp.net框架的.因此在解决mvc开发过程中的问题时,我很容易联想到在webform下同样的问题是如何解决的.以此来作为对照.我姑且把这种方法叫做迁移学习法吧.我以"小孩之

SpringMVC环境下实现的Ajax异步请求(JSON格式数据)

一 环境搭建 首先是常规的spring mvc环境搭建,不用多说,需要注意的是,这里需要引入jackson相关jar包,然后在spring配置文件"springmvc-servlet.xml"中添加json解析相关配置,我这里的完整代码如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schem

原生ajax异步请求基础知识

一.同步交互与异步交互的概念: * 同步交互:客户端向服务器端发送请求,到服务器端进行响应,这个过程中,用户不能做任何其他事情(只能等待响应完才能继续其他请求). * 异步交互:客户端向服务器端发送请求,直到服务器端进行响应,这个过程中,用户可以做其他任何事情(不等): 同步与异步的区别: * 同步交互 1.执行速度相对比较慢 2.响应的是完整的HTML页面 * 异步交互 1. 执行速度相对比较快 2. 响应的是部分数据 二.AJAX的概念:(Asynchronous JavaScript an

通过jquery的ajax异步请求接收返回json数据

jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发送设置的datatype设置为jsonp格式数据或json格式都可以. 代码示例如下: $('#send').click(function () { $.ajax({ type : "GET", url : "a.php", dataType : "jsonp", success : function (data) { $.

09.VUE学习之watch监听属性变化实现类百度搜索栏功能ajax异步请求数据

cmd下安装axios npm install axios 安装好后,会多出node_modules文件夹 思路: 监听data里的word改变时,发送ajax异步请求数据, 把返回的数据赋值给data里的result,再传给模板里 9.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible&qu

ajax异步请求302分析

1.前言 遇到这样一种情况,打开网页两个窗口a,b(都是已经登录授权的),在a页面中退出登录,然后在b页面执行增删改查,这个时候因为授权原因,b页面后端的请求肯定出现异常(对这个异常的处理,进行内部跳转处理),b页面中的ajax请求的回调中就会出现问题,今天遇到了,有种恍然大悟的感觉,打开以前公司的网站发现全都没做任何处理...... 没遇到过错误,永远不知道错误会什么时候出现. 2.问题:在ajax异步请求中,如果服务端出现内部跳转,如何在回调中处理 我们先来看这样一个简单的ajax异步请求