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的源文件里,然后将编译的所有字节码文件复制到指定的目录中即可;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

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