JavaBean技术

JSP设计模式

关于JavaBean的产生原因和JSP开发模式的一个演变可以参照如下示例图

两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式。
JSP+JavaBean模式适合开发业务逻辑不太复杂的web应用程序(因为业务逻辑复杂,控制代码多,而在JSP中编写控制代码,十分不便),这种模式下,JavaBean用于封装业务数据,JSP即负责处理用户请求,又显示数据。(JSP中编写业务控制逻辑代码)
Servlet+JSP+JavaBean(MVC)模式适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求(控制器,连接模型和视图,对整个业务流程进行控制,调用JavaBean封装处理数据,调用JSP显示页面),jsp负责数据显示,javabean负责封装数据(Model 模型功能)。 Servlet+JSP、JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式。

这里写图片描述
关于JavaWeb_MVC模式可以参见之前的博客http://blog.csdn.net/megustas_jjc/article/details/52922859,在此不再细说。(其中JavaBean符合Model,JSP符合View,Servlet符合Controller)

JavaBean

(1)什么是JavaBean

1、是一个Java 类
2、必须存在无参数构造方法
3、所有成员变量都是private
4、私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。即如果想private成员变量被外界访问,提供public的get和set方法。

编写好JavaBean组件,其他程序可以通过反射技术实例化JavaBean对象,并且通过反射那些遵守命名规范的方法,从而获知JavaBean的属性,进而调用其属性保存数据。 关于反射技术,参考http://blog.csdn.net/megustas_jjc/article/details/52769688,这里需要注意不要将JavaBean与单例模式混淆(通过内省Introspection,也可以对JavaBean进行操作,Introspection对JavaBean通过反射技术操作,出国留学内省是一套基于反射技术,更易于操作JavaBean的API)

单例模式

1、private 构造方法
2、private static 实例对象
3、public static 对象访问方法

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。如下是一个Java代码实例:

一些资源管理器常常设计成单例模式。在计算机系统中,需要管理的资源包括软件外部资源,譬如每台计算机可以有若干个打印机,但只能有一个Printer Spooler, 以避免两个打印作业同时输出到打印机中。每台计算机可以有若干传真卡,但是只应该有一个软件负责管理传真卡,以避免出现两份传真作业同时传到传真卡中的情况。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。

(2)使用JavaBean的原因

程序中往往有重复使用的段落,JavaBean就是为了能够重复使用而设计的程序段落,而且这些段落并不只服务于某一个程序,而且每个JavaBean都具有特定功能,当需要这个功能的时候就可以调用相应的JavaBean。从这个意义上来讲,JavaBean大大简化了程序的设计过程,也方便了其他程序的重复使用。

JavaBean传统应用于可视化领域,如AWT(窗口工具集)下的应用。而现在,JavaBean更多地应用于非可视化领域,同时,JavaBean在服务器端的应用也表现出强大的优势。非可视化的JavaBean可以很好地实现业务逻辑、雅思基础控制逻辑和显示页面的分离,现在多用于后台处理,使得系统具有更好的健壮性和灵活性。JSP + JavaBean和JSP + JavaBean + Servlet成为当前开发Web应用的主流模式。

(3)JavaBean的属性

  • JavaBean的属性可以是任意类型,并且一个JavaBean可以有多个属性。每个属性通常都需要具有相应的setter、 getter方法,setter方法称为属性修改器,getter方法称为属性访问器。
  • 属性修改器必须以小写的set前缀开始,后跟属性名,且属性名的第一个字母要改为大写,例如,name属性的修改器名称为setName,password属性的修改器名称为setPassword。
  • 属性访问器通常以小写的get前缀开始,后跟属性名,且属性名的第一个字母也要改为大写,例如,name属性的访问器名称为getName,password属性的访问器名称为getPassword。
  • 一个JavaBean的某个属性也可以只有set方法或get方法,这样的属性通常也称之为只写、只读属性。

