目录

原版代码
修改代码
小结

一、原版代码

客户端:

package com.augtwleve;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;

import net.sf.json.JSONObject;

import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.util.ArrayList;
import java.util.concurrent.TimeUnit;
import java.awt.event.ActionEvent;

public class Httpclientpost extends JFrame {

private JPanel contentPane;
private JTextField textField;
private JTextField textField_1;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Httpclientpost frame = new Httpclientpost();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Httpclientpost() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

textField = new JTextField();
textField.setBounds(139, 45, 66, 21);
contentPane.add(textField);
textField.setColumns(10);

textField_1 = new JTextField();
textField_1.setBounds(139, 104, 66, 21);
contentPane.add(textField_1);
textField_1.setColumns(10);

JLabel label = new JLabel("用户名");
label.setBounds(22, 48, 54, 15);
contentPane.add(label);

JLabel label_1 = new JLabel("密码");
label_1.setBounds(22, 107, 54, 15);
contentPane.add(label_1);

JButton button = new JButton("登录");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {

String urlstring="http://localhost:8080/MyserviceTestyuanchuang/MyserverletTestyuanchuang";
HttpClientBuilder builder=HttpClientBuilder.create();
builder.setConnectionTimeToLive(3000, TimeUnit.MILLISECONDS);
HttpClient client=builder.build();
HttpPost post=new HttpPost(urlstring);

String type="login";
String username=textField.getText();
String password=textField_1.getText();

Jsonobj jsonobj=new Jsonobj();
String jsonstring=jsonobj.json(type, username, password);


NameValuePair pair=new BasicNameValuePair("json", jsonstring);
ArrayList<NameValuePair> param=new ArrayList<>();
param.add(pair);
try {
post.setEntity(new UrlEncodedFormEntity(param,"UTF-8"));
post.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
HttpResponse response=client.execute(post);

int code=response.getStatusLine().getStatusCode();
if(code==HttpURLConnection.HTTP_OK){
HttpEntity entity=response.getEntity();
InputStream is=entity.getContent();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String line=br.readLine();
while(line!=null){
System.out.println(line);
line=br.readLine();
}

}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}








}
});
button.setBounds(139, 182, 93, 23);
contentPane.add(button);

JButton button_1 = new JButton("注册");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String urlstring="http://localhost:8080/MyserviceTestyuanchuang/MyserverletTestyuanchuang";
HttpClientBuilder builder=HttpClientBuilder.create();
builder.setConnectionTimeToLive(3000, TimeUnit.MILLISECONDS);
HttpClient client=builder.build();
HttpPost post=new HttpPost(urlstring);

String type="register";
String username=textField.getText();
String password=textField_1.getText();

Jsonobj jsonobj=new Jsonobj();
String jsonstring=jsonobj.json(type, username, password);


NameValuePair pair=new BasicNameValuePair("json", jsonstring);
ArrayList<NameValuePair> param=new ArrayList<>();
param.add(pair);
try {
post.setEntity(new UrlEncodedFormEntity(param,"UTF-8"));
post.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
HttpResponse response=client.execute(post);

int code=response.getStatusLine().getStatusCode();
if(code==HttpURLConnection.HTTP_OK){
HttpEntity entity=response.getEntity();
InputStream is=entity.getContent();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String line=br.readLine();
while(line!=null){
System.out.println(line);
line=br.readLine();
}

}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}




}
});
button_1.setBounds(29, 182, 93, 23);
contentPane.add(button_1);

JButton button_2 = new JButton("查询");
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

String urlstring="http://localhost:8080/MyserviceTestyuanchuang/MyserverletTestyuanchuang";
HttpClientBuilder builder=HttpClientBuilder.create();
builder.setConnectionTimeToLive(3000, TimeUnit.MILLISECONDS);
HttpClient client=builder.build();
HttpPost post=new HttpPost(urlstring);

String type="query";
String username="";
String password="";

