登录界面,数据库,服务器,客户端的连接

来源:互联网 发布:启凡网络是培训机构 编辑:程序博客网 时间:2024/05/16 11:59

登录界面,数据库,服务器,客户端的连接

界面
这里写图片描述

数据库:建立表user,添加name和password两个字段
名字可以自己随意取,11,11,是为了后面注册时候判断

客户端
1.loginUtil

package com.example.login;import android.os.Handler;import android.os.Message;import android.util.Log;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.ProtocolException;import java.net.URL;import java.util.Map;import java.util.Set;/** * Created by Administrator on 2016/8/10. */public class LoginUnit {    public static void getDataByGet(final String urlStr, final Handler handler) throws MalformedURLException {        new Thread() {            @Override            public void run() {                super.run();                try {                    URL url1 = new URL(urlStr);                    HttpURLConnection httpURLConnection = (HttpURLConnection) url1.openConnection();                    //设置请求方式:get                    httpURLConnection.setRequestMethod("GET");                    httpURLConnection.setConnectTimeout(5000);                    Log.i("NetUtil", "NetUtil: run"+httpURLConnection.getResponseCode());                    if (httpURLConnection.getResponseCode() == 200) {                        InputStream is = httpURLConnection.getInputStream();                        //将is转换成字符串                        String result = convertIsToString(is);                        Message message = Message.obtain();                        message.what = 1;                        message.obj = result;                        handler.sendMessage(message);                    }                } catch (ProtocolException e) {                    e.printStackTrace();                } catch (MalformedURLException e) {                    e.printStackTrace();                } catch (IOException e) {                    e.printStackTrace();                }            }        }.start();    }    public static void getDataByPost(final String urlStr, final Map<String, Object> map, final Handler handler){        Log.i("NetUtil", "NetUtil: getDataByPost");        new Thread(){            @Override            public void run() {                //super.run();                try {                    URL url = new URL(urlStr);                    HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();                    httpURLConnection.setRequestMethod("POST");                    Set<Map.Entry<String, Object>> set = map.entrySet();                    StringBuilder stringBuilder = new StringBuilder();                    for (Map.Entry<String, Object> entry : set) {                        String key = entry.getKey();                        Object value = entry.getValue();                        stringBuilder.append((key + "=" + value + "&"));                    }                    String s = stringBuilder.toString();                    //开始位置,结束位置(不包含):去掉最后一个”&“                    String params = s.substring(0, s.length() - 1);                    Log.i("NetUtil", "NetUtil: run"+params);                    OutputStream os = httpURLConnection.getOutputStream();                    os.write(params.getBytes());                    Log.i("NetUtil", "NetUtil: run"+httpURLConnection.getResponseCode());                    if (httpURLConnection.getResponseCode() == 200) {                        InputStream is = httpURLConnection.getInputStream();                        String result = convertIsToString(is);                        Message message = Message.obtain();                        message.what = 1;                        message.obj = result;                        Log.i("LoginUtil", "LoginUtil: run"+result);                        handler.sendMessage(message);                    }                } catch (ProtocolException e) {                    e.printStackTrace();                } catch (MalformedURLException e) {                    e.printStackTrace();                } catch (IOException e) {                    e.printStackTrace();                }            }        }.start();    }    private static String convertIsToString(InputStream is) {        ByteArrayOutputStream baos = new ByteArrayOutputStream();        int b;        try {            while ((b = is.read()) != -1) {                baos.write(b);            }        } catch (IOException e) {            e.printStackTrace();        }        return baos.toString();    }}

2.LoginActivity

package com.example.login;import android.Manifest;import android.content.pm.PackageManager;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.app.ActivityCompat;import android.support.v4.content.ContextCompat;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import java.net.MalformedURLException;import butterknife.Bind;import butterknife.ButterKnife;import butterknife.OnClick;public class LoginActivity extends AppCompatActivity {    @Bind(R.id.img_top)    ImageView imgTop;    @Bind(R.id.paw_right)    ImageView pawRight;    @Bind(R.id.paw_left)    ImageView pawLeft;    @Bind(R.id.iv_left)    ImageView ivLeft;    @Bind(R.id.iv_right)    ImageView ivRight;    @Bind(R.id.tv_login)    TextView tvLogin;    @Bind(R.id.tv_login2)    TextView tvLogin2;    @Bind(R.id.tv_login3)    TextView tvLogin3;    @Bind(R.id.tv_login4)    TextView tvLogin4;    @Bind(R.id.user)    ImageView user;    @Bind(R.id.tv_user)    TextView tvUser;    @Bind(R.id.view)    View view;    @Bind(R.id.password)    ImageView imgpas;    @Bind(R.id.tv_password)    TextView tvPassword;    @Bind(R.id.et_user)    EditText etUser;    @Bind(R.id.et_password)    EditText etPassword;    @Bind(R.id.btn_login)    Button btnLogin;    @Bind(R.id.btn_reg)    Button btnReg;    String ss;    String name;    String password;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ButterKnife.bind(this);    }    @OnClick({R.id.btn_login, R.id.btn_reg})    public void onClick(View view) {        switch (view.getId()) {            case R.id.btn_login:                name=etUser.getText().toString();//                password=et2.getText().toString();                Log.i("lx", "onClick");                if (ContextCompat.checkSelfPermission(LoginActivity.this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {                    ActivityCompat.requestPermissions(LoginActivity.this, new String[]{Manifest.permission.INTERNET}, 1);                    Log.i("lx", "no");                } else {                    name = etUser.getText().toString();                    password = etPassword.getText().toString();                    ss = "lg";                    get();                    Log.i("lx", "ok");                }                break;            case R.id.btn_reg:                Log.i("lx", "onClick");                if (ContextCompat.checkSelfPermission(LoginActivity.this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {                    ActivityCompat.requestPermissions(LoginActivity.this, new String[]{Manifest.permission.INTERNET}, 1);                    Log.i("lx", "no");                } else {                    name = etUser.getText().toString();                    password = etPassword.getText().toString();                    ss = "lgg";                    get();                    Log.i("lx", "ok");                }                break;        }    }    Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            //super.handleMessage(msg);            if (msg.what == 1) {                String result = (String) msg.obj;                Toast.makeText(LoginActivity.this, result, Toast.LENGTH_LONG).show();            }        }    };    private void get() {        String path = "http://10.50.7.24:8080/Servlets/LoginServlet";        String url = path + "?name=" + name + "&password=" + password + "&login=" + ss;        try {            Log.i("lx", "get");            LoginUnit.getDataByGet(url, handler);        } catch (MalformedURLException e) {            e.printStackTrace();        }    }    @Override    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {        super.onRequestPermissionsResult(requestCode, permissions, grantResults);        //授权成功        if (requestCode == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {            get();            Log.i("lx", "sc");        }    }}

Xml界面

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.example.login.MainActivity"    android:weightSum="1">    <ImageView        android:id="@+id/img_top"        android:src="@mipmap/top"        android:layout_width="match_parent"        android:layout_height="wrap_content" />    <ImageView        android:id="@+id/paw_right"        android:src="@mipmap/paw"        android:layout_width="40dp"        android:layout_height="wrap_content"        android:layout_above="@+id/et_user"        android:layout_alignRight="@+id/et_user"        android:layout_alignEnd="@+id/et_user"        android:layout_marginRight="66dp"        android:layout_marginEnd="66dp" />    <ImageView        android:id="@+id/paw_left"        android:src="@mipmap/paw"        android:layout_width="40dp"        android:layout_height="wrap_content"        android:layout_above="@+id/tv_user"        android:layout_marginLeft="86dp"        />    <ImageView        android:id="@+id/iv_left"        android:src="@mipmap/armleft"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignBottom="@+id/img_top"        android:layout_alignRight="@+id/paw_left"        android:layout_alignEnd="@+id/paw_left"        android:visibility="gone"/>    <ImageView        android:id="@+id/iv_right"        android:src="@mipmap/armright"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignBottom="@+id/img_top"        android:layout_alignRight="@+id/paw_right"        android:layout_alignEnd="@+id/paw_right"        android:visibility="gone"/>    <TextView        android:id="@+id/tv_login"        android:layout_centerHorizontal="true"        android:layout_width="338dp"        android:layout_height="1dp"        android:background="#ff0000"        android:layout_marginTop="70dp" />    <TextView        android:id="@+id/tv_login2"        android:layout_centerHorizontal="true"        android:layout_width="338dp"        android:layout_height="1dp"        android:background="#ff0000"        android:layout_marginTop="270dp" />    <TextView        android:id="@+id/tv_login3"        android:layout_width="1dp"        android:layout_height="200dp"        android:background="#ff0000"        android:layout_marginTop="70dp" />    <TextView        android:id="@+id/tv_login4"        android:layout_alignParentRight="true"        android:layout_width="1dp"        android:layout_height="200dp"        android:background="#ff0000"        android:layout_marginTop="70dp" />        <ImageView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:src="@mipmap/user"            android:id="@+id/user"            android:layout_below="@id/tv_login"            android:layout_marginLeft="50dp"            android:layout_marginTop="30dp"/>    <TextView        android:id="@+id/tv_user"        android:text="账号"        android:textSize="20sp"        android:layout_toRightOf="@id/user"        android:layout_alignBottom="@id/user"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />        <View            android:layout_width="wrap_content"            android:layout_height="1dp"            android:layout_toRightOf="@id/user"            android:layout_alignBottom="@id/user"            android:layout_marginRight="20dp"            android:background="#ff0000"></View>        <EditText            android:id="@+id/et_user"            android:layout_alignBottom="@id/user"            android:layout_toRightOf="@id/tv_user"            android:layout_width="220dp"            android:hint="用户名/手机号"            android:background="@null"            android:layout_height="wrap_content"            />    <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@mipmap/password"        android:id="@+id/password"        android:layout_below="@id/user"        android:layout_alignParentLeft="true"        android:layout_marginLeft="50dp"        android:layout_marginTop="30dp"/>    <TextView        android:id="@+id/tv_password"        android:text="密码"        android:textSize="20sp"        android:layout_toRightOf="@id/password"        android:layout_alignBottom="@id/password"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <View        android:layout_width="wrap_content"        android:layout_height="1dp"        android:layout_toRightOf="@id/user"        android:layout_alignBottom="@id/password"        android:layout_marginRight="20dp"        android:background="#ff0000"        android:id="@+id/view"></View>    <EditText        android:id="@+id/et_password"        android:layout_alignBottom="@id/tv_password"        android:layout_toRightOf="@id/tv_user"        android:layout_width="220dp"        android:layout_height="wrap_content"        android:hint="请输入密码"        android:background="@null"        />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="登录"        android:id="@+id/btn_login"        android:layout_below="@+id/tv_login2"        android:layout_alignRight="@+id/view"        android:layout_alignEnd="@+id/view" />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="注册"        android:id="@+id/btn_reg"        android:layout_below="@+id/tv_login2"        android:layout_alignLeft="@+id/password"        android:layout_alignStart="@+id/password" /></RelativeLayout>

服务端
1.LoginUtil

package servlet;import java.beans.Statement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class LoginUtil {    private static String url = "jdbc:mysql://localhost:3306/login?useUnicode=true&characterEncoding=UTF-8";    private static String user = "root";    private static String password = "1233";    static{        //ע注册驱动        try {            Class.forName("com.mysql.jdbc.Driver");        } catch (ClassNotFoundException e) {            e.printStackTrace();        }    }    //获得数据库连接    public static Connection getConnection() throws SQLException{        return DriverManager.getConnection(url, user, password);     }    //关闭数据库连接    public static void close(Connection conn,PreparedStatement pStatement,ResultSet rs) throws SQLException{        try{            if(rs!=null){                rs.close();            }        }catch(Exception e){            e.printStackTrace();        }finally {             try {                 if(pStatement!=null){                     pStatement.close();                     }            } catch (SQLException e) {                e.printStackTrace();            }finally {                if(conn!=null){                     conn.close();                }            }        }    }}

2.loginServlet

package servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class LoginServlet */public class LoginServlet extends HttpServlet {    private static final long serialVersionUID = 1L;    /**     * @see HttpServlet#HttpServlet()     */    public LoginServlet() {        super();        // TODO Auto-generated constructor stub    }    /**     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)     */    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub        //接收客户端传的参数                //返回结果给客户端                String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");                String password = new String(request.getParameter("password").getBytes("ISO-8859-1"),"UTF-8");                String ss=new String(request.getParameter("login").getBytes("ISO-8859-1"),"GBK");                response.setCharacterEncoding("utf-8");                System.out.println("get:name:"+name+"password"+password+"ss"+ss);                User user =new User(name, password);                Boolean boolean1;                PrintWriter printWriter=response.getWriter();                if("lg".equals(ss)){                    UserDao userDao=UserDao.getInstance();                    boolean1 = UserDao.getInstance().select(user);                    System.out.println("boolean1"+boolean1);                    if (boolean1==false) {                        printWriter.print("登录成功");                    }else {                        printWriter.print("登录失败,请注册");                    }                }else {                    UserDao userDao=UserDao.getInstance();                    boolean1 = userDao.select(user);                    if (boolean1==true) {                        UserDao.getInstance().save(user);                        System.out.println("user"+user);                        printWriter.print("注册成功");                    }else {                        printWriter.print("已有用户,注册失败");                    }                }                printWriter.flush();                printWriter.close();    }    /**     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)     */    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub    }}

3.DMManage

package servlet;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class DMmanager {    Connection connection=null;    PreparedStatement pStatement=null;    ResultSet resultSet=null;    public Boolean Select(String name,String password) throws SQLException{        String sql="select * from user where name='"+name+"'and password='"+password+"'";        try {            connection=LoginUtil.getConnection();            pStatement=connection.prepareStatement(sql);            resultSet=pStatement.executeQuery();            if (resultSet.next()) {                return true;            }        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }finally{            LoginUtil.close(connection,pStatement, resultSet);        }        return false;    }}

4.User

package servlet;public class User {private String name;private String password;public User(String name, String password) {    super();    this.name = name;    this.password = password;}public String getName() {    return name;}public void setName(String name) {    this.name = name;}public String getPassword() {    return password;}public void setPassword(String password) {    this.password = password;}}

5.UserDao

package servlet;import java.net.URLPermission;import java.sql.Connection;import java.sql.Date;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;/** *  * @author Administrator * */public class UserDao {    private static UserDao instance =null;    static Connection conn=null;    PreparedStatement st=null;    ResultSet rs=null;    private UserDao(){    }    public static UserDao getInstance() {        //return instance;        if(instance==null){            instance=new UserDao();        }//      try {//          if (conn==null || conn.isClosed()) {//              conn=LoginUtil.getConnection();//          }//          //      } catch (SQLException e) {//          // TODO Auto-generated catch block//          e.printStackTrace();//      }        return instance;    }    public void save(User user){        String sql="insert into user value(?,?)";             try {                st=conn.prepareStatement(sql);                st.setString(1,user.getName());                 st.setString(2, user.getPassword());                 System.out.println("getname"+user.getName()+"getpassword"+user.getPassword());                 st.executeUpdate();            } catch (SQLException e) {                e.printStackTrace();            }finally {                try {                    LoginUtil.close(conn, st,rs);                } catch (SQLException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }            }    }    public boolean select(User user) {        // TODO Auto-generated method stub        String sql="select *  from user where name=? && password=?";        try{             conn=LoginUtil.getConnection();             st=conn.prepareStatement(sql);             st.setString(1,user.getName());             st.setString(2, user.getPassword());             rs= st.executeQuery();             if(translate(rs).size()==0){                 return  true;             }        }catch(Exception e){            e.printStackTrace();        }finally {//          try {//          //  LoginUtil.close(conn, st,rs);//          } catch (SQLException e) {//              // TODO Auto-generated catch block//              e.printStackTrace();//          }        }        return  false;    }    private List<User> translate(ResultSet rs) throws SQLException{        List<User>  l=new ArrayList<User>();        while(rs.next()){            l.add(new User(rs.getString("name"),rs.getString("password")));        }        return l;    }    public void setConn(Connection conn) {        this.conn = conn;    }    public void opeanTrasaction() throws SQLException{        if(conn==null||conn.isClosed()){            conn=LoginUtil.getConnection();        }        conn.setAutoCommit(false);    }    public void commit() throws SQLException{        conn.commit();    }    public void rollback() throws SQLException{        conn.rollback();    }    public void close() throws SQLException{        LoginUtil.close(conn, st, rs);    }}

剩下就是复制代码喽。。

0 0
原创粉丝点击