我正在开发一个servlet和jsp应用程序,其前端主要用html/css/javascript
编码。
现在我已经从login jsp
调用了一个servlet,以验证用户名和密码并重定向到dashboard.jsp
。这成功地发生了。我意识到,要在发布过程中轻松传递用户名的参数,我们需要使用getRequestDispatcher
而不是sendRedirect
。
我有以下问题。
请倾注您的意见和专业知识并承担责任!!
答案 0 :(得分:1)
您可以在将请求转发到jsp之前将所有值设置到响应对象中。或者您可以将值放入会话bean并在jsp中访问它。
您可以使用servlets
和jsp
信息在sessions
和servlet context
之间来回传递信息。
有关详细信息,请参阅 Sharing values between Servlets and Jsp
答案 1 :(得分:0)
数据在服务器上。您唯一需要知道的是发出当前请求的用户的标识符。这就是HTTP会话的用途。用户成功进行身份验证后,将其唯一ID添加到会话中:
request.getSession().setAttribute("authenticatedUserId", user.getId());
然后在所有后续请求中,您可以从会话中获取经过身份验证的用户的ID,并从数据库中获取有关此用户的信息:
Long authenticatedUserId = request.getSession().getAttribute(("authenticatedUserId");
User user = userService.findById(authenticatedUserId);
// store the user in the request to make it available to the view
request.setAttribute("user, user);
请注意,登录后,您绝对应该重定向到仪表板servlet,而不是转发给它:您真的不希望用户刷新仪表板并重新发布身份验证表单。