移動App,AJAX異步請求,實現簡單的增、刪、改、查

用ajax發異步請求時,要注意url。「AppServer」爲後臺項目名,「LoginServlet.action」爲web.xml中的<url-pattern></url-pattern>標籤中的內容。html

前臺代碼以下(核心代碼):java

index.html:web

 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:ajax

 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:sql

 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>

 後臺代碼:json

項目結構:服務器

AccessData.java(與數據庫交互)app

 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 }
相關文章
相關標籤/搜索