`
seawavenews
  • 浏览: 230085 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

request.setAttribute与jsp:useBean 的区别

阅读更多

有点烟瘾 16:12:14
今天突然发现<jsp:useBean>与scope.setAttribute()及scope.getAttribute()有区别~有没有谁有兴趣交流一下?
 LanSky 16:12:54
说来听听,这几天我在补补JSP技术
   有点烟瘾 16:15:33
比如在一个页面中运行
request.setAttribute("bean",bean);
System.out.println(request.getAttribute("bean"));
会发现,不断刷新这个页面的时候,每次得到的bean都是一个新创建的对象
   有点烟瘾 16:16:01
实验结果表明,使用<jsp:useBean>的时候,也是创建了新的bean
   有点烟瘾 16:17:09
但是差别在于:假如bean中有一个属性为id,我将它的getId方法改为
public int getId() {
id++;
return id;
}
   有点烟瘾 16:18:21
使用request.getAttribute和request.setAttribute方法时,得到的id在刷新页面后是不会变化的,这正好与前面的实验结果——每次得到的bean都是一个新创建的对象,相吻合
   有点烟瘾 16:18:45
但是使用<jsp:useBean>的时候,id的值是每次加1的~
   有点烟瘾 16:19:27
有兴趣的可以实验一下~ 
 LanSky 16:19:42

 小兵seawave 16:21:13
恕我愚昧,烟瘾,测试结果表达什么?
   有点烟瘾 16:22:24
我一直以为jsp:useBean与scope.getAttribute及scope.setAttribute()方法一样,今天我专门做了上面的测试,证明不一样~

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

<!----> <!----> <!----> <!----><!----> <!----> <!----> <!----> <!----><!---->
doublek321
Posts:164
Registered: 1/23/04
useBean vs (scope).setAttribute   
Jun 3, 2004 7:45 AM

Click to email this message

 
Is there any difference between saying these 2 things...

CASE 1
<jsp:useBean id="myFoo" scope="session" class="whatever.Foo"/>


...and this...

CASE 2
import whatever.Foo;
 
Foo myFoo = new Foo();
session.setAttribute(myFoo);


I realize that when another bean wants access to myFoo they're going to access it differently (either copy the statement listed in case 1 or do a session.getAttribute(myFoo) in case 2) but is that the only difference? Is there any particular reason to use one case over the other???



 
akulinsk
Posts:408
Registered: 22/01/99
Re: useBean vs (scope).setAttribute   
Jun 6, 2004 11:21 PM (reply 1 of 1)

Click to email this message

 
The reason is:

JSP's are intended to be created and maintained by web designers without knowledge of Java language. So servlet is creating some bean and puts it into session it is passed to JSP and then used by designer by using special tags.

If you really like to investigate if there is a different take a look at servelt source generated for JSPs created using both ways.

分享到:
评论

相关推荐

    Javaweb练习题1(含答案).docx

    11. JSP中的变量处理:`request.setAttribute()`和`request.getAttribute()`处理的是对象,因此可以编译运行并输出0,选项C正确。 12. web.xml的位置:在JSP项目的目录结构中,`web.xml`通常位于`WEB-INF`目录下,...

    JSP.zip_JSP考试

    1. **jsp:include**:运行时动态地包含页面,与include指令的区别在于它可以传递请求参数。 2. **jsp:forward**:将请求转发到另一个页面。 3. **jsp:useBean**:在JSP页面中创建和查找JavaBean。 4. **jsp:set...

    java web 期末试题填空简答整理.pdf

    25. 作用范围:JSP 的 4 种作用范围分别使用 pageContext、request、session 和 application 来表示,它们都具有 getAttribute() 和 setAttribute() 方法。 26. JSTL 分类:JSTL 分为核心标签库、国际化输出标签库...

    jsp事例jsp usebean session

    在JavaServer Pages (JSP) 技术中,`useBean` 指令和 `session` 对象是两个核心概念,它们对于构建动态、数据驱动的Web应用程序至关重要。在这个事例中,我们将深入探讨如何在JSP中利用 `useBean` 指令创建并管理...

    Java-Web程序设计题库.docx

    8. Session与Request对象:session对象用于管理用户会话,提供getAttributeNames()、setAttribute()等方法。request对象代表HTTP请求,获取服务器信息使用getServerInfo()。 9. JSP动作标签:jsp:include、jsp:...

    jsp和servlet知识点总结

    一、JSP与Servlet的区别 1. **本质与生成**:JSP(Java Server Pages)本质上是Servlet的一种简化形式,它将HTML代码和Java代码结合在一起,经过Web容器(如Tomcat)的处理,被编译成Servlet类。在运行时,JSP文件...

    Java Web程序设计任务驱动教程课后习题参考答案 - 蓝敏、周伟敏、杨茜

    * include 指令和&lt;jsp:include&gt;动作的区别:执行时间、引入内容等 * JSP 程序里有三种注释:HTML 注释、Java 注释、JSP 隐藏注释 服务器交互 * 使用 response 对象进行重定向的方法:sendRedirect * session 对象...

    Java开发与设计教程

    &lt;jsp:useBean id="eUser" scope="request" class="org.training.course.web.bean.User"&gt; &lt;jsp:setProperty name="eUser" property="userName" value="name"/&gt; &lt;jsp:setProperty name="eUser" property="passWord" ...

    JavaBean 在jsp和serlvle中传递技术要点.doc

    若未找到,系统会在`scope`指定的范围创建一个新的JavaBean实例,并执行与`&lt;jsp:useBean&gt;`标签内对应的初始化代码。为了确保在特定的`scope`位置创建JavaBean,最好将初始化代码放置在`&lt;jsp:useBean&gt;`标签之外。 2....

    JSP学习笔记

    #### 一、JSP 概述与基本结构 **JSP (JavaServer Pages)** 是一种基于 Java 的服务器端脚本技术,它允许在 HTML 页面中嵌入 Java 代码来动态生成网页内容。JSP 技术的主要优势在于能够将业务逻辑与显示层分离,提高...

    jsp学习资料及应用

    2. **jsp:useBean**:查找或实例化一个JavaBean,使得可以在JSP页面中操作JavaBean的属性。 3. **jsp:setProperty**:设置JavaBean的属性值。 4. **jsp:getProperty**:读取JavaBean的属性并输出到页面。 5. **jsp:...

    JSP面试知识

    3. **jsp:setProperty**: 设置JavaBean的属性值,常与jsp:useBean配合使用。 4. **jsp:getProperty**: 输出JavaBean的属性值,用于在页面中展示JavaBean的数据。 5. **jsp:forward**: 将请求转发到新的资源,保留...

    【图文】JAVA网页编程课程讲义-4.Servlet与Jsp技术概述.doc

    Servlet与JSP是Java在Web开发中的两大核心技术,它们主要用于构建动态网页。本讲义将对Servlet和JSP进行概述,帮助你理解这两者的基本概念、工作原理以及如何在实际项目中应用。 ## 1. Servlet概述 Servlet是Java...

    jsp&js&java实用技术

    5. GET与POST的区别:GET是获取数据,将数据附加到URL后面,可见且有长度限制,适合小量数据和安全要求不高的场景;POST是提交数据,数据在请求体中,不可见且容量大,适用于大量或敏感数据的传输。GET请求在历史...

    JavaWeb应用开发期末试卷及答案AB卷2套.doc

    * 在 JSP 中调用 JavaBean 时需要使用 `&lt;jsp:useBean&gt;` 和 `&lt;jsp:setProperty&gt;` 等标记。 * JavaBean 是一个公有 java 类,提供给外界使用的方法是公有类型的。 3. Servlet 基础知识: * Servlet 需要继承 ...

    Java Web应用开发 JavaWeb应用开发期末试卷A卷.doc

    5. 调用JavaBean的标记:在JSP中调用JavaBean会用到`&lt;jsp:useBean&gt;`, `&lt;jsp:setProperty&gt;`和`&lt;jsp:getProperty&gt;`标记,而`&lt;java:bean&gt;`不是JSP的标准标记。 6. Tomcat默认端口号:Tomcat服务器默认使用的端口号是...

    JSP脚本小总结

    ### JSP脚本小总结 #### 一、指令元素 指令元素是JSP页面中用于控制JSP容器行为的关键组成部分,这些指令告诉JSP引擎如何处理特定页面。 1. **page指令** - `import`:指定在当前JSP页面中可以使用的类或包。 `...

    Java Web应用开发 JavaWeb应用开发期末试卷B卷.doc

    3. JSP动作标签:题目中提到了`&lt;jsp:useBean&gt;`、`&lt;jsp:include&gt;`、`&lt;jsp:forward&gt;`和`&lt;jsp:plugin&gt;`。这些是JSP的动作标签,分别用于实例化或查找bean、包含其他资源、转发请求和处理浏览器类型相关的操作。 4. ...

    JSP 常用的标签以及用法举例

    - **示例**: `&lt;jsp:useBean id="beanName" class="package.class" scope="page|request|session|application" /&gt;` - **说明**: 该标签允许开发者在页面中定义和使用JavaBeans,这对于封装复杂逻辑非常有用。 5. ...

    jsp源码 javaben servlet

    **JSP、JavaBean与Servlet概述** JSP(JavaServer Pages)是Java平台上的动态网页技术,它允许开发者将HTML代码与Java代码结合在一起,从而在服务器端生成动态内容。JSP的核心思想是分离表现层(视图)和业务逻辑层...

Global site tag (gtag.js) - Google Analytics