zoukankan      html  css  js  c++  java
  • JavaBean技术

    概述

    在未使用JavaBean技术的时候,我们通常将Java代码写入到jsp页面中,这种做法,使得jsp页面混乱,给修改和维护代码带来了一定的困难。而JavaBean技术是将HTML代码与Java代码相分离。从而降低了Html代码和Java代码之间的耦合度。

    JavaBean使用的优点

    将Java代码单独封装在某个类之中,提高了代码的重用性和降低了HTML与Java代码的耦合度,并且优化了Jsp页面。
    他的开发模式
    在这里插入图片描述

    JavaBean的种类

    1.**可视化的JavaBean:**主要实现一些可视化的界面
    2.**非可视化的JavaBean:**实现一些业务逻辑或一些业务对象。
    我们看一个例子
    在这个例子中,我们将检测所输入的邮箱地址是否符合标准封装在Email类中。
    而下图界面,通过Html代码实现。
    在这里插入图片描述

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body>
      <form action="result.jsp" method="post">
      <table align="center" width="300" border="1" height="150">
      <tr>
        <td cilspan="2" align="center">
          <b>邮箱认证系统:</b>
        </td>
        </tr>
        <tr>
          <td align="right">邮箱地址:
          </td>
          <td><input type="text" name="mailAdd"/></td>
        </tr>
        <tr>
          <td colsapn="2" align="center"><input type="submit"/></td>
        </tr>
      </table>
      </form>
      </body>
    </html>
    
    
    <%@ page contentType="text/html;charset=UTF-8" language="java"  import="bean.Email"%>
    
    <html>
    <head>
    
        <title>Title</title>
    </head>
    <body>
    <div>
    
        <%
    
           String mailAdd=request.getParameter("mailAdd");
           Email email=new  Email(mailAdd);
           if(email.isEmail()){
               out.print(mailAdd+"<br>是<br>");
           }else{
               out.print(mailAdd+"<br>不是<br>");
           }
            %>
        <a href="index.jsp">返回</a>
    </div>
    </body>
    </html>
    
    
    package 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;
        }
    }
    
    

    在JavaBean的规范中,要求JavaBean对象提供默认的无参的构造方法,但除了默认无参的构造函数外,JavaBean对象也可以根据相关属性提供构造方法。

    JavaBean的应用

    在这里插入图片描述
    在这里插入图片描述
    下面我们看一个栗子
    并且品味一下他
    在这里插入图片描述

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body>
      <jsp:useBean id="produce" class="com.Gch.bean.Produce" ></jsp:useBean>
      <jsp:setProperty property="name" name="produce" value="洗衣机"></jsp:setProperty>
      <jsp:setProperty property="price" name="produce" value="88.88"></jsp:setProperty>
      <jsp:setProperty property="count" name="produce" value="100"></jsp:setProperty>
      <jsp:setProperty property="factoryAdd" name="produce" value="吉林省长春工程学院"></jsp:setProperty>
      <div>
        <ul>
          <li>商品名:<jsp:getProperty name="produce" property="name"/></li>
          <li>商品价格:<jsp:getProperty name="produce" property="price"/></li>
          <li>商品数量:<jsp:getProperty name="produce" property="count"/></li>
          <li>商品产地:<jsp:getProperty name="produce" property="factoryAdd"/></li>
        </ul>
      </div>
      </body>
    </html>
    
    
    package com.Gch.bean;
    
    public class Produce {
        //商品名称
        private String name;
        //商品价格
        private double price;
        //数量
        private int count;
        //出场地址
        private String factoryAdd;
        public String getName(){
            return name;
        }
        public double getPrice(){
            return price;
        }
        public int getCount(){
            return count;
        }
        public String getFactoryAdd(){
            return factoryAdd;
        }
        public void setName(String name){
            this.name=name;
        }
        public void setPrice(double price){
            this.price=price;
        }
        public void setCount(int count){
            this.count=count;
        }
        public void setFactoryAdd(String factoryAdd){
            this.factoryAdd=factoryAdd;
        }
    }
    
    

    在idea中遇到该错误时

    Classes from the default package must not be referenced from JSP file
    是因为
    你所写的Java类直接放在了src下面,这样是不对的
    在这里插入图片描述
    我们需要在src下面创建一个包,把所写的类放在所创建的包下面。
    在这里插入图片描述

    jsp中应用JavaBean

    解决中文乱码,在Jsp页面上用来显示时间的JavaBean,数组转化为字符串

  • 相关阅读:
    RocketMQ系列(一)基本概念
    怎样实现登录?| Cookie or JWT
    Hotspot GC研发工程师也许漏掉了一块逻辑
    初级Java工程师也能轻松进行JVM调优了
    自动化不知如何参数化(二)?xlrd来帮你解决
    自动化不知如何参数化(一)?xlrd来帮你解决
    SpringCloud系列之API网关(Gateway)服务Zuul
    SpringCloud系列之客户端负载均衡Netflix Ribbon
    SpringCloud系列之使用Feign进行服务调用
    Spring Security系列之极速入门与实践教程
  • 原文地址:https://www.cnblogs.com/gaochunhui/p/11700608.html
Copyright © 2011-2022 走看看