• Java语言实现简单的登陆注册


    1.登录注册

    1.1数据库设计

    create table USER_INFO(
          id number not null,
          name varchar2(20) not null,
          pass varchar2(20)
    )
    insert into USER_INFO values(1,'zhang','121314');

    1.2 新建项目

    1.2.1 添加项目说需要的包  即连接数据库的ojdbc的jar包

    1.2.2编写连接数据库的工具类

    package org.user.util;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class DBUtil {
        private static String driver="oracle.jdbc.driver.OracleDriver";
        private static String url="jdbc:oracle:thin:@localhost:1521:orcl";
        private static String user="yongl";
        private static String passwd="121314";
        public static Connection getConnection() {
            try {
                Class.forName(driver);
                return DriverManager.getConnection(url, user, passwd);
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
        public static void closeConn(Connection conn,Statement stm , ResultSet rs ) {
    
            if(stm!=null){
                try {
                    stm.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
    
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(rs!=null){
                try{
                    rs.close();
                }catch(SQLException e){
                    e.printStackTrace();
                }
            }
        }
        public static void main(String[] args) {
    
            System.out.println(getConnection());
        }
    }

    运行效果:

    连接成功。

    1.2.3 编写实体类

    package org.user.entity;
    
    public class User {
        private int uid;
        private String userName;
        private String userPass;
        public int getUid() {
            return uid;
        }
        public void setUid(int uid) {
            this.uid = uid;
        }
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        public String getUserPass() {
            return userPass;
        }
        public void setUserPass(String userPass) {
            this.userPass = userPass;
        }
        @Override
        public String toString() {
            return "User [uid=" + uid + ", userName=" + userName + ", userPass=" + userPass + "]";
        }
        
        
    }

    1.2.4 编写dao方法

    package org.user.dao;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import org.user.entity.User;
    import org.user.util.DBUtil;
    
    public class UserDao {
        //根据用户名查找用户
        public User findUserByName(String userName){
            //编写sql语句
            String sql="select * from USER_INFO where name=?";
            //获得连接
            Connection conn= DBUtil.getConnection();
            //有返回的结果
            ResultSet rs= null;
            //实例化一个User对象
            User user = new User();
            try {
                //用来发送sql语句的
                PreparedStatement ps = conn.prepareStatement(sql);
                //设置要传入的参数,这里是userN
                ps.setString(1, userName);
                //执行sql语句
                rs=ps.executeQuery();
                //如果能找到结果
                if(rs.next()){
                    //则把找到的结果一一set进User对象中
                    user.setUid(rs.getInt(1));
                    user.setUserName(rs.getString(2));
                    user.setUserPass(rs.getString(3));
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            finally {//关闭连接
                DBUtil.closeConn(conn, null, rs);
            }
            //最后要把这个user返回出去
            return user;
            
        }
        
        //添加用户
        //在这里把整个用户对象传进来
        public int addUser(User user){
            //编写sql语句
            String sql = "insert into USER_INFO values(?,?,?)";
            Connection conn= DBUtil.getConnection();
            //有返回的结果
            ResultSet rs= null;
            int i=0;
            try {
                PreparedStatement ps = conn.prepareStatement(sql);
                //这些参数是要保存到数据的
                ps.setInt(1, user.getUid());
                ps.setString(2, user.getUserName());
                ps.setString(3, user.getUserPass());
                //执行sql语句
                i=ps.executeUpdate();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                DBUtil.closeConn(conn, null, rs);
            }
        return i;
        }
        public static void main(String[] args) {
            UserDao dao = new UserDao();
            User i = dao.findUserByName("zhang");
            System.out.println(i.getUserPass());
            
        }
    }

    运行结果

    1.2.5 编写servlet

    a)添加用户的servlet

    package org.user.servlet;
    
    import java.io.IOException;
    
    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 org.user.dao.UserDao;
    import org.user.entity.User;
    
    @WebServlet("/addServlet")
    public class AddUserServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
         
        protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                    //设置编码
                    request.setCharacterEncoding("utf-8");
                    response.setCharacterEncoding("utf-8");
                    //获取从页面中提交过来的数据
                    int id = Integer.parseInt(request.getParameter("id")) ;//数据类型转换
                    String userName = request.getParameter("name");
                    String userPass = request.getParameter("pass");    
                    
                    User user = new User();
                    user.setUid(id);
                    user.setUserName(userName);
                    user.setUserPass(userPass);
                    
                    //调用dao方法
                    UserDao dao = new UserDao();
                    int i=dao.addUser(user);
                    if(i==1){
                        request.getRequestDispatcher("index.jsp").forward(request, response);
                    }
        }
    
    }

     b)查询用户的servlet

    package org.user.servlet;
    
    import java.io.IOException;
    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 org.user.dao.UserDao;
    import org.user.entity.User;
    import org.user.service.LoginService;
     
    @WebServlet("/loginServlet")
    public class LoginServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
        
        protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //设置编码
            request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
            //获取从页面中提交过来的数据
            String userName = request.getParameter("name");
            String userPass = request.getParameter("pass");
            
            LoginService service = new LoginService();
            //调用service方法 把用户名 密码传入给service
            boolean flag = service.checkUser(userName, userPass);
            String msg = flag?"success":"error";
            
            request.setAttribute("msg", msg);
            if(msg=="success"){
                request.getRequestDispatcher("index.jsp").forward(request, response);    
            }
            else{
                System.out.println("账户名或密码错误");
            }
        }
    
    }

     service方法

    package org.user.service;
    
    import org.user.dao.UserDao;
    import org.user.entity.User;
    
    public class LoginService {
        public boolean checkUser(String userName, String password) {
            //在这里调用dao方法
            UserDao dao = new UserDao();
            //把名字传入对象中查询
            User user = dao.findUserByName(userName);
            System.out.println(user);
            //山木运算  如果找到了user 并且 自己输入的password 跟数据库查出来的user.getUserPass() 一致 则返回true 否则返回false
            return user != null && password.equals(user.getUserPass()) ? true : false;
            
        
            /*if(user != null){
                if(password.equals(user.getUserPass())){
                    return true;
                }
            }
            return false;*/
        }
    
    }

     1.2.6登陆页面

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="utf-8">
            <title></title>
        </head>
        
        <body >
        <form method="post" action="loginServlet">
             用户名:<input type="text" name="name"/><br/><br/>
             密码:<input type="password" name="pass"/><br/><br/>
             <input type="submit" > 
        </form>
        </body>
    
    </html>

     运行效果:

    1.2.7注册页面

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <form method="post" action="addServlet">
             学号:<input type="text" name="id"/><br/><br/>
             姓名:<input type="text" name="name"/><br/><br/>
             密码<input type="password" name="pass"/><br/><br/>
             <input type="submit" > 
        </form>
    </body>
    </html>

  • 相关阅读:
    Spring实现AOP的4种方式(转)
    【转】一个不错的eclipse反编译插件
    spring配置事务
    使用XFire+Spring构建Web Service(一)——helloWorld篇
    WebService到底是什么?(转)
    ContextLoaderListener作用详解(转)
    SVN检出资源文件
    ExtJS4.2学习(21)动态菜单与表格数据展示操作总结篇2
    WP8_当滚动到滚动条的70%时,自动加载数据效果实现
    WP8__从windowsphone app store 中根据app id获取应用的相关信息(下载网址及图片id等)
  • 原文地址:https://www.cnblogs.com/zhangyongl/p/6208993.html
Copyright © 2020-2023  润新知