考虑到我已经声明了一个类为。
public class Calcultor{
public int cube(int n){return n*n;}
}
现在下面的两个声明是否相同?
index.jsp:
<jsp:useBean id=obj class="Calculator"/>
<%
int m=obj.cube(5);
out.println("cube of 5 is "+m)
%>
index. jsp:
<%
Calculator obj=new Calculator();
int m=obj.cube(5);
out.println("cube of 5 is "+m);
%>
如果两个都一样,有什么好处?
jsp:useBean会在某个范围(request, session ...)中找到一个计算器的实例,而scriptlet则会创建一个新的实例(servlet, framework, controller等)。
检查这个。
http:/docs.oracle.comjavaee1.3tutorialdocJSPIntro11.html。
另外,cube的实现是错误的,应该是返回n*n*n。
如果我们使用usebean标签,它将隐藏 "java编码",以获得像html结构一样的代码感觉,它将为页面代码提供统一的外观......。
第二种是在 "jsp scriplet "里面,当我们想在jsp页面中编写java多语句时使用(在mvc架构中大多避免将商业逻辑和视图写在一起)......。:-)