JSON格式注册登录查询byHttpClientDoPost

这里写图片描述

客户端

这里写图片描述

程序,界面,方法分开。MVC模式
HttpClientMethod
HttpClientManager
mainJFrame

HttpClientManager

HttpClientManager负责管理连接,但是这里没有和HttpClientMethod分开

package com.http.json;



public class HttpClientManager {

    private static HttpClientManager manager;


    public static synchronized HttpClientManager newInstance(){
        if(manager==null){
            manager=new HttpClientManager();
        }
        return manager;
    }


}

HttpClientMethod

/**  HttpClientMethod*/
package com.http.json;

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.Calendar;
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.JSONArray;
import net.sf.json.JSONObject;

public class HttpClientMethod {

private static HttpClientMethod method;


    public static synchronized HttpClientMethod newInstance(){
        if(method==null){
            method=new HttpClientMethod();
        }
        return method;
    }

    /**注册*/

    public String Register(String username,String password){
        String urlString = "http://localhost:8080/MyServiceTest/MyTestServerlet";

        // 创建HttpClientBuilder
        HttpClientBuilder builder = HttpClientBuilder.create();
        builder.setConnectionTimeToLive(3000, TimeUnit.MICROSECONDS);
        // 生成client的builder
        HttpClient client = builder.build();
        HttpPost post = new HttpPost(urlString);// 设置为get方法


        //json


        JSONObject obj = new JSONObject();
        obj.put("type", "register");// 和注册唯一区别
        JSONObject data = new JSONObject();
        data.put("username", username);
        data.put("password", password);
        Calendar calendar = Calendar.getInstance();
        long time = calendar.getTimeInMillis();
        data.put("data", "" + time);
        JSONArray array = new JSONArray();
        array.add(data);
        obj.put("array", array);


        NameValuePair pair1 = new BasicNameValuePair("json", obj.toString());

        ArrayList<NameValuePair> params = new ArrayList<>();
        params.add(pair1);
        try {
            post.setEntity(new UrlEncodedFormEntity(params, "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) {

            e.printStackTrace();
        } catch (ClientProtocolException e) {

            e.printStackTrace();
        } catch (IOException e) {

            e.printStackTrace();
        }

        return "";

    }




    public String Login(String username,String password){

        String urlString = "http://localhost:8080/MyServiceTest/MyTestServerlet";

        // 创建HttpClientBuilder
        HttpClientBuilder builder = HttpClientBuilder.create();
        builder.setConnectionTimeToLive(3000, TimeUnit.MICROSECONDS);
        // 生成client的builder
        HttpClient client = builder.build();
        HttpPost post = new HttpPost(urlString);// 设置为get方法



         //json

        JSONObject obj = new JSONObject();
        obj.put("type", "login");
        JSONObject data = new JSONObject();
        data.put("username", username);
        data.put("password", password);
        Calendar calendar = Calendar.getInstance();
        long time = calendar.getTimeInMillis();
        data.put("data", "" + time);
        JSONArray array = new JSONArray();
        array.add(data);
        obj.put("array", array);


        NameValuePair pair1 = new BasicNameValuePair("json", obj.toString());

        ArrayList<NameValuePair> params = new ArrayList<>();
        params.add(pair1);

        try {
            post.setEntity(new UrlEncodedFormEntity(params, "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) {

            e.printStackTrace();
        } catch (ClientProtocolException e) {

            e.printStackTrace();
        } catch (IOException e) {

            e.printStackTrace();
        }


        return "";
    }


    public void select(){

        String urlString = "http://localhost:8080/MyServiceTest/MyTestServerlet";

        // 创建HttpClientBuilder
        HttpClientBuilder builder = HttpClientBuilder.create();
        builder.setConnectionTimeToLive(3000, TimeUnit.MICROSECONDS);
        // 生成client的builder
        HttpClient client = builder.build();
        HttpPost post = new HttpPost(urlString);// 设置为get方法

        //json      
        JSONObject obj = new JSONObject();
        obj.put("type", "select");// 和注册唯一区别
        JSONObject data = new JSONObject();
        Calendar calendar = Calendar.getInstance();
        long time = calendar.getTimeInMillis();
        data.put("data", "" + time);
        JSONArray array = new JSONArray();
        array.add(data);
        obj.put("array", array);


        NameValuePair pair1 = new BasicNameValuePair("json", obj.toString());

        ArrayList<NameValuePair> params = new ArrayList<>();
        params.add(pair1);
        try {
            post.setEntity(new UrlEncodedFormEntity(params, "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) {

            e.printStackTrace();
        } catch (ClientProtocolException e) {

            e.printStackTrace();
        } catch (IOException e) {

            e.printStackTrace();
        }



    }

}

mainJFrame

JButton btnNewButton = new JButton("注册");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {

                HttpClientMethod.newInstance().Register(textFieldUserName.getText(), textFieldPassword.getText());

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

                HttpClientMethod.newInstance().Login(textFieldUserName.getText(), textFieldPassword.getText());

            }
        });
        **********************************************
        JButton btnNewButton_2 = new JButton("查看所有");
        btnNewButton_2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
            HttpClientMethod.newInstance().select();
            }
        }); 

服务器端

1MyServerlet
2SQLManager
3SQLOperate

package com.serverlet.test;

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.JSON;
import net.sf.json.JSONObject;

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

