天天看点

JSP开发中的JavaBean的应用以及部署

JavaBean 说白了 就是一个java类,跟VC中的控件类似是JSP开发中组件。

JavaBean分为可视化javabean    和非可视化javabean      ,在JSP中 多用到的是 非可视化javabean   。

在 C/S模式下开发应用程序多用到的是 可视化JavaBean   但是在 B/S模式下应用程序的开发多用到的是非可视化JavaBean 。

我们在没接触JavaBean之前可能有过这样的经历,在JSP页面当中 动态内容JSP 和静态内容html交错在一起,不容易后期维护,代码混乱。

JavaBean很好的实现了代码重用,减少了开发的工作量,并且实现了  静态和动态的分离 。.

编写JavaBean要有一些规则 :

对于 一个属性 需要有getXXX()     setXXX()函数来获得和设置属性的值 

并且对于每个访问属性的方法都要设置为pulic访问权限,这样可以方便JSP引擎知道JavaBean的属性和方法  。

什么是jar文件  ?

jar文件是一些java类的集合 ,包含了一组类 和其他相关的资源.包括图像声音  .......

如果我们需要多个类,你说我们是去下载这些类打包后的jar文件方便呢?还是一个一个的下载方便呢?

这个不用我多说了吧 。。。。

下面是JavaBean的部署方法 :

在编写好了一个JavaBean之后,要用 javac   -d   path   来编译JavaBean产生字节码文件   *.class      对于有包的类那么则会生成相应的目录层次  

这是在传统的记事本编程中这样做 .但是在 Eclipse中 在源文件保存的时候会自动生成 .class文件    。

我们可以用JDK提供的jar.exe工具进行打包    

格式  :    jar    [option可以使多个集合例如cf]     a.jar   *.class     //将所有类进行打包为a.jar文件 

选项包括:

    -c  创建新的归档文件

    -t  列出归档目录

    -x  解压缩已归档的指定(或所有)文件

    -u  更新现有的归档文件

    -v  在标准输出中生成详细输出

    -f  指定归档文件名

    -m  包含指定清单文件中的清单信息

    -e  为捆绑到可执行 jar 文件的独立应用程序

        指定应用程序入口点

    -0  仅存储;不使用任何 ZIP 压缩

    -M  不创建条目的清单文件

    -i  为指定的 jar 文件生成索引信息

    -C  更改为指定的目录并包含其中的文件

如果有任何目录文件,则对其进行递归处理。

清单文件名、归档文件名和入口点名的指定顺序

与 "m"、"f" 和 "e" 标志的指定顺序相同。

示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中:

       jar cvf classes.jar Foo.class Bar.class

示例 2:使用现有的清单文件 "mymanifest" 并

           将 foo/ 目录中的所有文件归档到 "classes.jar" 中:

       jar cvfm classes.jar mymanifest -C foo/ .

我们在生成好了 *.class之后如果要使用这个JavaBean   我们可以吧这个类文件 复制到  web工程的 WEB-INF\classes目录下 ,那么这个web工程就可以使用这个JavaBean了 ..

如何使用jar文件呢? 

如果我们想再服务器所有JSP页面共享部署的Jar文件,那么将jar文件复制到  Tomcat目录下的lib目录中。那么所有的JSP页面都可以使用了

如果只想某个程序使用那么只需要在web工程的 WEB-INF下建立lib文件夹 然后将jar文件放入即可 。。。。。

在JSP页面中使用JavaBean要使用    useBean动作指令

<jsp:useBean id="javabean的实例名"    class="javabean的类名" scop="JavaBean的有效范围" /> 

scop的取值范围有 四个 

1、page   只在当前的jsp页面有效   分配给每个客户的JavaBean不同 。如果关闭此页面 那么JavaBean也将取消  。

2、session 表示分配给每个客户的javaBean不同   但是如果同一会话中ID相同的 javabean      一个的属性修改 那么另一个属性也会修改  。JavaBean的声明周期就是一次session会话

3、   request 表示分配给每个JavaBean的不同  只在请求和被请求页面之间共享JavaBean  当对清求做出相应之后  JavaBean也就取消了 

5、application  表示在所有客户之间共享 JavaBean  一个客户改变了 成员变量的值 那么另一个客户的此JavaBean的值也会跟着 改变 。此JavaBean的声明周期是生个服务器的生命周期  。 

引入之后我们就可以利用  id.method()调用 JavaBean的方法了   .因为useBean实际上是对一个类进行了实例化 ,,

<jsp:getProperty name="javabean对象的名字"  property="属性的名字" />    //getProperty 动作指令会取得javabean指定的属性的值 并且输出  属性的值

setProperty动作指令有3种形式 是用来设置 JavaBean属性的值 

<jsp: setProperty name="javabean实例名字"  property="属性的名字"  param="提交的时候的参数"/>  //只对javabean中的执行属性赋值  而且值为为提交时候参数为 param的值

<jsp: setProperty name="javabean实例名字"  property="*"/>   //在提交的时候根据参数的名字  对 属性进行赋值  属性的额名字和参数名字相同   * 表示对所有属性进行赋值

如果存在值为null的时候 或者找不到参数的时候那么属性都不会被赋值

<jsp: setProperty name="javabean实例名字"  property="属性的名字" value="属性的值"/>   //我们自己对属性进行赋值      

继续阅读