Jsonobj jsonobj=new Jsonobj();
String jsonstring=jsonobj.json(type, username, password);


NameValuePair pair=new BasicNameValuePair("json", jsonstring);
ArrayList<NameValuePair> param=new ArrayList<>();
param.add(pair);
try {
post.setEntity(new UrlEncodedFormEntity(param,"UTF-8"));
post.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
HttpResponse response=client.execute(post);

int code=response.getStatusLine().getStatusCode();
if(code==HttpURLConnection.HTTP_OK){
HttpEntity entity=response.getEntity();
InputStream is=entity.getContent();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String line=br.readLine();
while(line!=null){
System.out.println(line);
line=br.readLine();
}

}
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ClientProtocolException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

}
});
button_2.setBounds(284, 182, 93, 23);
contentPane.add(button_2);

客户端JSON串:

package com.augtwleve;

import net.sf.json.JSONObject;

public class Jsonobj
private String jsonstring;
public Jsonobj(){
}
public String json(String type,String username,String password){
JSONObject obj=new JSONObject();
obj.put("Type", type);
obj.put("username", username);
obj.put("password", password);
String jsonstring= obj.toString();
return

服务器代码:

package com.augtwleve;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;


/**
* Servlet implementation class MyserverletTestyuanchuang
*/
@WebServlet("/MyserverletTestyuanchuang")
public class MyserverletTestyuanchuang extends HttpServlet
private static final long serialVersionUID = 1L;

/**
* @see
public MyserverletTestyuanchuang() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// String username=request.getParameter("username");
// String password=request.getParameter("password");
// username=Encoding.encoding(username);//编码转换

System.out.println("接收到的数据"+request.getParameter("json"));
JSONObject obj=JSONObject.fromObject(request.getParameter("json"));

String type=obj.getString("Type");
String username=obj.getString("username");
String password=obj.getString("password");
Mysqlmanager manager=new Mysqlmanager();
String s=manager.judgement(type, username, password);

response.setHeader("Content-type","text/html;charset=UTF-8");
System.out.println(s);
response.getWriter().append(s);


}

/**
* @see
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub

数据库操作

package com.augtwleve;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.sun.swing.internal.plaf.synth.resources.synth_zh_CN;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
* 在此方法中判断是哪一种类型: 注册(register) 登录(login) 查询(query)
* */
public class Mysqlmanager {
private Connection connection;//私有化
//get connection方法
public Connection getConnection() {
return connection;
}
//单例设计
private static Mysqlmanager manager;
public static synchronized Mysqlmanager newInstance(){
if(manager==null){
manager=new Mysqlmanager();
}
return manager;
}
//在构造器中进行初始化
public Mysqlmanager(){
//注意这是要记得导入mysql的jar包
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/clazz";
String user="root";
String password="123456";
try {
Class.forName(driver);
connection=DriverManager.getConnection(url, user, password);

} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}
public String judgement(String type,String username,String password){
String s="";
if(type.equals("register")){
s= this.register(username, password);
}
if(type.equals("login")){
s=this.login(username, password);
}
if(type.equals("query")){
s="";
s=this.query(username, password);
}
return s;
}

public String register(String username,String password){
String s="";
Pattern p = Pattern.compile("^\\w{0,16}$");
Matcher m = p.matcher(username);
boolean b = m.matches();
//正则判断
if(b==false){
s="用户名不符合规则请重新命名";
}else{
//重名判断
connection=Mysqlmanager.newInstance().getConnection();//注意导包
String sql="select * from user where user_name=? ";
System.out.println("!!!");
PreparedStatement prestate;
try {
prestate = connection.prepareStatement(sql);
prestate.setString(1, username);
// prestate.setString(2, password);
ResultSet set=prestate.executeQuery();
set.last();
int num=set.getRow();
System.out.println(num);
if(num>0){
s="该用户已存在,请重新输入";
}else{
String insert="insert into user(user_name,passerword)values('"+username+"','"+password+"')";
Statement statement=connection.createStatement();
statement.execute(insert);
s="注册成功";
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}
return s;
}
public String login(String username,String password){
String s="";
connection=Mysqlmanager.newInstance().getConnection();//注意导包
String sql="select * from user where user_name=? and passerword=?";
PreparedStatement prestate;
try {
prestate = connection.prepareStatement(sql);
prestate.setString(1, username);
prestate.setString(2, password);
ResultSet set=prestate.executeQuery();
set.last();
int num=set.getRow();
if(num>0){
s="登录成功";
}else{
s="用户名或密码错误,登录失败";
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return s;
}
public String query(String username,String password){
String s="";
JSONObject obj = null;
String sql="select * from user";
connection=Mysqlmanager.newInstance().getConnection();
try {
Statement state=connection.createStatement();
ResultSet set=state.executeQuery(sql);
set.first();
//注意jsonarray的用法和使用的位置,如果放在while循环内将会出错
JSONArray json=json=new JSONArray();
while(!set.isAfterLast()){
JSONObject item=new JSONObject();
item.put("username", set.getString("user_name"));
item.put("password", set.getString("passerword"));
json.add(item);
set.next();
}
obj=new JSONObject();
obj.put("data", json);


} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "error";
}
s="获得的用户名与密码:"+obj.toString();
return

二、修改后

将客户端中的 注册(register) 登录(login) 查询(query)的方法提出。

客户端:

package com.augtwleve;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;

import net.sf.json.JSONObject;

import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.util.ArrayList;
import java.util.concurrent.TimeUnit;
import java.awt.event.ActionEvent;

public class Httpclientpost extends JFrame {

private JPanel contentPane;
private JTextField textField;
private JTextField textField_1;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Httpclientpost frame = new Httpclientpost();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Httpclientpost() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

textField = new JTextField();
textField.setBounds(139, 45, 66, 21);
contentPane.add(textField);
textField.setColumns(10);

textField_1 = new JTextField();
textField_1.setBounds(139, 104, 66, 21);
contentPane.add(textField_1);
textField_1.setColumns(10);

JLabel label = new JLabel("用户名");
label.setBounds(22, 48, 54, 15);
contentPane.add(label);

JLabel label_1 = new JLabel("密码");
label_1.setBounds(22, 107, 54, 15);
contentPane.add(label_1);

JButton button = new JButton("登录");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {

String username=textField.getText();
String password=textField_1.getText();
ClientMethod.newInstance().login(username, password);


}
});
button.setBounds(139, 182, 93, 23);
contentPane.add(button);

JButton button_1 = new JButton("注册");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String username=textField.getText();
String password=textField_1.getText();
ClientMethod.newInstance().register(username, password);
}
});
button_1.setBounds(29, 182, 93, 23);
contentPane.add(button_1);

JButton button_2 = new JButton("查询");
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String username=textField.getText();
String password=textField_1.getText();
ClientMethod.newInstance().query(username, password);
}
});
button_2.setBounds(284, 182, 93, 23);
contentPane.add(button_2);