    /**
     * @see HttpServlet#HttpServlet()
     */
    public MyServerlet() {
        super();

    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String json = request.getParameter("json");
        System.out.println(json);
        JSONObject object = JSONObject.fromObject(json);
        String type = object.getString("type");
        String username = object.getJSONArray("array").getJSONObject(0).getString("username");
        String password = object.getJSONArray("array").getJSONObject(0).getString("password");


        System.out.println(username);
        System.out.println(password);

        String back = "";
        if (type.equals("register")) {

            String username = object.getJSONArray("array").getJSONObject(0).getString("username");
            String password = object.getJSONArray("array").getJSONObject(0).getString("password");

            // 注册
            back = SQLOperate.newInstance().Register(username, password);

            response.setHeader("content-type", "text/HTML;charset=UTF-8");
            response.getWriter().append(back);
        } else if (type.equals("login")) {
            String username = object.getJSONArray("array").getJSONObject(0).getString("username");
            String password = object.getJSONArray("array").getJSONObject(0).getString("password");


            // 登录
            back = SQLOperate.newInstance().Login(username, password);

            response.setHeader("content-type", "text/HTML;charset=UTF-8");

            response.getWriter().append(back);
        } else if (type.equals("select")) {
            //查询
            back = SQLOperate.newInstance().Select();
            response.setHeader("content-type", "text/HTML;charset=UTF-8");
            response.getWriter().append(back);
        }

    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        doGet(request, response);

    }

}


package com.serverlet.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
 * 
 * @author单例设计模式
 * 主要完成数据库的连接
 *
 */

public class SQLManager {
    private Connection conn;


    public Connection getConn() {
        return conn;
    }

    private static SQLManager manager;
    public static synchronized SQLManager newInstance() {
        if (manager == null) {
            manager = new SQLManager();
        }
        return manager;
    }


    private SQLManager() {

        String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/clazz";
        String user = "root";
        String password = "123456";

        try {
            Class.forName(driver);// ��������
            // �����ݿ⽨������
            conn = DriverManager.getConnection(url, user, password);


        } catch (ClassNotFoundException e) {

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

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class SQLOperate {
    public static final int SUCESS = 0;
    public static final int ERRO = 1;
    private static SQLOperate operate;

    public static synchronized SQLOperate newInstance() {
        if (operate == null) {
            operate = new SQLOperate();
        }
        return operate;
    }

    /**
     * 
     * 登录方法
     * 
     */
    public String Login(String username, String password) {
        JSONObject obj = new JSONObject();
        Connection conn = SQLManager.newInstance().getConn();
        try {
            PreparedStatement state = conn.prepareStatement("select *from user where userName=?and password=?");

            state.setString(1, username);
            state.setString(2, password);
            ResultSet set = state.executeQuery();
            set.last();
            if (set.getRow() == 0) {
                obj.put("code", 1);
                obj.put("message", "请先注册");
            } else {
                obj.put("code", 0);
                obj.put("message", "登陆成功");
            }
        } catch (SQLException e1) {
            obj.put("code", 1);
            obj.put("message", "登陆失败");
            e1.printStackTrace();

        }
        return obj.toString();

    }

    /**
     * 
     * 注册方法
     * 
     */

    public String Register(String username, String password) {
        JSONObject obj = new JSONObject();
        Connection conn = SQLManager.newInstance().getConn();
        // 查询
        String sql = "select * from user where userName='" + username + "'";
        try {
            PreparedStatement state = conn.prepareStatement(sql);

            ResultSet set = state.executeQuery();
            set.last();// 游标移动到最后一行
            int num = set.getRow();
            if (num == 0) {
                String register = "insert into user(userName,password)values('" + username + "','" + password + "') ";
                state.execute(register);

                obj.put("code", 0);
                obj.put("message", "注册成功");
                return obj.toString();
            } else if (num == 1) {
                obj.put("code", 0);
                obj.put("message", "用户名已存在");
                return obj.toString();

            }
        } catch (SQLException e) {
            obj.put("code", 1);
            obj.put("message", "服务器异常");
            e.printStackTrace();
        }
        return obj.toString();

    }

    /**
     * 查询方法
     */
    public String Select() {

        JSONObject obj = new JSONObject();
        Connection conn = SQLManager.newInstance().getConn();
        String sql = "select * from user ";
        try {
            PreparedStatement state = conn.prepareStatement(sql);
            ResultSet set = state.executeQuery(sql);
            JSONArray array = new JSONArray();
            JSONObject item = new JSONObject();
            while (!set.isAfterLast()) {
                item.put("username", set.getString("userName"));
                item.put("password", set.getString("password"));
                set.next();
                array.add(item);
            }

            obj.put("data", array);
            obj.put("code", 0);
            obj.put("message", "查询成功");

        } catch (SQLException e) {
            obj.put("code", 1);
            obj.put("message", "查询失败");
            e.printStackTrace();
        }
        return obj.toString();
    }

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值