jsp与javaBean

在jsp页面内的五种成份中,html是静态成份,服务器对于jsp的静态成份不作处理直接交付给客户机,作数据表示层;但对于jsp页面的动态成份如java程序片、Java表达式等则需作处理,作数据处理层;如果在一个jsp页面中既有静态部分又有动态部分将导致代码混乱和代码的复用率较低,为此可以采用javaBean方式处理数据,将数据的表示和处理进行分离,这也是sun公司所提倡的一种方式。

javaBean是用Java语言按照一种规则编写的类生成的实例,可简称为bean;一个jsp页面的数据处理部分可以交给一个bean或者几个bean完成,只需在jsp页面中调用该创建bean的类并生成实例即可,这种方式可以将数据的处理部分从jsp页面中分离出来更好的实现代码复用;

一、编写和使用javaBean

1、编写创建bean的类

为了能让服务器识别并使用bean,编写创建bean的类必须符合以下规则:

a、如果类的成员变量为XXX,那么为了获得和修改该成员,类中必须提供两个方法getXxx(用来获得类的属性(变量));和setXxx()(用来修改类的属性(变量));

b、对于boolean类型的变量,可以使用“is”代替上面的get和set;

c、类中方法的访问属性必须是public;

d、类的构造函数的访问属性必须是public且是无参数的;

下面创建一个可以计算矩形面积创建bean的类,代码如下:

创建bean的类

2、使用bean

jsp使用bean,tomcat服务器必须使用相应类的字节码文件创建一个bean,为了让tomcat服务器找到相应的字节码文件,必须把字节码文件放到指定的目录中,故使用bean应有以下两步:

a.字节码文件放到指定的目录

在当前的服务目录中建立\WEB-INF\classes目录,然后在该目录下根据类的包名建立相应的子目录,最后重新启动服务器后把字节码文件复制到目录中;(若使用eclipse开发工具不需此不,只需在项目里创建类即可)

b、在jsp页面里使用bean

这里将用到jsp页面的动作标记usebean,有两种格式:<jsp:usebean id="给bean起的名字" class="创建bean的类" scope="bean的有效范围"></jsp:usebean>和<jsp:usebean id="给bean起的名字" class="创建bean的类" scope="bean的有效范围"/>,其中id的值为bean的名字,可按此名字调用类的方法,scope的值可取page、session、request和application;当用户使用bean时,服务器根据scope的取值确定分配给用户的bean空间的生存时间,当取值为page时有效范围为该页面,用户离开该页面时释放该空间、取值为session时,bean的有效范围为该用户的所有页面,且只要用户的session会话不关闭,bean一直有效,直到session会话消失并取消分配的bean空间、取值为request时bean的有效范围为当前请求期间,当服务器作出回应时即取消分配的bean空间、当取值为application时bean的有效范围为整个服务器服务期间,只有在服务器关闭时才释放分配的bean空间;下面通过新建一个jsp页面使用上面的类创建一个scope取值为session的bean来计算矩形的面积,代码如下:

使用bean

二、获取和修改bean的属性

上面通过在Java程序片中使用bean调用相应方法获取和修改bean的属性,下面通过jsp的动作标记获取和修改bean的属性;

1、动作标记getProperty

这个标记可以获得bean的属性,并且将这个值用串的形式显示给客户,格式为:<jsp:getProperty name="bean的名字" property="bean的属性"/>或者为<jsp:getProperty name="bean的名字" property="bean的属性"></jsp:getProperty>

2、动作标记setProperty

setProperty动作标记可以通过3种方式设置bean的属性值;

a、将bean属性的值设置为一个表达式的值或者字符串,设置为表达式时格式为:<jsp:setProperty name="bean的名字" property="bean的属性" value="<%=expression%>"/>;设置为字符串的格式为:<jsp:setProperty name="bean的名字" property="bean的属性" value=字符串/>

b、通过http表单的参数的值来设置bean属性的值

这种方式需要将要提交的表单的参数的名字和bean的属性的名字一致,表单提交后tomcat会自动进行匹配赋值,格式为:<jsp:setProperty name="bean的名字" property="*"/>,该标记只有提交后才会触发;

c、通过request的参数的值来设置bean的相应属性的值

这种方式也要求request的参数的名字和bean的属性的名字相同,格式为:<jsp:setProperty name="bean" property="属性名" param="参数名"/>,该标记只有提交后才会触发;

三种方式的示例代码如下,用上述矩形的bean示例:

代码示例

注意:第二种和第三种方式只有在被提交的页面才能触发。

3、bean的辅助类

当我们编写一个bean的类的时候,有可能要使用编写的其他类,这时只要将这些类编写在同一个java的源文件里,然后将编译的所有字节码文件复制到指定的目录中即可;

推荐阅读更多精彩内容

  • JSP总结(经典) day1 JSP 定义: 1)Java Server Page, Java EE 组件,本...
    java日记阅读 2,269评论 0 13
  • JSP隐含对象 JSP支持九个自动定义的变量,江湖人称隐含对象。这九个隐含对象的简介见下表: |对象|描述||--...
    FTOLsXD阅读 96评论 0 1
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 26,439评论 17 394
  • 今日体验:今晚开会说了关于机油标号方面的基本知识,才发现很多基础的东西有时也不是很精通。 核心:扩展知识面积
    毕力格bilige阅读 24评论 0 0
  • 滴滴一声,马上出发。 去年开始,因为孩子转学的原因每周末都要在北京和涿州之间往返,因为快捷方便又节省费用,...
    赵红_c1b7阅读 87评论 0 1