samedi 21 novembre 2015

Updating user object when logged in.

When user visits the signup page, I have an "add" action that will grab his information and create a user object. The user is redirected to the home page. all of this works fine. Once in the homepage, the user can click on his profile and his nickname and email fields should be disabled(also working). He can update his firstname, last name, and password. (this is the same form as the signup page) it is also the same action. I'm trying to update the database when he changes his information but it is not working. I think the error is in my servlet. I would greatly appreciate it if you can guide me in the right direction or point out what I can add/change in the below code.

Here is my code for updateUser

  public static void updateUser(User user) throws  SQLException {

 String firstName=user.getFirstName();
 String lastName=user.getLastName();
 String pass=user.getPassword();
 String email=user.getEmail();
 String alias = user.getAlias(); 
 String fullname = firstName + lastName;
 int userID = user.getUserID();


 DriverManager.registerDriver(new com.mysql.jdbc.Driver());

     Connection connection = DriverManager.getConnection( url, admin, password);

     if(connection != null){

          String preparedSQL =  "UPDATE user SET "
                 +"     fullname = ?, "
                 +"     pass = ?"
                 +" WHERE userID = ?";

          PreparedStatement ps = connection.prepareStatement(preparedSQL);
          ps.setString(1, fullname);
          ps.setString(2, pass);
          ps.setInt(3, userID);
          ps.executeUpdate();
             //statement.executeUpdate(sql);
         //System.out.println("records inserted ");
         connection.close();
     }



   }

this is the main servlet

  public class membershipServlet extends HttpServlet {

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String url = "";

      if (request.getSession().getAttribute("user") == null) {
// Not logged in. Redirect to login page.
      url = "/login.jsp";
      doPost(request, response);
    } else {
        // Logged in. Just continue request.

      url = "/home.jsp";
    }


    getServletContext()
        .getRequestDispatcher(url)
        .forward(request, response); 

}




 @Override
 protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {



  String url = "/signup.jsp";
 String val = "joe";
   String action = request.getParameter("action");
  System.out.print(action);


  if (action.equals("add")) {
 // get parameters from the request

 HttpSession session = request.getSession();

 String firstName = request.getParameter("firstName");
 String lastName = request.getParameter("lastName");
String email = request.getParameter("email");
String password= request.getParameter("password");
String w = firstName + " " + lastName;
String alias = request.getParameter("alias");

 //int userID = 0;
  User user = new User();
  int userid = user.getUserID();
 //int userID = user.getUserID();
 if (session.getAttribute(val) != "joe") {
 user.setFirstName(firstName);
 user.setLastName(lastName);
 user.setEmail(email);
 user.setPassword(password);
 user.setAlias(alias);
 user.setUserID(userid);
//User user =  User(firstName, lastName, email,password,alias,userID);

//ArrayList<User> main = new ArrayList<User>();
//main = UserDB.getUsers();

//ArrayList<Twit> d = new ArrayList<Twit>();
//d = twitDB.getTwit();


 //session.setAttribute("twitlist", d);

 //session.setAttribute("ul", main);
 //int uid = user.getUserID();
 session.setAttribute("email", email);
 session.setAttribute("password", password);
session.setAttribute("user", w );
session.setAttribute("uname", alias);
session.setAttribute("en", "disabled");
session.setAttribute("joe", val);
session.setAttribute("uid",userid);

String message;

if (firstName == null || lastName == null || email == null ||
    firstName.isEmpty() || lastName.isEmpty() || email.isEmpty()) {
    message = "Please fill out all three text boxes.";
    url = "/signup.jsp";
} 
else {
    message = null;
    url = "/home.jsp";
    try {
    UserDB.insert(user);
} catch (SQLException ex) {
           Logger.getLogger(membershipServlet.class.getName()).log(Level.SEVERE, null,   ex);
 }
 }


 request.setAttribute("user", user);
request.setAttribute("message", message);   
}


 else{


 String e = session.getAttribute("email").toString();
 String u = session.getAttribute("uname").toString();
 User user2 = new User(firstName, lastName, e,password,u,userid);

try {
    UserDB.updateUser(user2);
} catch (SQLException ex) {
    Logger.getLogger(membershipServlet.class.getName()).log(Level.SEVERE, null, ex);
}
}   
}



if (action.equals("log")) {



try {
    HttpSession session = request.getSession();


    String email = request.getParameter("email");
    String password= request.getParameter("password");
    String f = "";
    String l = "";
    String e = "";




    User test= new User();
    test = UserDB.validate(email,password);




    if(test!=null ){

        f = test.getFirstName();
        l = test.getLastName();
        e = test.getAlias();
        email = test.getEmail();
        String w = f + " " + l;
        // ArrayList<User> main = new ArrayList<User>();
        //  main = UserDB.validate();

        //   ArrayList<Twit> y = new ArrayList<Twit>();
        //  y = twitDB.getTwit();


        //  session.setAttribute("twitlist", y);
        //  session.setAttribute("ul", main);

        session.setAttribute("user", w );
        session.setAttribute("uname", e);
        session.setAttribute("email", email);
        session.setAttribute("en", "disabled");
        session.setAttribute("info", test);
        session.setAttribute("joe", val);

        url = "/home.jsp";

    }

    else  {
        url="/login.jsp";
        request.setAttribute("fail", "Either you haven't registered, or   the information is incorrect.");
    }

    response.setHeader("Location", url);
} catch (SQLException ex) {
    Logger.getLogger(membershipServlet.class.getName()).log(Level.SEVERE, null, ex);
}

}

if (action.equals("tweet")) {
url = "/TwitServlet";
}
getServletContext()
    .getRequestDispatcher(url).forward(request, response);   
}
}




Aucun commentaire:

Enregistrer un commentaire