I try using the DAO design pattern on Servlets to store user input to MongoDB. Although found some useful hints on this post, and also this post. No doubt I got NullpointException. I wondered because I didn't create a collection and document to "insert" user input in my method on DaoImpl or something I don't understand how to work between Servlet and the DaoImpl class
Here is the UserDAO
public interface UserDao {
    List<User> getAllUsers();    
    void save(User user);    
    void updateUer(User user);    
    void deleteUser(User user);    
}
The DaoImpl, which I think is causing the NullPointException and want to fix it and doubt if here to connect to the database.
public class UserDaoImpl implements UserDao {
    @Override
    public void save(User user) {
        if (user == null) {
            System.out.println("not working!!!!!!!");
        } else {
            user.setName(user.getName());
            user.setEmail(user.getEmail());
            user.setPassword(user.getPassword());
        }
        // connection the db in here or in the Servlets controller?
    }
The Servlet Controller
public class RegisterServlet extends HttpServlet {
private UserDao userDao;
private User user;
public RegisterServlet(User user) {
this.user = user;
}
public RegisterServlet(UserDao userDao) {
this.userDao = userDao;
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Collect to database
MongoDatabase mdb = dBUtils.getMongoDB();    
assert mdb != null;
MongoCollection<Document> collection = mdb.getCollection("Users");
userDao.save(user);
}
Error Msg
Type Exception Report    
Description The server encountered an unexpected condition that prevented it from fulfilling the request.    
Exception    
java.lang.NullPointerException
    uts.asd.controller.RegisterServlet.doPost(RegisterServlet.java:54)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Note The full stack trace of the root cause is available in the server logs.
