您的位置:首页 > 编程语言 > Java开发

JSP笔记-JavaBean技术

2016-10-23 15:06 351 查看
“蓝瘦,香菇,香菇在这里”

1 JavaBean技术

JavaBean 的产生,使 JSP 页面中的业务逻辑变得更加清晰,程序之中的实体对象及业务逻辑可以单独封装到 Java 类之中,JSP 页面可以通过 自身操作 JavaBean 的动作标识对其进行操作,改变了 HTML 网页代码与 Java 代码混乱的编写方式,不仅提高了程序的可读性、易维护性,而且提高了 代码的重用性。

JavaBean 是一种 JAVA 语言写成的可重用组件

Javabean 就是为了和 jsp 页面传数据化简交互过程而产生的。

使 JSP 页面中的 java 代码分离出去,降低了耦合

接下来给出的是JavaBean与其它Java类相比而言独一无二的特征(规范):

提供一个默认的无参构造函数。

需要被序列化并且实现了Serializable接口。(实现序列化表示将对象转换成可存储或可传输的状态,好像可以不用)

可能有一系列可读写属性。

可能有一系列的”getter”或”setter”方法。

1.1 JavaBean的种类

可视化 JavaBean:用于实现可视化界面,一般用于 Swing 的程序中,JSP开发少用

非可视化 JavaBean : 分为值 JavaBean 和 工具 JavaBean

值 JavaBean :严格遵循 JavaBean的命名规范,通常用来封装表单数据,作为信息的容器

工具JavaBean :可以不遵循 JavaBean的命名规范 用于封装业务逻辑,数据操作等,连接数据库等,实现业务逻辑与页面显示的分离,提高了代码的可读性与易维护性。

值 JavaBean

UserBean.java


public class UesrBean {
private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

private String password;

@Override
public String toString() {
return "UesrBean [name=" + name + ", password=" + password + "]";
}
}


工具 JavaBean

MyTools.java


// 转换字符串中的 “<” 与 “>” 字符
public class MyTools {
public String change(String source) {
source = source.replace("<","<");
source = source.replace(">",">");
}
}


1.2 JavaBean的应用

1 获取 JavaBean的属性

首先引入 JavaBean 类,在通过 JSP 动作标识进行获取

<jsp:useBean id="produce" class="com.bean.Produce"></jsp:useBean>

<jsp:getProperty property="name" name="produce"/>


Produce.java


//package experiment06;
public class Produce {
// 商品名称
private String name = "LOL进阶指南";
// 商品价格
private double price = 298;
// 数量
private int count = 10;
// 出厂地址
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;
}
}


Produce 类必须遵循 JavaBean 规范 ,getProperty 标签才能根据 getter方法获取值,

index.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<jsp:useBean id="produce" class="com.bean.Produce"></jsp:useBean>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>显示商品信息</title>
</head>
<body>
<div>
<ul>
<li>
商品名称:<jsp:getProperty property="name" name="produce"/>
</li>
<li>
价格:<jsp:getProperty property="price" name="produce"/>(元)
</li>
<li>
数量:<jsp:getProperty property="count" name="produce"/>
</li>
<li>
厂址:<jsp:getProperty property="factoryAdd" name="produce"/>
</li>
</ul>
</div>
</body>
</html>


2 对 JavaBean 属性赋值

对上个例子中的的属性赋值,这里关联了 setter 方法。

<jsp:setProperty property="name" name="produce" value="手机"/>
<jsp:setProperty property="price" name="produce" value="1980.88"/>
<jsp:setProperty property="count" name="produce" value="1"/>
<jsp:setProperty property="factoryAdd" name="produce" value="广东省xxx公司"/>


3 在JSP 页面中应用 JavaBean

这个例子关键就是这个:

<jsp:useBean id="person" class="com.wgh.Person" scope="page">
<jsp:setProperty name="person" property="*" />
</jsp:useBean>


scope 表示JavaBean实例的有效范围, property=”*” 表示所有值。

Person.java


//package com.wgh;

public class Person {
private String name;    // 姓名
private int age;    // 年龄
private String sex;     // 性别
private String address;     // 住址
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}


