问答详情
源自:1-11 Servlet获取表单数据

request.getSession().setAttribute("regUser", u); <jsp:useBean id="regUser" class="entity.Users" scope="session"/>两者关系

request.getSession().setAttribute("regUser", u);
<jsp:useBean id="regUser" class="entity.Users" scope="session"/>
这两者之间有什么关系吗?
为什么在<jsp:useBean>中实例的regUser就是session中的实例regUser。而且就能直接调用。
<jsp:useBean>中实例的regUser里面的内容不应该直接为空吗?

提问者:翼之龙 2017-04-07 11:25

个回答

  • qq_二区_0
    2017-04-09 16:17:21

    request.getSession().setAttribute("regUser", u);

    向session 域 中存放一个user对象 这个对象代号为regUser  重点理解"域"这个字的含义

    <jsp:useBean id="regUser" class="entity.Users" scope="session"/>等价于request.get

    实例化一个Users对象 从作用范围scope="session"中寻找代号为id="regUser"这个的对象

    class="entity.Users"是user这个bean的地址   通过这样的方式就可以拿到user的对象u了 

    简化了操作(以往拿到对象 还要在jsp页面写java脚本 通过导包 new user() 的方式)

    这两者之间有什么关系吗?

    关系就是你往域里存东西  我从域里拿东西


    为什么在<jsp:useBean>中实例的regUser就是session中的实例regUser。而且就能直接调用。
    <jsp:useBean>中实例的regUser里面的内容不应该直接为空吗?

     因为我们session里存的就是user对象 这样就可以找到啊

    不理解的话可以百度看看servlet的四大作用域 page request session application 作用域范围依次递增

  • 菜鸟_Dreamweaver_myk
    2017-04-07 16:57:50

    <jsp:useBean> 指的是创建一个Bean实例并指定它的名字和作用范围;<jsp:useBean>用于定位或示例一个JavaBeans组件。<jsp:useBean>首先会试图定位一个Bean实例,如果这个Bean不存在,那么<jsp:useBean>就会从一个class或模版中进行示例;因为指定作用范围是session;