zoukankan      html  css  js  c++  java
  • 团队冲刺第二天--校园百晓生(STDeverything)

    摘要:今天实现了安卓端使用http将用户注册信息存入云服务器mysql数据库。

    遇到问题:安卓端注册请求http成功返回200,但是刷新数据库发现里面并没有数据。

    原因:云服务器数据库相对于云服务器是本地,url地址应为URL="jdbc:mysql://localhost:3306,而我写入了服务器地址号(低级错误找了半天)

    解决方法:URL="jdbc:mysql://localhost:3306

    代码部分:

    package Entity;
    
    public class Users {
    
        public Users() {
            // TODO Auto-generated constructor stub
        }
        
        public String getUserid() {
            return userid;
        }
    
        public void setUserid(String userid) {
            this.userid = userid;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPwd() {
            return pwd;
        }
    
        public void setPwd(String pwd) {
            this.pwd = pwd;
        }
    
        public String getDate() {
            return date;
        }
    
        public void setDate(String date) {
            this.date = date;
        }
    
        private String userid;
        private String username;
        private String pwd;
        private String date;
    
    }
    User
    package Servlet;
    
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    
    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 DBUtil.DBUtil;
    import Entity.Users;
    
    /**
     * Servlet implementation class login_servlet
     */
    @WebServlet("/login_servlet")
    public class login_servlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public login_servlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
         */
        protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            request.setCharacterEncoding("utf-8");
            response.setContentType("text/html;charset=UTF-8");
            String method=request.getParameter("method");
            System.out.println("执行service");
            if(method.equals("register"))
                registerUser(request, response);
            else if(method.equals("login"))
                checkLogin(request, response);
        }
        
        private void registerUser(HttpServletRequest request, HttpServletResponse response) throws IOException {   //用户注册
            Users users=new Users();
            users.setUsername(request.getParameter("name"));
            users.setPwd(request.getParameter("pwd"));
            DBUtil.registerUser(users);
        }
        
        private void checkLogin(HttpServletRequest request, HttpServletResponse response) throws IOException {  //用户登录
            String name=request.getParameter("name");
            String pwd=request.getParameter("pwd");
            response.getWriter().write(DBUtil.checklogin(name, pwd));
        }
        
        
    
    }
    servlet
    public class DBUtil {
    
        private static String model="0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
        private static String URL="jdbc:mysql://localhost:3306/stdeverything?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC";
        private static String username="root";
        private static String password="password";
        public static Connection getConnection() {
            Connection connection=null;
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                connection=DriverManager.getConnection(URL, username, password);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return connection;
        }
        public DBUtil() {
            // TODO Auto-generated constructor stub
        }
        
        private static void closeDB(Connection connection,Statement statement,ResultSet resultSet) {  //关闭连接
            if(connection!=null)
                try {
                    connection.close();
                } catch (SQLException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            if(statement!=null)
                try {
                    statement.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            if(resultSet!=null)
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
        }
        
        public static String getDateString(boolean type) {       //获取当前时间
            Date date=new Date();
            SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            SimpleDateFormat sdf2=new SimpleDateFormat("yyyyMMddHHmmssSSS");
            return type?sdf1.format(date):sdf2.format(date);
        }
        
        public static String getIdentifier() {    //生成编码
            String str="";
            for(int i=0;i<10;i++)
                str+=model.charAt((int)(Math.random()*100)%62);
            return str+getDateString(false);
        }
        
        public static void registerUser(Users users) {   //用户注册
            String sql="insert into user values('"+getIdentifier()+"','"+users.getUsername()+"','"+users.getPwd()+"','"+getDateString(true)+"','')";
            Connection connection=getConnection();
            try {
                Statement statement=connection.createStatement();
                statement.executeUpdate(sql);
                closeDB(connection, statement, null);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.println("用户注册出错");
            }
        }
        
        public static String checklogin(String name,String pwd) {    //检查登录
            JSONObject jsonObject=new JSONObject();
            jsonObject.put("status", "0");
            String sql="select * from user where name='"+name+"'";
            String sql_id=null,sql_pwd=null;
            Connection connection=getConnection();
            ResultSet rs=null;
            try {
                Statement statement=connection.createStatement();
                rs=statement.executeQuery(sql);
                if(rs.next()) {
                    sql_id=rs.getString("id");
                    sql_pwd=rs.getString("pwd");
                    jsonObject.put("id", sql_id);
                    jsonObject.put("name", "yes");
                }else {
                    jsonObject.put("id", "");
                    jsonObject.put("name", "no");
                    jsonObject.put("msg", "用户名不存在");
                }
                closeDB(connection, statement, rs);
                if(jsonObject.get("name").equals("yes")) {
                    if(pwd.equals(sql_pwd)) {
                        jsonObject.put("msg", "登陆成功");
                        jsonObject.put("status", "1");
                    }else {
                        jsonObject.put("msg", "密码不正确");                
                    }
                }
                
                return jsonObject.toString();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.println("登陆时出错");
            }
            return null;
        }
    DBUtil

    打包放入服务器然后再android端请求服务器就ok了!

    数据库:

    明天尝试添加第三方登录(首先考虑腾讯)

  • 相关阅读:
    搜索复习-中级水题
    搜索复习-基础水题(一共12道)
    TCPThree_C杯 Day1
    bzoj1579 道路升级
    bzoj3732 Network(NOIP2013 货车运输)
    bzoj1624 寻宝之路
    bzoj1430 小猴打架
    bzoj2763 飞行路线
    2017-10-28-afternoon-清北模拟赛
    2017-10-28-morning-清北模拟赛
  • 原文地址:https://www.cnblogs.com/dd110343/p/12728386.html
Copyright © 2011-2022 走看看