我有一个以登录页面开头的Web应用程序。在验证该登录期间,将创建会话,并将用于登录的ID保存为属性。然后,该ID将显示在用户导航到的页面中。到目前为止,我只能将它显示在JSP页面中,但我在Servlet页面中尝试的所有内容都不起作用。
以下是我在登录验证页面中使用的逻辑:
UserBean2 userBean2 = (UserBean2) session.getAttribute("userBean2");
String un = request.getParameter("id");
userBean2 = new UserBean2(un);
session.setAttribute("userBean2", userBean2);
这是我创建UserBean2的Bean:
public class UserBean2 {
private String id;
public UserBean2(String id) {
setUsername(id);
}
public String getUsername() {
return(id);
}
public void setUsername(String id) {
if (!isMissing(id)) {
this.id = id;
}
}
private boolean isMissing(String value) {
return(value == null) || (value.trim().equals("")));
}
}
有效的部分是我尝试在jsp页面中调用ID时。我这样做:
${userBean2.username}
但是要在Servlet页面中调用它,我已经在阳光下尝试了所有东西,没有任何工作正常。
我甚至尝试过getAttributeNames,它会给我提供我需要的信息,但我收到的只是:( bokay是用于登录此特定会话的ID)
bokay: bokay
userBean2: HWpackage.UserBean2@257ccb2f
我想在JSP页面中使用什么想法来显示ID,在这种情况下恰好是“bokay”?
谢谢大家!
答案 0 :(得分:1)
要获取servlet中的用户名,只需执行
UserBean2 userBean2 = (UserBean2) session.getAttribute("userBean2");
String username = userBean2.getUsername();
// ...
不相关问题,您的isMissing()
方法位于错误的位置。但这更像是一个设计问题,而不是一个功能问题。我也想知道班级名2
中的UserBean2
是如何相关的。 “登录验证页面”中的第一个代码行也是不必要的。