为什么在这里使用jsp:useBean但不只是创建一个新对象?

时间:2009-09-07 01:26:54

标签: java jsp javabeans

在JSP页面中,有这样的代码:

<jsp:useBean id="checklog"  class="com.google.admin.guard.CheckLogBean" scope="session" />

然后

<% checklog.checkit(); %>

为什么我们不只是用new com.google.admin.guard.CheckLogBean创建对象? 这样做有什么好处?

在源代码中,没有这样的类,但是当我们将它部署到服务器时,它可以工作。似乎服务器可以将类传递给它?

感谢。

2 个答案:

答案 0 :(得分:2)

Jsp bean类(.class)必须放在WEB-INF/classes文件夹下,或者如果它们打包成.jar,则将.jar个文件放入WEB-INF/libjsp:useBean是一个以声明方式实例化bean并具有不同范围(会话,请求,应用程序和页面)的操作。 Bean的另一个特性是内省的魔力 - Java通过一个叫做内省的过程来管理这个小小的奇迹,它允许一个类根据请求公开它的方法和功能。

JavaBeans Components in JSP Pages

  

总结:JavaBeans组件是Java   可以轻松重用的类   一起组成应用程序。   任何遵循确定的Java类   设计约定可以是JavaBeans   成分

答案 1 :(得分:1)

The useBean construct is more concise。它允许较少使用脚本表达式(谁不讨厌它们?)。

不太明显的事实是useBean构造与设计者的工具包(阅读Dreamweaver等)很好地兼容,因为它依赖于标记,而脚本表达式(用于初始化bean的实例)则不然。