javabean的基礎實例


目錄

這里寫圖片描述

javabean簡介

符合某種特定規范的Java類
優點:
    1.簡化代碼
    2.功能區分明確
    3.提高可維護性

javabean設計原則

這里寫圖片描述

jsp動作

這里寫圖片描述
這里寫圖片描述

普通方法創建javabean

//usesbean.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->
  </head>

  <body>

    <h1>使用useBean動作創建javabean的實例</h1>
    <hr>
       用戶名:<%=Users.getUsername() %><br>
       密碼:<%=Users.getPassword() %><br>
  </body>
</html>
//index.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%@ page import="com.po.Users" %>
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->
  </head>

  <body>
    <% Users user = new Users(); user.setUsername("admin"); //設置用戶名 user.setPassword("123456");//設置密碼 %>
    <h1>使用普通方式創建javabean的實例</h1>
    <hr>
       用戶名:<%=user.getUsername() %><br>
       密碼:<%=user.getPassword() %><br>
  </body>
</html>

這里寫圖片描述

jsp:useBean

作用:在jsp頁面中實例化或者在制定范圍內使用javabean:

相對於上面的usebean.jsp jsp實例化的名字改為了myUser,所以下面的用戶名密碼夜鶯改變


    <h1>使用useBean動作創建javabean的實例</h1>
    <hr>
    //使用了
       用戶名:<%=myUsers.getUsername() %><br>
       密碼:<%=myUsers.getPassword() %><br>
  </body>
</html>

jsp:setProperty

這里寫圖片描述
根據表單自動匹配所有的屬性

//dologin.jsp
<body>
    <jsp:useBean id="myUsers" class="com.po.Users" scope="page"/>
    //
    <!--根據表單自動匹配所有的屬性 -->
   <%-- <jsp:setProperty name="myUsers" property="*"/> --%>
   //name應該和javabean中保持一致
   <!-- 使用getProperty方式來獲取用戶名和密碼 -->
      用戶名:<jsp:getProperty name="myUsers" property="username"/> <br>
      密碼:<jsp:getProperty name="myUsers" property="password"/><br>

根據表單自動匹配部分的屬性

 <!--根據表單匹配所有部分的屬性 -->
   <%-- <jsp:setProperty name="myUsers" property="username"/> --%>

根表單無關,通過手工賦值給屬性

<!--根表單無關,通過手工賦值給屬性 -->
   <%-- <jsp:setProperty name="myUsers" property="username" value="lisi"/> <jsp:setProperty name="myUsers" property="password" value="888888"/> --%>
<!--username 通過自動匹配賦值 -->
   <jsp:setProperty name="myUsers" property="username"/>
    <!--password通過URL傳參數給屬性賦值 -->
   <jsp:setProperty name="myUsers" property="password" param="mypass"/>

jsp:getProperty

這里寫圖片描述

<!-- 使用getProperty方式來獲取用戶名和密碼 -->
      用戶名:<jsp:getProperty name="myUsers" property="username"/> <br>
      密碼:<jsp:getProperty name="myUsers" property="password"/><br>


javabean的四個 作用域范圍

這里寫圖片描述

    <!--使用動作元素獲取用戶名和密碼-->
 <jsp:useBean id="myUsers" class="com.po.Users" scope="page"/>
   用戶名:<jsp:getProperty name="myUsers" property="username"/><br>
   密碼:<jsp:getProperty name="myUsers" property="password"/><br>

 <!-- 使用內置對象獲取用戶名和密碼 -->
    <hr>

       用戶名:<%=((Users)application.getAttribute("myUsers")).getUsername()%><br>
       密碼:<%=((Users)application.getAttribute("myUsers")).getPassword() %><br>

分別使用session application request獲取

<%-- 
       用戶名:<%=((Users)application.getAttribute("myUsers")).getUsername()%><br>
       密碼:<%=((Users)application.getAttribute("myUsers")).getPassword() %><br>
   --%>
   <%-- 
       用戶名:<%=((Users)session.getAttribute("myUsers")).getUsername()%><br>
       密碼:<%=((Users)session.getAttribute("myUsers")).getPassword() %><br>
   --%>
   <%-- 
       用戶名:<%=((Users)request.getAttribute("myUsers")).getUsername()%><br>
       密碼:<%=((Users)request.getAttribute("myUsers")).getPassword() %><br>
   --%>

Model1

這里寫圖片描述

這里寫圖片描述

Model1 實現用戶登錄

package com.dao;

import com.po.Users;

//用戶的業務邏輯類,用來封裝業務邏輯
public class UsersDAO {

    //用戶登錄方法
    public boolean usersLogin(Users u)
    {
        if("admin".equals(u.getUsername())&&"admin".equals(u.getPassword()))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}
package com.po;
//用戶類,封裝數據的
public class Users {

    private String username;
    private String password;

    public Users()
    {

    }

    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;
    }


}
//dologin.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>

<% request.setCharacterEncoding("utf-8"); %>
<jsp:useBean id="loginUser" class="com.po.Users" scope="page"/>
<jsp:useBean id="userDAO" class="com.dao.UsersDAO" scope="page"/>
<jsp:setProperty property="*" name="loginUser"/>

<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //如果用戶和密碼都等於admin,則登錄成功 //直接調用業務邏輯userDAO,直接判斷 if(userDAO.usersLogin(loginUser)) { session.setAttribute("loginUser", loginUser.getUsername()); request.getRequestDispatcher("login_success.jsp").forward(request, response); } else { response.sendRedirect("login_failure.jsp"); } %>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM