曾经觉得javabenan是一些java类.后来查看了一些百科 .javabean是java组件技术,又是遵循一些约定.不是非常理解.

什么是javabean?

在jsp程序中用来封装业务逻辑,数据库操作与实体的类.

怎样理解上面的组件技术?

这些编写的java类,被放在一个特定的包中,能够打包这些类为jar等格式,复用性强,一次编译,可任意执行.

何为遵循特性约束?

1由 property,method,event组成.

2必须有public的无參构造函数

3类命名XXXBean

综合来看, javabean就是我们曾经封装的一个具无參构造函数的类,该类有属性方法等.

我们用实例来看

javabean中 User类

package com.bjpower.drp.sysmgr.domain;
import java.util.Date;
public class User {public String getUserId() {return userId;}public void setUserId(String userId) {this.userId = userId;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getContactTel() {return contactTel== null? "" : contactTel;}public void setContactTel(String contactTel) {this.contactTel = contactTel;}public String getEmail() {return email == null ?

"" : email; } public void setEmail(String email) { this.email = email; } public Date getCreateDate() { return createDate; } public void setCreateDate(Date createDate) { this.createDate = createDate; } // userID private String userId; // username private String userName; // password private String password; private String contactTel; private String email; // util Date private Date createDate; }

该类中,我们将成员变量设置为private,将属性设置为public,而且为getXXXX(变量名).

Control类

package com.bjpower.sysmgr;//c+f+o
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.bjpower.drp.sysmgr.domain.User;
import com.bjpower.drp.util.DbUtil;
import com.bjpower.drp.util.PageModel;/*** 採用单例模式* @author v-hanyk**/
public class userManager {private static userManager instance=null;private userManager(){}//入口方法public static synchronized userManager getUserMangwer(){if(instance== null){instance = new userManager();}return instance;}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// 必须显示调用父类方法if (Constants.ADD.equals(GetCommand())) {add(req, resp);} else if (Constants.DEL.equals(GetCommand())) {delete(req, resp);} else if (Constants.MOIDFY.equals(GetCommand())) {modify(req, resp);} else if (Constants.SHOW_ADD.equals(GetCommand())) {showAdd(req, resp);} else if (Constants.QUERY.equals(GetCommand())) {//查询findUserById(req, resp);}}/*** 依据用户代码查询用户* @param req*@param resq* @return* @throws SQLException */public void findUserById(HttpServletRequest req, HttpServletResponse resp) throws Exception {StringBuffer sql= new StringBuffer();sql.append("select user_id, user_name, password, contact_tel, email, create_date from t_user  where user_id= ?");Connection conn=null;PreparedStatement pstmt=null;ResultSet rs= null;User user=null;String userId=req.getParameter("userId");try{conn= DbUtil.getconnection();pstmt=conn.prepareStatement(sql.toString());pstmt.setString(1, userId);rs=pstmt.executeQuery();if(rs.next()){user=new User();user.setUserId(rs.getString("user_id"));user.setUserName(rs.getString("user_name"));user.setPassword(rs.getString("password"));user.setContactTel(rs.getString("contact_tel"));user.setEmail(rs.getString("email"));   user.setCreateDate(rs.getTimestamp("create_date"));   }req.setAttribute("user", user);//转发。带resq与resq,若是重定向。则没有req,resq则没有数据resp.getRequestDispatcher("flowcard/modifyuser.jsp").forward(req, resp);}catch(SQLException e){e.printStackTrace();}finally{DbUtil.close(rs);DbUtil.close(pstmt);DbUtil.close(conn);}return user;}}

Control类是一个简单的业务处理类。

View页面获取javaBean中数据

通过EL表达式

<table width="95%" border="0" cellpadding="0" cellspacing="0"><tr><td width="22%" height="29"><div align="right">用户代码: </div></td><td width="78%"><input name="userId" type="text" class="text1" id="userId"size="10" maxlength="10" readonly="true" value=${user.Id}></td></tr><tr><td height="26"><div align="right"><font color="#FF0000">*</font>用户名称: </div></td><td><input name="userName" type="text" class="text1" id="userName"size="20" maxlength="20" value=${user.userName}></td></tr>

页面展示我们使用了EL表达式,比曾经的获取用户value=<%=user.getUserName() %>>要简单了。可是一点要明白,我们使用的是javaBean中类的私用成员变量,不再是getUserId属性。

小结:

通过一些具体了解。认识到javabean在MVC中的作用,以及什么是javabean。它的特点等。

在mvc设计模型中是model,又称模型,在一般的程序中,我们称为数据层,就是用来设置数据的属性和一些行为的get与set.

转载于:https://www.cnblogs.com/llguanli/p/8480638.html

三问JavaBean相关推荐

  1. 旷视AI「炼丹房」Brain++ 再升级!首席科学家孙剑发AI「灵魂」三问

