JSP和servlet之间的参数传输

JSP和servlet之间的参数传输,jsp,servlets,web,Jsp,Servlets,Web,我正在开发一个servlet和jsp应用程序,前端主要用html/css/javascript编码 现在我从login jsp调用了一个servlet,以验证用户名和密码,并重定向到dashboard.jsp。这是成功的。我意识到,为了在post期间轻松地传递用户名参数,我们需要使用,getRequestDispatcher,而不是sendRedirect 我有以下问题 现在在dashboard.jsp中,我通过选项卡导航到各种其他jsp。 我需要在所有JSP中从servlet传递的用户名。可以

我正在开发一个servlet和jsp应用程序,前端主要用
html/css/javascript
编码

现在我从
login jsp
调用了一个servlet,以验证用户名和密码,并重定向到
dashboard.jsp
。这是成功的。我意识到,为了在post期间轻松地传递用户名参数,我们需要使用,
getRequestDispatcher
,而不是
sendRedirect

我有以下问题

  • 现在在dashboard.jsp中,我通过选项卡导航到各种其他jsp。 我需要在所有JSP中从servlet传递的用户名。可以 我们将某物定义为一个全局变量,并跨所有对象访问它 jsp页面
  • 拥有前端的方法主要是 jsp中的html/css/javascript是有效的吗

  • 请倾诉您的观点和专业知识,并表示感谢

    数据在服务器上。您只需要知道发出当前请求的用户的标识符。这就是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,不转发:您确实不希望用户刷新仪表板并重新发布身份验证表单。

    您可以在将请求转发到jsp之前将所有值设置到响应对象中,或者您可以将值放入会话bean并在jsp中访问它

    您可以使用
    sessions
    servlet上下文
    信息在
    servlet
    jsp
    之间来回传递信息


    有关更多详细信息,请参阅

    使用
    会话
    属性全局传递值。请参阅答案中的链接