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="*"/>

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

    
    
        
  • 相关阅读:
    基于mini2440的两种触屏中断程序(T35)
    TFT LCD控制显示总结(硬件概念、初始化相关配置)
    TFT资料大全
    最全的摄像头资料
    【转】x.509证书在WCF中的应用(CS篇)
    C#中可以使用正则表达式来过滤html字符
    前台调用后台方法(转来的!)
    C#字符串截取(区分汉字)(转)
    用C#制作PDF文件全攻略 (专至csdn)
    证书创建工具 (Makecert.exe)
  • 原文地址:https://www.cnblogs.com/astonc/p/11718805.html
Copyright © 2011-2022 走看看