三问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() %>>要簡單了??墒且稽c要明白,我們使用的是javaBean中類的私用成員變量,不再是getUserId屬性。
小結:
通過一些具體了解。認識到javabean在MVC中的作用,以及什么是javabean。它的特點等。
?在mvc設計模型中是model,又稱模型,在一般的程序中,我們稱為數據層,就是用來設置數據的屬性和一些行為的get與set.
?
?
轉載于:https://www.cnblogs.com/llguanli/p/8480638.html
總結
以上是生活随笔為你收集整理的三问JavaBean的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么添加项目到SVN上面
- 下一篇: html以及css的部分相关内容及运用