三问JavaBean
曾经觉得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相关推荐
- 旷视AI「炼丹房」Brain++ 再升级!首席科学家孙剑发AI「灵魂」三问
来源:新智元 [导读]从深度学习算法.计算机视觉算法到AIoT算法,从开源框架旷视天元到AI生产力平台Brain++,旷视十年故事,旷视首席科学家.旷视研究院院长孙剑讲给你听. 万万没想到,我和小伙伴 ...
- 关于联邦学习What、How、Who的灵魂三问
最近沉迷于学习政治经济学无法自拔,听了很多资本论相关的课程.今天也尝试通过what how who的方式介绍下联邦学习, (感谢这个领域的专家,老同学Dr Liu给我的输入) 灵魂三问指的是: 1.联 ...
- 旷视AI「炼丹房」Brain++ 再升级 首席科学家孙剑发AI「灵魂」三问
万万没想到,我和小伙伴们被旷厂拿去「炼丹」了. 没错,就是这个炼丹炉! 站在炉子中央,各种算法代码眼前飞闪,让我体验了一把时空穿梭的快乐. OMG!真·颅内高潮... 业界认为「炼丹」过程正如算法研究 ...
- 世界地板大会姚红鹏的三问
016年3月21日下午,"WFF-2016国际地板高峰论坛"在上海证大丽笙酒店隆重举行.本次大会由中国林产工业协会主办,旨在促进国内外地板产业行业的交流与发展,宏观分析当前市场局势 ...
- 三问(why?what?how?)金融领域的机器学习
摘要: 都喜欢人生三问,那么金融领域的机器学习三问了解一下. 机器学习可能会很有魔力,即使它背后没有魔法.尽管如此,机器学习项目的成功更多地取决于构建高效的基础架构,收集合适的数据集以及应用正确的算法 ...
- 【新书速递】你想知道的通信“灵魂三问”都在这里……(福利再现)
更多精彩内容请关注我们 来源丨知书通礼(ID:xintongzstl) 作者丨杨波 每次遇到刚入行又爱思考的年轻人,经常被问及有关通信的"灵魂三问". "通信是什么?&q ...
- AI端部署“三问”:模型如何跑起来、跑得快、持续跑
关注公众号,发现CV技术之美 最近摸鱼期间,发现身为程序员的我被赋予了另一个身份"新生代农民工",简直炸了!重点还官宣了,这就更加实锤了啊!我就想说,我们新生代农民工招谁惹谁了,我 ...
- [认证] 丢掉盔甲,我们依然是骄傲的骑士——Secooler“三问四看”话认证培训...
转载地址:http://www.itpub.net/thread-1755237-1-1.html DBA的高薪引无数英雄豪杰掏腰包!很多IT培训机构看准了这一点,认为这里"人傻钱多&quo ...
- 软件测试灵魂三问,如何回怼?
灵魂三问: 第 1 问:为什么这个 Bug 测不出来? 第 2 问:测试怎么测得?到底会不会测? 第 3 问:测试快点啊!为什么总是测试拖后腿,最后才报 Bug? 有朋友说: 对测试新人则是" ...
最新文章
- [转载].Freescale.伦德全 - 电路板级的电磁兼容设计
- OpenGL编程指南14:混合半透明Blend
- 改成中文版的_lol手游怎么改成中文版?英雄联盟手游中文版更改教程
- java platform_Java Platform Module系统中的可选依赖项
- linux bind日志级别,BIND日志相关(一)
- 创建一个动物类 java_使用java面向对象创建动物类并输出动物信息
- android 多个textview,Android:多个textview像单个文本
- 系统分析员、系统架构师、项目经理的区别(转载)
- 【华为云技术分享】快速理解spark-on-k8s中的external-shuffle-service
- Verilog描述——一位全加器,四选一选择器,计数器
- SAP FI 系列 007:会计科目主数据维护
- android基础复习笔记——3.登录授权、TCP/IP、HTTPS原理
- uni-app实现APP中打开第三方app
- 阿里云云数据库RDS基本介绍与购买流程(二十二)
- 移动服务器连接响应慢,移动打开网页速度慢的解决方法
- 一封学生来信:突破大学的迷茫
- 在线装机测试软件,完美装机大师工具V3.0专业版
- 网站地图是什么?该如何生成
- 台式电脑win7旗舰版 怎么调节屏幕亮度 显示器太亮了!
- matlab中filtfilt函数解析
热门文章
- WEBPACK 入门
- ASP.NET MVC 学习6、学习使用Code First Migrations功能,把Model的更新同步到DB中
- 某公司的网络管理员职责
- 在SecureCRT中,hbase shell不能回退的问题
- 剑指Offer(Java实现)把二叉树打印成多行
- Java图片文本识别工具Eye实现(不支持中文)
- SpeedNet: Learning the Speediness in Videos
- Java的知识点29—— 文件字符流、字节数组流
- C++ ,leetcode 43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式
- C++ leetcode 7. 整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。