    来源:新智元 [导读]从深度学习算法.计算机视觉算法到AIoT算法,从开源框架旷视天元到AI生产力平台Brain++,旷视十年故事,旷视首席科学家.旷视研究院院长孙剑讲给你听. 万万没想到,我和小伙伴 ...

  2. 关于联邦学习What、How、Who的灵魂三问

    最近沉迷于学习政治经济学无法自拔,听了很多资本论相关的课程.今天也尝试通过what how who的方式介绍下联邦学习, (感谢这个领域的专家,老同学Dr Liu给我的输入) 灵魂三问指的是: 1.联 ...

  3. 旷视AI「炼丹房」Brain++ 再升级 首席科学家孙剑发AI「灵魂」三问

    万万没想到,我和小伙伴们被旷厂拿去「炼丹」了. 没错,就是这个炼丹炉! 站在炉子中央,各种算法代码眼前飞闪,让我体验了一把时空穿梭的快乐. OMG!真·颅内高潮... 业界认为「炼丹」过程正如算法研究 ...

  4. 世界地板大会姚红鹏的三问

    016年3月21日下午,"WFF-2016国际地板高峰论坛"在上海证大丽笙酒店隆重举行.本次大会由中国林产工业协会主办,旨在促进国内外地板产业行业的交流与发展,宏观分析当前市场局势 ...

  5. 三问(why?what?how?)金融领域的机器学习

    摘要: 都喜欢人生三问,那么金融领域的机器学习三问了解一下. 机器学习可能会很有魔力,即使它背后没有魔法.尽管如此,机器学习项目的成功更多地取决于构建高效的基础架构,收集合适的数据集以及应用正确的算法 ...

  6. 【新书速递】你想知道的通信“灵魂三问”都在这里……(福利再现)

    更多精彩内容请关注我们 来源丨知书通礼(ID:xintongzstl) 作者丨杨波 每次遇到刚入行又爱思考的年轻人,经常被问及有关通信的"灵魂三问". "通信是什么?&q ...

  7. AI端部署“三问”:模型如何跑起来、跑得快、持续跑

    关注公众号,发现CV技术之美 最近摸鱼期间,发现身为程序员的我被赋予了另一个身份"新生代农民工",简直炸了!重点还官宣了,这就更加实锤了啊!我就想说,我们新生代农民工招谁惹谁了,我 ...

  8. [认证] 丢掉盔甲,我们依然是骄傲的骑士——Secooler“三问四看”话认证培训...

    转载地址:http://www.itpub.net/thread-1755237-1-1.html DBA的高薪引无数英雄豪杰掏腰包!很多IT培训机构看准了这一点,认为这里"人傻钱多&quo ...

  9. 软件测试灵魂三问,如何回怼?

    灵魂三问: 第 1 问:为什么这个 Bug 测不出来? 第 2 问:测试怎么测得?到底会不会测? 第 3 问:测试快点啊!为什么总是测试拖后腿,最后才报 Bug? 有朋友说: 对测试新人则是" ...

最新文章

  1. [转载].Freescale.伦德全 - 电路板级的电磁兼容设计
  2. OpenGL编程指南14:混合半透明Blend
  3. 改成中文版的_lol手游怎么改成中文版?英雄联盟手游中文版更改教程
  4. java platform_Java Platform Module系统中的可选依赖项
  5. linux bind日志级别,BIND日志相关(一)
  6. 创建一个动物类 java_使用java面向对象创建动物类并输出动物信息
  7. android 多个textview,Android:多个textview像单个文本
  8. 系统分析员、系统架构师、项目经理的区别(转载)
  9. 【华为云技术分享】快速理解spark-on-k8s中的external-shuffle-service
  10. Verilog描述——一位全加器,四选一选择器,计数器
  11. SAP FI 系列 007:会计科目主数据维护
  12. android基础复习笔记——3.登录授权、TCP/IP、HTTPS原理
  13. uni-app实现APP中打开第三方app
  14. 阿里云云数据库RDS基本介绍与购买流程(二十二)
  15. 移动服务器连接响应慢,移动打开网页速度慢的解决方法
  16. 一封学生来信:突破大学的迷茫
  17. 在线装机测试软件,完美装机大师工具V3.0专业版
  18. 网站地图是什么?该如何生成
  19. 台式电脑win7旗舰版 怎么调节屏幕亮度 显示器太亮了!
  20. matlab中filtfilt函数解析

热门文章

  1. WEBPACK 入门
  2. ASP.NET MVC 学习6、学习使用Code First Migrations功能,把Model的更新同步到DB中
  3. 某公司的网络管理员职责
  4. 在SecureCRT中,hbase shell不能回退的问题
  5. 剑指Offer(Java实现)把二叉树打印成多行
  6. Java图片文本识别工具Eye实现(不支持中文)
  7. SpeedNet: Learning the Speediness in Videos
  8. Java的知识点29—— 文件字符流、字节数组流
  9. C++ ,leetcode 43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式
  10. C++ leetcode 7. 整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。