移动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 }

 

posted @ 2018-01-22 23:02  YuW  阅读(2676)  评论(0编辑  收藏  举报