首页 > 代码库 > request的getAttribute问题

request的getAttribute问题

request的getAttribute问题,以例子说话:
 
在一个名为 User 的 java bean 中有如下语句:
private String name;
public String getName() {  //注意这里是大写,语句1
    return name + "U";
}
public String getname() {  //注意这里是小写,语句2
    return name + "L";
}
public String getNAME() {  //注意这里是大写,语句3
    return name + "E”;
}
public void setName(String name) {
    this.name = name;
 
在 servlet 中有如下语句:
User user = new User();    
user.setName("a");
request.setAttribute("user", user);
request.setAttribute("age", "1");
request.getSession().setAttribute("user", user);
request.getSession().setAttribute("age", "2");
user.setName("b");
request.getRequestDispatcher("/test.jsp").forward(request, response);
user.setName("c"); 
 
在 test.jsp 中有如下语句:
${user.name }
${requestScope.user.name }
${sessionScope.user.name }
${age }
${requestScope.age }
${sessionScope.age }
 
输出如下:(没有写错,下列结果是正确的)
bU  bU  bU  1  1  2
如果将java bean 中的语句1注释掉,那么结果将如下所示:
bL  bL  bL  1  1  2
如果将 java bean 中的语句1和语句2都注释掉,将会报错
 
这个例子中的关注点有:
1、request.getAttribute 对 java bean 的解释机制
2、引用对象
3、request 与 session 的解释顺序
 
 

request的getAttribute问题