1

考虑我已将一个类声明为:

public class Calcultor{

public int cube(int n){return n*n;}

}

现在下面的声明都一样吗?

  1. index.jsp:

    <jsp:useBean id=obj class="Calculator"/>
    <%
    int m=obj.cube(5);
    out.println("cube of 5 is "+m)
    %>
    
  2. index.jsp:

    <%
    Calculator obj=new Calculator();
    int m=obj.cube(5);
    out.println("cube of 5 is "+m);
    %>
    

如果两者相同,有什么优势?

4

2 回答 2

2

这是不一样的。jsp:useBean 将在某人之前创建的某个范围(请求、会话 ...)(servlet、框架、控制器等)中定位 Calculator 的实例,同时 scriptlet 创建一个新实例。

检查这个:

http://docs.oracle.com/javaee/1.3/tutorial/doc/JSIntro11.html

顺便说一句,cube 的实现是错误的,应该是 return n*n*n

于 2013-11-18T17:25:07.077 回答
0

如果我们使用 usebean 标签,它会隐藏“java 编码”以获得类似 html 结构的代码感觉。它会给页面代码提供统一的外观......

第二个是在“jsp scriplet”内部,当我们想在 jsp 页面中编写 java 多条语句时使用它(在 mvc 架构中主要避免一起编写 biz 逻辑和视图).... :-)

于 2013-02-21T16:19:29.390 回答