Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我在尝试注册帐户时出错?_Java_Mysql_Spring_Jsp_Servlets - Fatal编程技术网

Java 为什么我在尝试注册帐户时出错?

Java 为什么我在尝试注册帐户时出错?,java,mysql,spring,jsp,servlets,Java,Mysql,Spring,Jsp,Servlets,请帮助我如何在我的java web应用程序上解决此注册问题。我试着在7天内做到这一点,但我没有办法。再次请帮忙!我想我已经准备好了你需要帮助我的一切。当我想注册的时候,这个困扰了我很长时间的问题就把我赶了出去。就像我说的,我七天来一直在努力解决这个问题,但我做得不太好。我来这里是为了找一个能帮我解决这个问题的好人。我将非常感谢他 User.java: { package model; public class User { private int privateID;

请帮助我如何在我的java web应用程序上解决此注册问题。我试着在7天内做到这一点,但我没有办法。再次请帮忙!我想我已经准备好了你需要帮助我的一切。当我想注册的时候,这个困扰了我很长时间的问题就把我赶了出去。就像我说的,我七天来一直在努力解决这个问题,但我做得不太好。我来这里是为了找一个能帮我解决这个问题的好人。我将非常感谢他

User.java:

{
    package model;

public class User {
    private int privateID;
    private String firstname;
    private String lastname;
    private String username;
    private String password;
    
    public User() {
        
    }
    
    public User(int privateID, String firstname, String lastname, String username, String password) {
        this.privateID = privateID;
        this.firstname = firstname;
        this.lastname = lastname;
        this.username = username;
        this.password = password;
    }

    public int getPrivateID() {
        return privateID;
    }

    public void setPrivateID(int privateID) {
        this.privateID = privateID;
    }

    public String getFirstname() {
        return firstname;
    }

    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }

    public String getLastname() {
        return lastname;
    }

    public void setLastname(String lastname) {
        this.lastname = lastname;
    }

    public String getPassword() {
        return password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
DBConnect.java:


package dao;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBConnect {

    public static Connection getConnecttion() {
        Connection cons = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            cons = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/medical", "root", "root");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return cons;
    }
}
UserDAO.java:


package dao;
import model.User;

public interface UserDAO {
    
    public void addUser(User u);
    
    public boolean checkUser(String username);
    
    public boolean login(String username, String password);
    
    public void updateUser(User u);
    
    public User getUser(String username);
    
}
UserDAOImpl.java:


package dao;

import com.mysql.jdbc.PreparedStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import model.User;

public class UserDAOImpl implements UserDAO {

    @Override
    public void addUser(User u) {
        Connection con = DBConnect.getConnecttion();
        String sql = "insert into user value (?,?,?,?,?)";
        PreparedStatement ps;

        try {
            ps = (PreparedStatement) con.prepareStatement(sql);
            ps.setInt(1, u.getPrivateID());
            ps.setString(2, u.getFirstname());
            ps.setString(3, u.getLastname());
            ps.setString(4, u.getUsername());
            ps.setString(5, u.getPassword());
            ps.executeUpdate();
            con.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

    @Override
    public boolean checkUser(String username) {
        Connection con = DBConnect.getConnecttion();
        String sql = "select * from user where username='" + username + "'";
        PreparedStatement ps;

        try {
            ps = (PreparedStatement) con.prepareStatement(sql);
            ResultSet rs = ps.executeQuery();
            if (rs.next()) {
                con.close();
                return true;
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return false;
    }

    @Override
    public boolean login(String username, String password) {
        Connection con = DBConnect.getConnecttion();
        String sql = "select * from user where username='" + username + "' and password='" + password + "'";
        PreparedStatement ps;

        try {
            ps = (PreparedStatement) con.prepareStatement(sql);
            ResultSet rs = ps.executeQuery();
            if (rs.next()) {
                con.close();
                return true;
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return false;
    }

    @Override
    public void updateUser(User u) {
        Connection con = DBConnect.getConnecttion();
        String sql = "update user set privateID=?, firstname=?, lastname=?, username=?, password=?";

        try {
            PreparedStatement ps = (PreparedStatement) con.prepareStatement(sql);
            ps.setInt(1, u.getPrivateID());
            ps.setString(2, u.getFirstname());
            ps.setString(3, u.getLastname());
            ps.setString(4, u.getUsername());
            ps.setString(5, u.getPassword());
            ps.executeUpdate();
            con.close();

        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

    @Override
    public User getUser(String name) {
        Connection con = DBConnect.getConnecttion();
        String sql = "select * from user where username='"+name+"'";
        User u = new User();
        
        try {
            PreparedStatement ps = (PreparedStatement) con.prepareStatement(sql);
            ResultSet rs = ps.executeQuery();
            while(rs.next()) {
                int privateID = rs.getInt("privateID");
                String firstname = rs.getString("firstname");
                String lastname = rs.getString("lastname");
                String username = rs.getString("username");
                String password = rs.getString("password");
                
                u = new User(privateID, firstname, lastname, username, password);
            }
            con.close();
        } catch (SQLException ex) {
          ex.printStackTrace();
        }
        return u;
    }
}
RegisterServlet.java:


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package controler;

import dao.UserDAOImpl;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.User;

/**
 *
 * @author Veljko
 */
public class RegisterServlet extends HttpServlet {
    private UserDAOImpl userDAO = new UserDAOImpl();
    
    
    public RegisterServlet() {
        super();
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        
        String firstname = req.getParameter("firstname");
        String lastname = req.getParameter("lastname");
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        
        
        String err = "";
        String url = "/register.jsp";
        
        
        if(firstname.equals("") || lastname.equals("") || username.equals("") || password.equals("")) {
            err+="Potrebno je popuniti sva polja!";
        } else {
            if(userDAO.checkUser(username) == true) {
                err+="Username vec postoji!";
            } 
        }
        if(err.length()>0) {
            req.setAttribute("err", err);
        }
        
        try {
            if (err.length() == 0) {
                userDAO.addUser(new User(0, firstname, lastname, username, password));
                userDAO.login(username, password);
                Cookie loginCookie = new Cookie("username", username);
                loginCookie.setMaxAge(30*60);
                resp.addCookie(loginCookie);
                resp.sendRedirect("index.jsp");
            } else {
                url = "/register.jsp";
                RequestDispatcher rd = getServletContext().getRequestDispatcher(url);
                rd.forward(req, resp);
            }
        } catch (Exception e) {
            e.printStackTrace();
            resp.sendRedirect("/register.jsp");
        }
    }        
}
register.jsp:

    
<%@include file="header.html" %>
<body>
    <%

    String err = "";
    if(request.getAttribute("err") !=null) {
        err = (String) request.getAttribute("err");
    }

        %>
    
    <main>
        <div class="container register">
            <div class="row">
                <div class="col-md-3 register-left">
                    <img src="https://image.ibb.co/n7oTvU/logo_white.png" alt=""/>
                    <h3>Dobrodosli</h3>
                <a href="login.jsp" class="btn -btn">Login</a>
                </div>
                <div class="col-md-9 register-right">
                    <div class="tab-content" id="myTabContent">
                        <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
                            <h3 class="register-heading">Registracija</h3>
                            <div class="row register-form">
                                <div class="col-md-6">
                                    <form action="RegisterServlet" method="post">
                                        <li style="color: red"><%=err%></li>
                                        <input type="text" class="form-control" name="firstname" placeholder="First Name *" value="" />
                                        <input type="text" class="form-control" name="lastname" placeholder="Last Name *" value="" />
                                        <input type="text" class="form-control" name="username" placeholder="Username *" value="" />
                                        <input type="password" class="form-control" name="password" placeholder="Password *" value="" />
                                        <input type="submit" class="btnRegister"  value="Register"/>
                                        </form>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

        </div>
    </main>
<%@include file="footer.html" %>


试图指示在UserDAOImpl.java第40行使用的
con
的错误日志为空。 跟踪到类DBConnect,在获取连接时应该出现错误。(只需检查catch块打印的堆栈跟踪。 您是否缺少mysql驱动程序

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

UserDAOImpl中的哪一行是第40行?您必须记住,我们看不到您的行号--您必须为我们指出。您的连接对象con似乎为null,请您检查一下!
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver