Web JSP/SERVLET: làm sao để sau khi đăng nhập thì trở lại đúng trang ban đầu đang ở?

Cho em hỏi , làm sao để sau khi đăng nhập nó trở lại đúng trang ban đầu đang ở ạ, web em đăng nhập em cho nó về trang chủ luôn ạ?

dễ lắm em à.

Em dùng request.getRequestURl() để lấy url Lúc người dùng sử dụng tính năng, em lưu lại Đó , sau khi thao tác nhiệm vụ đăng nhập xong thì em chuyển người dùng đến url đã lưu ở trên bằng.

request.getRequestDispatcher(RequesrURL).forward(request, response);
1 Like

cái này đặt ở trang dangnhap.jsp đúng không ạ, vậy nó lấy url đó là tự hiểu url trang trước chứ ko phải trang hiện tại là dangnhap.jsp đúng ko anh

Hi bạn,
Bạn nên dùng param request tại trang login của mình để đón được return url chính xác mình muốn.
Định dạng của nó như sau:
http://yourdoamin/loginpage?url={return url}
với return url là trang mà bạn muốn quay trở lại.

Chúc bạn thành công!
Hồng Lâm

2 Likes

Oh không em , đặt ở Servlet chứ.

Trang dangnhap.jsp chỉ chứa cái form với action là đến cái LoginServlet , tại đây em mới kiểm tra xem người dùng nhập đúng hay là sai , rồi mới chuyển người dùng về trang nào đó khi đã login thành công hoặc người dùng phải nhập lại tài khoản.

Để anh mô tả cụ thể hơn để em hiểu.

1 - Trang đăng nhập chứa cái form để nhập username và password , sau khi nhấn login thì sẽ chuyển dữ liệu theo phương thức POST đến LoginServlet

2 - Tại loginServlet em làm các việc sau.

  • Lấy dữ liệu người dùng gửi lên cụ thể là username và password ( cách lấy thì chắc em biết rồi ) . lấy như sau
String paramValue = req.getParameter(paramName); 

chú ý cái paramName này là biến “name” em thiết lập trong form, cụ thể như sau

Password:<input type="password" name="pasword"/>

thì khi lấy password sẽ là

String password = request.getParameter(password); 
  • Việc tiếp theo là em phải kiểm tra người dùng có đăng nhập đúng hay không bằng cách truy vấn vào Database . nếu login thành công thì Set tài khoản người dùng lên Session để xác nhận người dùng đã đăng nhập thành công , nếu thất bại thì em phải gửi lại message cho người dùng , thông thường thì message sẽ là thuộc tính để trong session , ban đần gán là rổng , sau đó em gán gì vào thì gán ví dụ

"Sai tên tài khoản hoặc mật khẩu " hay cụ thể hơn là sai mật khâu hay tài khoản thì tùy em lập trình.

  • việc thứ 3 là điều hướng

nếu đăng nhập thành công thì đến đâu , thất bài thì về trang đăng nhập riêng.

Tóm lại : em phải làm nó theo kiểu MVC , trang đăng nhập chỉ là View nó chỉ có tác nhiệm nhận dữ liệu người dùng nhập vào và gửi đi đến Controller là LoginServlet , Model trong trường hợp này là dữ liệu trong database của em .

Đọc xong những gì anh viết ở trên thì vào link dưới đây để tham khảo code mẫu nhé

Chúc em thành công ^^~

P/S : Giờ anh mới để ý vế sau em hỏi , URL đó là url vị trí của người dùng lúc nhấn vô nút đăng nhập, ví dụ em đang ở trang chủ hay trang sản phẩm chi tiết thì sau khi đăng nhập thành công sẽ chuyển người dùng về vị trí đó , thuận tiện cho người dùng hơn , thay vì trong một số ứng dung cũ mặc định sẽ chuyển người dùng về trang chủ thì sẽ bất tiện nếu người dùng đang ở trang nào đó để xem sản phẩm , họ sẽ phải vào và tìm lại trang đó.

4 Likes

dạ, em cảm ơn anh rất nhiều, em làm được rồi ạ :smiley:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?