30/09/2018, 19:25

Web JSP/SERVLET

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 ạ?

Nguyễn Hữu Quyền viết 21:39 ngày 30/09/2018

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);

mmmm viết 21:26 ngày 30/09/2018

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

Lý Hồng Lâm viết 21:31 ngày 30/09/2018

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

Nguyễn Hữu Quyền viết 21:32 ngày 30/09/2018

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

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:

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é

www.javatpoint.com

Login form in Servlet - javatpoint

Example of Login form in Servlet Tutorial. Let's see a simple example of login and logout in servlet.

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 đó.

mmmm viết 21:41 ngày 30/09/2018

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

Bài liên quan
0