客户端操作

package com.augtwleve;

import java.awt.event.ActionEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.util.ArrayList;
import java.util.concurrent.TimeUnit;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;

import net.sf.json.JSONObject;

public class ClientMethod {
private static ClientMethod method;
public static synchronized ClientMethod newInstance(){
if(method==null){
method=new ClientMethod();
}
return method;
}
public ClientMethod(){

}
public void login(String username,String password){

String urlstring="http://localhost:8080/MyserviceTestyuanchuang/MyserverletTestyuanchuang";
HttpClientBuilder builder=HttpClientBuilder.create();
builder.setConnectionTimeToLive(3000, TimeUnit.MILLISECONDS);
HttpClient client=builder.build();
HttpPost post=new HttpPost(urlstring);

JSONObject obj=new JSONObject();
obj.put("Type", "login");
obj.put("username", username);
obj.put("password", password);
String jsonstring= obj.toString();

NameValuePair pair=new BasicNameValuePair("json", jsonstring);
ArrayList<NameValuePair> param=new ArrayList<>();
param.add(pair);
try {
post.setEntity(new UrlEncodedFormEntity(param,"UTF-8"));
post.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
HttpResponse response=client.execute(post);

int code=response.getStatusLine().getStatusCode();
if(code==HttpURLConnection.HTTP_OK){
HttpEntity entity=response.getEntity();
InputStream is=entity.getContent();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String line=br.readLine();
while(line!=null){
System.out.println(line);
line=br.readLine();
}

}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
public void register(String username,String password){

String urlstring="http://localhost:8080/MyserviceTestyuanchuang/MyserverletTestyuanchuang";
HttpClientBuilder builder=HttpClientBuilder.create();
builder.setConnectionTimeToLive(3000, TimeUnit.MILLISECONDS);
HttpClient client=builder.build();
HttpPost post=new HttpPost(urlstring);

JSONObject obj=new JSONObject();
obj.put("Type", "register");
obj.put("username", username);
obj.put("password", password);
String jsonstring= obj.toString();

NameValuePair pair=new BasicNameValuePair("json", jsonstring);
ArrayList<NameValuePair> param=new ArrayList<>();
param.add(pair);
try {
post.setEntity(new UrlEncodedFormEntity(param,"UTF-8"));
post.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
HttpResponse response=client.execute(post);

int code=response.getStatusLine().getStatusCode();
if(code==HttpURLConnection.HTTP_OK){
HttpEntity entity=response.getEntity();
InputStream is=entity.getContent();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String line=br.readLine();
while(line!=null){
System.out.println(line);
line=br.readLine();
}

}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
public void query(String username,String password){

String urlstring="http://localhost:8080/MyserviceTestyuanchuang/MyserverletTestyuanchuang";
HttpClientBuilder builder=HttpClientBuilder.create();
builder.setConnectionTimeToLive(3000, TimeUnit.MILLISECONDS);
HttpClient client=builder.build();
HttpPost post=new HttpPost(urlstring);

JSONObject obj=new JSONObject();
obj.put("Type", "query");
obj.put("username", username);
obj.put("password", password);
String jsonstring= obj.toString();

NameValuePair pair=new BasicNameValuePair("json", jsonstring);
ArrayList<NameValuePair> param=new ArrayList<>();
param.add(pair);
try {
post.setEntity(new UrlEncodedFormEntity(param,"UTF-8"));
post.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
HttpResponse response=client.execute(post);

int code=response.getStatusLine().getStatusCode();
if(code==HttpURLConnection.HTTP_OK){
HttpEntity entity=response.getEntity();
InputStream is=entity.getContent();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String line=br.readLine();
while(line!=null){
System.out.println(line);
line=br.readLine();
}

}
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ClientProtocolException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();

服务器

package com.augtwleve;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;


/**
* Servlet implementation class MyserverletTestyuanchuang
*/
@WebServlet("/MyserverletTestyuanchuang")
public class MyserverletTestyuanchuang extends HttpServlet
private static final long serialVersionUID = 1L;

/**
* @see
public MyserverletTestyuanchuang() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// String username=request.getParameter("username");
// String password=request.getParameter("password");
// username=Encoding.encoding(username);//编码转换

String s="";
System.out.println("接收到的数据"+request.getParameter("json"));
JSONObject obj=JSONObject.fromObject(request.getParameter("json"));

String type=obj.getString("Type");
String username=obj.getString("username");
String password=obj.getString("password");

if(type.equals("register")){
s=Mysqlmanager.newInstance().register(username, password);
}
if(type.equals("login")){
s=Mysqlmanager.newInstance().login(username, password);


}
if(type.equals("query")){
s=Mysqlmanager.newInstance().query(username, password);

}
// Mysqlmanager manager=new Mysqlmanager();
// String s=manager.judgement(type, username, password);

response.setHeader("Content-type","text/html;charset=UTF-8");
System.out.println(s);
response.getWriter().append(s);


}

/**
* @see
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub

服务器操作

package com.augtwleve;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.sun.swing.internal.plaf.synth.resources.synth_zh_CN;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
* 在此方法中判断是哪一种类型: 注册(register) 登录(login) 查询(query)
* */
public class Mysqlmanager {
private Connection connection;//私有化
//get connection方法
public Connection getConnection() {
return connection;
}
//单例设计
private static Mysqlmanager manager;
public static synchronized Mysqlmanager newInstance(){
if(manager==null){
manager=new Mysqlmanager();
}
return manager;
}
//在构造器中进行初始化
public Mysqlmanager(){
//注意这是要记得导入mysql的jar包
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/clazz";
String user="root";
String password="123456";
try {
Class.forName(driver);
connection=DriverManager.getConnection(url, user, password);

} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}
public String judgement(String type,String username,String password){
String s="";
if(type.equals("register")){
s= this.register(username, password);
}
if(type.equals("login")){
s=this.login(username, password);
}
if(type.equals("query")){
s="";
s=this.query(username, password);
}
return s;
}

public String register(String username,String password){
String s="";
Pattern p = Pattern.compile("^\\w{0,16}$");
Matcher m = p.matcher(username);
boolean b = m.matches();
//正则判断
if(b==false){
s="用户名不符合规则请重新命名";
}else{
//重名判断
connection=Mysqlmanager.newInstance().getConnection();//注意导包
String sql="select * from user where user_name=? ";
System.out.println("!!!");
PreparedStatement prestate;
try {
prestate = connection.prepareStatement(sql);
prestate.setString(1, username);
// prestate.setString(2, password);
ResultSet set=prestate.executeQuery();
set.last();
int num=set.getRow();
System.out.println(num);
if(num>0){
s="该用户已存在,请重新输入";
}else{
String insert="insert into user(user_name,passerword)values('"+username+"','"+password+"')";
Statement statement=connection.createStatement();
statement.execute(insert);
s="注册成功";
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}
return s;
}
public String login(String username,String password){
String s="";
connection=Mysqlmanager.newInstance().getConnection();//注意导包
String sql="select * from user where user_name=? and passerword=?";
PreparedStatement prestate;
try {
prestate = connection.prepareStatement(sql);
prestate.setString(1, username);
prestate.setString(2, password);
ResultSet set=prestate.executeQuery();
set.last();
int num=set.getRow();
if(num>0){
s="登录成功";
}else{
s="用户名或密码错误,登录失败";
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return s;
}
public String query(String username,String password){
String s="";
JSONObject obj = null;
String sql="select * from user";
connection=Mysqlmanager.newInstance().getConnection();
try {
Statement state=connection.createStatement();
ResultSet set=state.executeQuery(sql);
set.first();

System.out.println("1111111");
JSONArray json=json=new JSONArray();;
while(!set.isAfterLast()){
JSONObject item=new JSONObject();
item.put("username", set.getString("user_name"));
item.put("password", set.getString("passerword"));
json.add(item);
set.next();
}
obj=new JSONObject();
obj.put("data", json);


} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "error";
}
s="获得的用户名与密码:"+obj.toString();
return

小结

1、注意JsonArray的使用方法

2、注意导包,有些jar包必须在lib底下

使用HttpClientdopost编写 客户端、服务器与数据库Demo_json


3、注意将方法单抽出来

4、学会HttpClientdopost的使用

5、编写思路

使用HttpClientdopost编写 客户端、服务器与数据库Demo_apache_02


6

使用HttpClientdopost编写 客户端、服务器与数据库Demo_json_03