为了账号安全,请及时绑定邮箱和手机立即绑定

在有的时候我们可以直接使用application。getAttribute("username"),这里是:用户名:<%=((User)application.getAttribute("myuser")).getUsername() %>,这是出于什么原因呢?在类似问题上确实很薄弱,希望有懂的同学老师帮忙解说一下,谢谢啦!!

在有的时候我们可以直接使用application。getAttribute("username"),这里是:用户名:<%=((User)application.getAttribute("myuser")).getUsername() %>,这是出于什么原因呢?

正在回答

3 回答

application.getAttribute("username") 返回的是String

application.getAttribute("Users") 返回的是class


2 回复 有任何疑惑可以回复我~

是因为这里的application中"myuser"对应的value值是一个类的对象。像是这样。

我没有看过这个视频,不知道具体是怎样的,但我这样写你应该能看懂吧。

User u = new User("Li",21);//有一个User类,属性有username,age。这里的参数,也可以从网页表单传过来

request.getSession().getServletContext().setAttribute("myuser",u);

那么在jsp中我要拿到这个用户的username怎么拿?

<%=((User)application.getAttribute("myuser")) %>这样拿到的是u这个对象,再调用u.getUsername()不就可以拿到username了吗。User这里类里面肯定写了getUsername()这个方法的。

那么,连起来不就是<%=((User)application.getAttribute("myuser")).getUsername() %>

-------------

而application.getAttribute("username")这样用的时候,是你在application中存了("username",具体的名字);

所以,主要是因为一个存的就是你要的数据(username),而另一个是存了包含这个数据(username)的对象(u),所以要在拿到这个对象之后在调用它自己的方法(getUsername()),去拿到数据。

2 回复 有任何疑惑可以回复我~

jsp内置对象

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在有的时候我们可以直接使用application。getAttribute("username"),这里是:用户名:<%=((User)application.getAttribute("myuser")).getUsername() %>,这是出于什么原因呢?在类似问题上确实很薄弱,希望有懂的同学老师帮忙解说一下,谢谢啦!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信