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,数组转化为字符串
posted on 2019-09-29 18:11 一颗小白杨站在哨所旁 阅读(374) 评论(0) 编辑 收藏 举报