首页 > 代码库 > Javabean

Javabean

Javabean简介

Javabeans就是符合某种特定的规范的Java类。

使用Javabeans的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码的维护性。

Javabean的设计原则

技术分享

设计学生类

技术分享

什么是JSP动作

JSP动作元素(action elements),动作元素为请求处理阶段提供信息。

动作元素遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性、可选的内容、与开始标签匹配的结束标签。

JSP动作元素包含五大类?

技术分享

在JSP页面中如何使用Javabeans

1、像使用普通java类一样,创建Javabean实例。

创建Users.java

技术分享
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;
    }
    
}
View Code

在JSP使用 Users.java

技术分享

index.jsp

技术分享
<%@ page language="java" import="java.util.*" pageEncoding="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="http://www.mamicode.com/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>
View Code

 

 2、在JSP页面中通常使用jsp动作标签使用Javabean

useBeans动作

setProperty动作

getProperty动作

 

<jsp:useBeans>

作用:在jsp页面中实例化或者在指定范围内使用Javabean:

<jsp:useBean id="标示符" class="java类名" scope="作用范围" />

userBean.jsp

技术分享
<%@ page language="java" import="java.util.*" pageEncoding="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="http://www.mamicode.com/styles.css">
    -->
  </head>
  
  <body>
    <jsp:useBean id="myUsers" class="com.po.Users" scope="page" />
    <h1>使用useBean动作创建Javabean的实例</h1>
    <hr>
           用户名:<%=myUsers.getUsername() %><br>
           密码:<%=myUsers.getPassword() %><br>   
  </body>
</html>
View Code

 

 

<jsp:setProperty>

作用:给已经实例化的Javabean对象的属性赋值,一共有四种形式。

技术分享

login.jsp

技术分享
<%@ page language="java" import="java.util.*" pageEncoding="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="http://www.mamicode.com/styles.css">
    -->
  </head>
  
  <body>
   
    <h1>系统登录</h1>
    <hr>
     <form name="loginForm" action="dologin.jsp" method="post">
     <table>
     <tr>
       <td>用户名:</td>
       <td><input type="text" name="" value=""></td>
     </tr>
     <tr>
        <td>密码</td>
        <td><input type="password" name="password" value=""/></td>
     </tr>
     <tr>
         <td colspan="2" align="center"><input type="submit" value="登录"></td>
     </tr>
     </table>
     </form>
  </body>
</html>
View Code

dologin.jsp

技术分享
<%@ page language="java" import="java.util.*" pageEncoding="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="http://www.mamicode.com/styles.css">
    -->
  </head>
  
  <body>
    <jsp:useBean id="myUsers" class="com.po.Users" scope="page" />
    <h1>setProperty动作元素</h1>
    <hr>
    <!--根据表单自动匹配所有的属性  -->
    <!--  
    <jsp:setProperty property="*" name="myUsers"/>-->
    <!-- 根据表单匹配所有部分的属性 -->
    <jsp:setProperty property="username" name="myUsers"/>    
           用户名:<%=myUsers.getUsername() %><br>
           密码:<%=myUsers.getPassword() %><br>   
  </body>
</html>
View Code

 

<jsp:getProperty>

作用:获取指定Javabean对象的属性值

<jsp:getProperty name="JavaBean实例名" property="属性名" />

  <!-- 使用getProperty方式来获取用户名和密码 -->
    用户名:<jsp:getProperty name="myUsers" property="username" /><br>
    密码:<jsp:getProperty name="myUsers" property="password" /><br>  

 

 

javabean的四个作用域范围

说明:使用useBeans的scope属性可以用来指定Javabean的作用范围。

技术分享

 

Model1简介

Model1模型出现前,整个Web应用的情况:几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应。

弊端:在界面层充斥着大量的业务逻辑的代码和数据访问层的代码,Web程序的可扩展性和可维护性非常差。

Javabean的出现可以使jsp页面中使用Javabean封装的数据或者调用Javabean的业务逻辑代码,这样大大提升了程序的可维护性。

技术分享

 

Javabean