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

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


    
原文地址:https://www.cnblogs.com/astonc/p/11718805.html