index.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>录入员工信息页面</title>
<style type="text/css">
ul {
list-style: none; /*设置不显示项目符号*/
margin:0px;     /*设置外边距*/
padding:5px;        /*设置内边距*/
}

li {
padding:5px; /*设置内边距*/
}
</style>
</head>
<body>
<form action="register.jsp" method="post">
<ul>
<li>姓 名:<input type="text" name="name"></li>
<li>年 龄:<input type="text" name="age"></li>
<li>性 别:<input type="text" name="sex"></li>
<li>住 址:<input type="text" name="address" size="35"></li>
<li><input type="submit" value="添 加"></li>
</ul>
</form>
</body>
</html>


register.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="person" class="com.wgh.Person" scope="page"> <jsp:setProperty name="person" property="*" /> </jsp:useBean>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>显示录入的员工信息页面</title>
<style type="text/css">
ul {
list-style: none; /*设置不显示项目符号*/
margin: 0px; /*设置外边距*/
padding: 5px; /*设置内边距*/
}

li {
padding: 5px; /*设置内边距*/
}
</style>
</head>
<body>
<ul>
<li>姓 名:<jsp:getProperty property="name" name="person" /></li>
<li>年 龄:<jsp:getProperty property="age" name="person" /></li>
<li>性 别:<jsp:getProperty property="sex" name="person" /></li>
<li>住 址:<jsp:getProperty property="address" name="person" /></li>
</ul>
</body>
</html>


实例-应用JavaBean 解决中文乱码

<jsp:useBean id="messageBean" class="com.wgh.MessageBean" scope="request"/>


<%=MyTools.toChinese(messageBean.getAuthor()) %>


MessageBean.java


package com.wgh;

public class MessageBean {
private String author;// 存储留言者
private String title;// 存储留言标题
private String content;// 存储留言内容
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}

}


MyTools.java


package com.wgh;

import java.io.UnsupportedEncodingException;

public class MyTools {
public static String toChinese(String str) {
if (str == null)
str = "";
try {
// 通过String类的构造方法,将指定的字符串转换为“UTF-8”编码
str = new String(str.getBytes("ISO-8859-1"), "UTF-8");
} catch (UnsupportedEncodingException e) {
str = "";
e.printStackTrace();
}
return str;
}
}


index.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>留言页面</title>
<style type="text/css">
ul {
list-style: none; /*设置不显示项目符号*/
margin:0px;     /*设置外边距*/
padding:5px;        /*设置内边距*/
}

li {
padding:5px; /*设置内边距*/
}
</style>
</head>
<body>
<form action="deal.jsp" method="post">
<ul>
<li>留  言  者:<input type="text" name="author" size="20"></li>
<li>留言标题:<input type="text" name="title" size="30"></li>
<li>留言内容:<textarea name="content" rows="6" cols="30"></textarea></li>
<li><input type="submit" value="提交"> <input type="reset"
value="重置"></li>
</ul>
</form>
</body>
</html>


deal.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<jsp:useBean id="messageBean" class="com.wgh.MessageBean" scope="request">
<jsp:setProperty name="messageBean" property="*"/>
</jsp:useBean>
<jsp:forward page="show.jsp"/>


show.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.wgh.MyTools" %>

<!-- 获取request范围内名称为messageBean的MessageBean类实例 -->
<jsp:useBean id="messageBean" class="com.wgh.MessageBean" scope="request"/>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>显示留言信息</title>
<style type="text/css">
ul {
list-style: none; /*设置不显示项目符号*/
margin:0px;         /*设置外边距*/
padding:5px;        /*设置内边距*/
}

li {
padding:5px; /*设置内边距*/
}
</style>
</head>
<body>
<ul>
<!-- 获取留言者后进行转码操作 -->
<li>留  言  者:<%=MyTools.toChinese(messageBean.getAuthor()) %></li>
<!-- 获取留言标题后进行转码操作 -->
<li>留言标题:<%=MyTools.toChinese(messageBean.getTitle())%></li>
<!-- 获取留言内容后进行转码操作 -->
<li>留言内容:<textarea rows="6" cols="30" readonly><%=MyTools.toChinese(messageBean.getContent()) %></textarea></li>
<li><a href="index.jsp">继续留言</a></li>
</ul>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jsp