0

我使用 HTML 创建了一个注册表单,并在 HTML 中添加了一个登录页面。登录后,我需要在一系列页面的顶部显示用户名。我已经知道如何在 PHP 中做到这一点,但我想知道我是否可以用 JSP 做到这一点。如果我能做到,该怎么做。

4

1 回答 1

2

假设用户已在您的 servlet(或另一个控制器)中成功验证并通过系统身份验证,然后只需将User对象保存在会话中,然后在需要的地方检索它。一个基本的例子:

在您的 servlet 中:

public void doPost(HttpServletRequest request, HttpServletResponse response) {
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    User user = new UserService().login(username, password);
    if (user != null) {
        //success!
        //save the user data in session scope
        HttpSession session = request.getSession();
        session.setAttribute("user", user);
        //do your forward or redirect...
    }
    //do your forward or redirect to show error messages...
}

然后在您的 JSP 代码中,您可以使用Expression Language访问user会话属性,而不是scriptlet(有关避免使用 scriptlet 的更多信息:如何避免 JSP 文件中的 Java 代码?)。

<div id="top">
    <!-- this assumes your User class has a username field with a valid getter -->
    Hello ${user.username}
</div>
于 2013-09-20T21:31:51.040 回答