Tôi đang làm một diễn đàn đơn giản với một loạt các Servlets
mà mỗi trang đại diện cho một trang chủ, chủ đề, postedit, đăng nhập và trang danh sách người dùng. Trên một số trang này có một liên kết xuất hiện khi người dùng không đăng nhập.Chuyển hướng trở lại trang sau khi đăng nhập
Điều tôi muốn đạt được là kích hoạt chuyển hướng (sử dụng forward() trên RequestDispatcher) sau khi đăng nhập để trình duyệt quay lại trang nơi người dùng trước khi nhấp vào liên kết đăng nhập. Để làm được điều này, tôi thấy hai giải pháp.
Giải pháp đầu tiên là phải có HTML Form
bằng nút đăng nhập và trường ẩn sẽ chứa thông tin sẽ cho biết trang nào sẽ chuyển hướng là Parameter
. Điều này là doable nhưng tôi muốn thử cái gì khác.
Giải pháp thứ hai là thêm Attribute
vào session
đại diện cho "trang" đầu tiên theo một cách nào đó. Điều này có thể chứa một String nhưng điều này không khác với cách tiếp cận đầu tiên. Một thay đổi khác là thêm một tham chiếu đến HttpServlet và sử dụng instanceof hoặc một biến String tĩnh có thể được sử dụng để nhận dạng Servlet theo một cách nào đó. Tuy nhiên, điều này sẽ yêu cầu tạo một lớp tổ tiên chung cho tất cả các Servlets
.
Có lẽ có một giải pháp đơn giản khác mà bạn có thể thấy sẽ tạo thành sự thỏa hiệp tốt? Hoặc, có lẽ một trong các giải pháp trên là hoàn toàn có thể chấp nhận được?
Câu trả lời hay, cộng với nó cho tôi một ảnh chụp nhanh về những gì cần nhắm đến khi một DAO được thêm vào. –
Nếu bạn đang sử dụng bảo mật được quản lý container thì việc gửi yêu cầu tới j_security_check sẽ không cho phép bạn thực hiện điều này; thay vào đó sử dụng Servlet phiên bản 3 đăng nhập có lập trình: HttpServletRequest.login – Ryan
Cảm ơn bạn rất nhiều. –