JavaWeb基础—JavaBean
一、什么是JavaBean
一个遵循一定规范的普通的Java类
百度的JavaBean规范:
(1)JavaBean 类必须是一个公共类,并将其访问属性设置为 public ,
如: public class user{......}
(2)JavaBean 类必须有一个空的构造函数:
类中必须有一个不带参数的公用构造器
(3)一个javaBean类不应有公共实例变量,类变量都为private ,
如: private int id;
(4)属性应该通过一组存取方法(getXxx 和 setXxx)来访问,
一般是IDE(Eclipse、JBuilder) 为属性生成getter/setter 方法
自己的理解:
必须要为成员提供set/get方法(两者提供一种也是可以的,称为只读或者只写属性,例如提供一些计算的方法,结果只能读取,不能修改)
必须要有默认的无参构造器。
只有set/get方法,则属性名称就是set/get方法去除set/get后首字母小写了!
boolean类型读方法可以是is开头或者get开头
(测试的时候如有必要,可重写toString()方法)
二、为什么要有JavaBean
为了和 jsp 页面传递数据简化交互过程而产生的,(封装数据、传递数据)
三、如何使用JavaBean
三个JSP标签:
<jsp:userBean>:使用范例:
<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>
其中id对JavaBean实例对象名称,class为类完整类名,scope默认值为page,在jsp页面中使用此标签后即可直接使用此对象
<jsp:setProperty>:例如两种格式,对属性的操作
<jsp:setProperty name="beanName" property="propertyName" value="string字符串"/>
<jsp:setProperty name="beanName" property="propertyName" value="<%= expression %>" />
其中第一种只能用于字符串类型,复合类型应使用第二种,如:value="<%=new Date()%>"
<jsp:getProperty>
<jsp:getProperty name="beanInstanceName" property="PropertyName" />
四、工具类BeanUtils的使用
此工具主要是为了方便的操作JavaBean
一般的用法主要体现在:
1)beanUtils 可以便于对javaBean的属性进行赋值。
2)beanUtils 可以便于对javaBean的对象进行赋值。
3)beanUtils可以将一个MAP集合的数据拷贝到一个javabean对象中。
这是Apache的开源项目,使用的前提是导包:
commons-beanutils-1.9.2.jar
commons-logging.jar (依赖包)
常用方法:
- BeanUtils.setProperty(bean, name, value);其中bean是指你将要设置的对象,name指的是将要设置的属性(写成”属性名”),value(从配置文件中读取到到的字符串值)
- BeanUtils。copyProperties(bean, name, value),和上面的方法是完全一样的。使用哪个都可以
- ConvertUtils.register(Converter converter , ..),当需要将String数据转换成引用数据类型(自定义数据类型时),需要使用此方法实现转换。
- BeanUtils.populate(bean,Map),其中Map中的key必须与目标对象中的属性名相同,否则不能实现拷贝。
- BeanUtils.copyProperties(newObject,oldObject),实现对象的拷贝
介绍一个小小的封装:将map数据封装到bean中:
public static <T> T toBean(Map map, Class<T> clazz) {
try {
//创建指定类型的JavaBean
T bean = clazz.newInstance();
//使用工具类进行封装
BeanUtils.populate(bean, map);
//把bean返回
return bean;
}catch(Exception e) {
throw new RuntimeException(e);
}
}
简单的应用:
//进行表单数据的封装操作等,调用service的login()方法
User form = CommonUtils.toBean(request.getParameterMap(), User.class);
JavaWeb基础—JavaBean的更多相关文章
- javaweb学习--javabean
阅读电子书<Java Web从入门到精通>密码:461c,学习JavaWeb基础知识 JavaBean类似于.net的实体类,但是规则上稍复杂一些,能实现的功能也多一些 一.介绍 1.规则 ...
- JavaWeb基础知识总结
JavaWeb基础知识总结. 1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供 ...
- JavaWeb基础: ServletContext
基本概念 Web容器在启动时,会为每个Web应用程序都创建一个对应的ServletContext对象,它代表当前Web应用. ServletContext(javax.servlet.http.Ser ...
- JavaWeb基础: 学习大纲
JavaWeb基础: Web应用和Web服务器 JavaWeb基础: Tomcat JavaWeb基础:HTTP协议和基于Restful的架构 JavaWeb基础: Web工程配置文件 JavaWeb ...
- 超详细的Java面试题总结(四 )之JavaWeb基础知识总结
系列文章请查看: 超详细的Java面试题总结(一)之Java基础知识篇 超详细的Java面试题总结(二)之Java基础知识篇 超详细的Java面试题总结(三)之Java集合篇常见问题 超详细的Java ...
- 关于java基础、多线程、JavaWeb基础、数据库、SSM、Springboot技术汇总
作者 : Stanley 罗昊 本人自行总结,纯手打,有疑问请在评论区留言 [转载请注明出处和署名,谢谢!] 一.java基础 1.多态有哪些体现形式? 重写.重载 2. Overriding的是什么 ...
- javaweb基础(22)_Servlet+JSP+JavaBean实战登陆
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- [Java面试三]JavaWeb基础知识总结.
1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供外界访问的Web资源分为: • 静 ...
- [JavaWeb基础] 008.Spring初步配置
框架简介: Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Develop ...
随机推荐
- 灰度图的直方图均衡化(Histogram Equalization)原理与 Python 实现
原理 直方图均衡化是一种通过使用图像直方图,调整对比度的图像处理方法:通过对图像的强度(intensity)进行某种非线性变换,使得变换后的图像直方图为近似均匀分布,从而,达到提高图像对比度和增强图片 ...
- 奇怪的等待事件“enq: ss - contention”
数据库有时会遇到大量的进程发生'enq: ss - contention'等待,持续5到10分钟,然后自动消失.从字面上看,'SS'是Sort Segment: select * from v$loc ...
- 如何制作 Objective-C 的UML图 [1]
如何制作 Objective-C 的UML图 [1] 说明 本教程旨在教你如何制作 Objective-C 的UML图,此为第一部分. 步骤 注册(在线制作) https://www.processo ...
- Centos7 apache2.4.29(httpd) 安装
重点参考文章:https://blog.csdn.net/MrDing991124/article/details/78829184 写的很详细了,自己按着改博文走了不遍,不错! 一.配置安装环境 ...
- 12-5 张雨RTCM3数据解码解不出的原因
数据大小:75kB 时间12-4 原因:二进制数据乱码,未通过电文头检验 2018-12-10 08:44:05 张雨RTCM32-MSM4无法固定,连差分都没有
- 通过Python实现一个文档的半自动录入工具
需求出现/使用场景: 因为公司需要将word办的接口文档在线化,看起来是个很好的事情,但是就是苦逼了我们这些干活的,其中工程量最大的就是参数的录入,要是参数少也罢,有的接口动辄三四十个参数,更甚八九十 ...
- Oracle中修改sysman和dbsnmp密码正确流程
1.停止dbconsole $ emctl stop dbconsole 查看状态,确认dbconsole已经停止 $ emctl status dbconsole 2.修改sysman用户和db ...
- iOS应用内抓包、NSURLProtocol 拦截 APP 内的网络请求
前言 开发中遇到需要获取SDK中的数据,由于无法看到代码,所以只能通过监听所有的网络请求数据,截取相应的返回数据,可以通过NSURLProtocol实现,还可用于与H5的交互 一.NSURLProto ...
- P2245 星际导航
题目描述 sideman 做好了回到 Gliese星球的硬件准备,但是 sideman 的导航系统还没有完全设计好.为了方便起见,我们可以认为宇宙是一张有 N 个顶点和 M 条边的带权无向图,顶点表示 ...
- bitMap算法实现以及ckHash函数类,将字符串映射成数字,同时可以将数字映射成字符串
ckHash函数类,将字符串映射成数字,同时可以将数字映射成字符串 说明 1.所谓的BitMap就是用一个bit位来标记某个元素所对应的value,而key即是该元素,由于BitMap使用了bit位来 ...