JSP笔记-JavaBean技术
2016-10-23 15:06
351 查看
“蓝瘦,香菇,香菇在这里”
JavaBean 是一种 JAVA 语言写成的可重用组件
Javabean 就是为了和 jsp 页面传数据化简交互过程而产生的。
使 JSP 页面中的 java 代码分离出去,降低了耦合
接下来给出的是JavaBean与其它Java类相比而言独一无二的特征(规范):
提供一个默认的无参构造函数。
需要被序列化并且实现了Serializable接口。(实现序列化表示将对象转换成可存储或可传输的状态,好像可以不用)
可能有一系列可读写属性。
可能有一系列的”getter”或”setter”方法。
非可视化 JavaBean : 分为值 JavaBean 和 工具 JavaBean
值 JavaBean :严格遵循 JavaBean的命名规范,通常用来封装表单数据,作为信息的容器
工具JavaBean :可以不遵循 JavaBean的命名规范 用于封装业务逻辑,数据操作等,连接数据库等,实现业务逻辑与页面显示的分离,提高了代码的可读性与易维护性。
值 JavaBean
工具 JavaBean
Produce 类必须遵循 JavaBean 规范 ,getProperty 标签才能根据 getter方法获取值,
scope 表示JavaBean实例的有效范围, property=”*” 表示所有值。
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学习笔记--国际化和本地化、JavaBean
- [学习笔记]jsp+javaBean 播放幻灯片的小例子
- java语言体系的技术简介之JSP、Servlet、JDBC、JavaBean(Application)
- JSP_渣渣开启技术博客笔记之旅2014.11.22
- [Java Web] 6、Tomcat服务器的安装及配置以及JSP技术笔记
- JSP中href(url)与sumbit的提交数据方式对比(土地资源项目Javabean技术应用心得)
- java语言体系的技术简介之JSP、Servlet、JDBC、JavaBean(Application)
- 学习笔记之javaweb基础:jsp基本语法,内置对象,对JavaBean的操作语法
- JSP中分页技术的实现(jstl,servlet,javabean三种不同实现方式)
- [学习笔记]jsp+javaBean 实现图片的上传
- Jsp JavaBean技术
- 宋利兴_笔记_JSP技术
- java语言体系的技术简介之JSP、Servlet、JDBC、JavaBean(Application)
- servlet, jsp, javaBean, 技术介绍
- Tomcat 与java web 开发技术详解笔记(三)----JSP
- JavaBean组件在JSP文档中的应用(第14章笔记)
- Jsp JavaBean技术
- jsp学习笔记--JavaBean在jsp页面中的应用
- 【2015/4/22】jsp学习笔记1---简述j2ee技术和初始jsp
- Java EE学习笔记之一——JSP/Servlet相关技术