zoukankan      html  css  js  c++  java
  • 5.JavaBean

      JavaBean
        JSP开发初期HTML,css,java代码混杂在一起,给程序的调试和维护带来很大困难。将与HTML分离并将对象和逻辑java代码封装成类就是一个JavaBean组件。
      1.JavaBean创建
        首先Eclipse中创建一个Web项目,然后在src文件夹下创建一个包,这里来存放java文件(JavaBean本质上是一个java文件)。
        接下来在WebContent / WEB-INF 目录下创建名为classes文件夹,并在其目录下创建和上面同名的包。

     

      2.编写一个JavaBean

        在src/com.ly.bean下创建一个java类,我们来完成对邮箱地址格式正确与否的判断。

        保存后的java文件会自动编译形成一个.class字节码文件,为了让Tomcat找到这个文件,一般编译器会自动添加在WEB-INF/classes中(不会显示在资源管理器上),也可以手动将这个类文件复制过去。

        JavaBean实质上是一个java类,它的特征是:

    • 提供一个默认的无参构造函数。
    • 需要被序列化并且实现了 Serializable 接口。
    • 可能有一系列可读写属性。
    • 所有的属性是私有,方法是公有的
    • 可能有一系列的 getXXX()来获得内部属性或 setXXX()来设置内部属性方法。
    package com.lyq.bean;
    
    import java.io.Serializable;
    
    public class Email implements Serializable{
        private static final long serialVersionUID = 1L;
        private String mailAdd;
        private boolean email;
        public Email(){}
        public Email(String mailAdd) {
            this.mailAdd = mailAdd;
        }
        public boolean isEmail() {
            String regex = "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
            if (mailAdd.matches(regex)) email = true;
            return email;
        }
        public String getMailAdd() {
            return mailAdd;
        }
        public void setMailAdd(String mailAdd) {
            this.mailAdd = mailAdd;
        }
    
    }

      3.在jsp中使用JavaBean

      创建register.jsp页面来写入邮箱,通过表单传递给result.jsp页面

        register.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <form action="result.jsp" method="post">
            <input type="text" name="mailAdd">
            <input type="submit">
        </form>
    </body>
    </html>

      result.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ page import="com.lyq.bean" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <div align="center">
            <%
                String mailAdd = request.getParameter("mailAdd");
           //实例化Email
           Email email = new Email(mailAdd);  
                if (email.isEmail())
                    out.print("That's right!");
                else
                    out.print("false");
                    
            %>
            <jsp:useBean id="mail" class="com.lyq.bean.Email">
                <jsp:setProperty property="mailAdd" name="mail" />  
                邮箱名为:<jsp:getProperty property="mailAdd" name="mail"/>
            </jsp:useBean>
            <a href="register.jsp">返回</a>
        </div>
    </body>
    </html>

      效果:

     

     

      

    这里用了两种方式,第二种方式:

        通过<jsp:useBean>标签来实例化Email对象,<jsp:setProperty>标签来设置JavaBean中的属性信息,<jsp:getProperty>来获取属性信息。

        语法:

    <jsp:useBean id="给JavaBean起的名字" class="JavaBean类引入" scope="bean的作用域"></jsp:useBean>
    或者
    <jsp:useBean id="给JavaBean起的名字" class="JavaBean类引入" scope="bean的作用域"/>
    scope 的值可以是 page,request,session 或 application

      

    <jsp:useBean id="id" class="bean 编译的类" scope="bean 作用域">
       <jsp:setProperty name="bean 的 id" property="属性名"  
                        value="value"/>
      通过value来给JavaBean中的属性赋值
    <jsp:getProperty name="bean 的 id" property="属性名"/> ........... </jsp:useBean>

      另外,对于上面例子中的表单提交,表单信息中的属性名称最好是设置成JavaBean中的属性名称,这样就可以通过

    <jsp:setProperty name="" property="*"/>

    来接受所有的参数,可以减少重复工作。

    
    
        
  • 相关阅读:
    【译】常用网络端口号列表
    使用Simian进行重复代码检测
    使用GCOV进行代码覆盖率统计
    AFL Fuzz安装及完成一次简单的模糊测试
    数据可视化概述
    完成下方的 which_date() 函数,并返回某一起始时间后特定一段时间的日期
    linux用户不在sudoers文件中
    linux /lib64/libc.so.6: version `GLIBC_2.17′ not found
    web api 2.0 上传文件超过4M时,出现404错误
    Centos7 编译安装 Nginx Mariadb Asp.net Core2 (实测 笔记 Centos 7.7 + Openssl 1.1.1d + Mariadb 10.3.7 + Nginx 1.16.1 + Asp.net. Core 2 )
  • 原文地址:https://www.cnblogs.com/astonc/p/11718805.html
Copyright © 2011-2022 走看看