(4)在JSP中使用JavaBean

  1. 标签:用于在指定的域范围内查找指定名称的JavaBean对象:
    如果存在则直接返回该JavaBean对象的引用。
    如果不存在则实例化一个新的JavaBean对象并将它以指定的名称存储到指定的域范围中。
    常用语法

    id属性用于指定JavaBean实例对象的引用名称和其存储在域范围中的名称。
    class属性用于指定JavaBean的完整类名(即必须带有包名)。
    scope属性用于指定JavaBean实例对象所存储的域范围,英语培训费用其取值只能是page、request、session和application等四个值中的一个,其默认值是page。

例如:

翻译为(即会生成一个.java文件):

代码效果:从page返回获得person对象,如果不为null 直接使用,如果为null 创建新的Person对象

标签:用于在JSP页面中设置一个JavaBean组件的属性。
标签:用于在JSP页面中获取一个JavaBean组件的属性。

(5)实例
首先,我们写一个JavaBean:

JSP页面:

因为实际开发中,主要应用model2模式,所有javabean相关标签已经很少使用。

setProperty特殊用法
—- 根据请求数据自动封装 Person属性

这里写图片描述

利用最简单的Model 1 JSP+JavaBean模式,我们可以简单的实现一个计算器的功能:

这里写图片描述

代码很简单,在此就不再附上实际代码。

转载于:https://www.cnblogs.com/zhangyanran/p/10037430.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统角色:1.游客:可以搜索、浏览新闻,不能评论新闻,可以注册成为会员 2.会员:可以搜索、浏览新闻,评论新闻,可以修改密码等个人信息 3.编辑:对新闻进行编辑、发布,可以添加删除修改新闻 4.管理员:拥有系统最高权限,可以添加删除修改新闻,可以删除用户,可以添加删除编辑 前台: 首页: 1.新闻分类:(国际 娱乐 体育 等)新闻分类需要从数据库中动态取出(因为后台中有添加删除修改分类的功能), 可以只显示4—5个分类,后面加个“更多>>”链接,来罗列所有分类 2.新闻搜索:(可以选择分类)以新闻标题模糊搜索,有分页功能 3.热点新闻:按新闻点击率高低显示前10条左右的新闻(显示点击率) 4.最新新闻:显示最新添加的新闻(显示日期) 5.公告栏:显示公告信息 6.登录:可选角色有 会员、编辑、管理员,有注册链接按钮,找回密码链接 会员可以对新闻进行评论,游客点击评论时提示注册 注册时包含密码提示问题,以便找回密码,注册验证用ajax动态验证,有分页功能, 包含在线文本编辑器 登陆后有欢迎信息:“您好,XXX” 后台: 新闻分类管理 分类列表(包含删除、修改) 添加分类 新闻管理 新闻列表(包含删除、修改新闻) 添加新闻(支持新闻、图片上传) 查找新闻 (包含删除、修改新闻) 评论管理 公告修改 会员管理 会员列表(包含删除) 查找会员(包含删除) 编辑管理 编辑列表(包含删除、修改) 查找编辑(包含删除、修改) 修改密码 会员:修改密码等个人信息 系统使用说明: 本系统的开发环境是windows xp+myEclipse5.5+Tomcat6.0+sqlserver2000数据库 (1)首先解压我的程序文件夹,安装开发环境软件myEclipse和运行服务器tomcat (2)打开sqlserver的企业管理器,将数据库目录下的sqlserver2000数据库数据文件附加到sqlserver2000。 (2)启动MyEclipse,选择文件->导入->导入现有的工程到WorkPlace,把项目导入 (3)发布xwfb这个web项目到tomcat服务器,启动服务器输入登陆页新闻系统首页index.jsp的地址即可访问了。 注意:本系统采用jdbc:odbc方式连接的数据库,需要在运行前设置数据源,数据源的名称是xwfb,路径附加好的sqlserver数据库 测试管理员帐号和密码: admin 198517 测试用户帐号和密码: linjian 198517
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值