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