JavaBean

1、简介:JavaBean将HMTL代码和Java混编的代码分离开来,做到了可重用性。

2、JavaBean种类:JavaBean分为可视化和非可视化JavaBean。非可视化JavaBean没有可视化的界面,并可以分为值JavaBean和工具JavaBean。值JavaBean严格遵循了JavaBean的命名规范,通常用来封装表单数据,作为信息的容器。工具JavaBean可以不遵循JavaBean规范,通常用于封装业务逻辑、数据操作等,如数据库操作和解决中文乱码问题。

3、JavaBean是Java语言写成的可重用的组件,它应用于很多层中,如PO,VO,DTO和POJO等。

4、获取JavaBean属性:通常将JavaBean属性私有化,提供公共的访问接口,用getter()方法。在JSP中要尽量避免使用java代码,所以使用java动作标识比较合适。gtter和setter方法和getBean和setBean对应。如下:

index.jsp页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<jsp:useBean id="Product" class="javaBean1.Product" scope="page">
    <jsp:setProperty name="Product" property="name" value="手机" />
    <jsp:setProperty name="Product" property="price" value="1999" />
    <jsp:setProperty name="Product" property="count" value="1" />
    <jsp:setProperty name="Product" property="address" value="中关村" />
</jsp:useBean>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 商品类的属性赋值和取出 -->
<div>
    <ul>
        <li>商品名称:<jsp:getProperty name="Product" property="name"/></li>
        <li>商品价格:<jsp:getProperty name="Product" property="price"/></li>
        <li>商品数量:<jsp:getProperty name="Product" property="count"/></li>
        <li>生产地址:<jsp:getProperty name="Product" property="address"/></li>
    </ul>
</div>
</body>
</html>

Product.java文件

 1 package javaBean1;
 2 //商品类的JavaBean,需要严格遵循JavaBean规范
 3 public class Product
 4 {
 5     private String name="真空杯";    //商品名称
 6     private double price=3324;        //商品价格
 7     private int count=43;            //商品数量
 8     private String address="义乌小商品城";  //商品生产地址
 9     public String getName()
10     {
11         return name;
12     }
13     public void setName(String name)
14     {
15         this.name=name;
16     }
17     public double getPrice()
18     {
19         return price;
20     }
21     public void setPrice(double price)
22     {
23         this.price=price;
24     }
25     public int getCount()
26     {
27         return count;
28     }
29     public void setCount(int count)
30     {
31         this.count=count;
32     }
33     public String getAddress()
34     {
35         return address;
36     }
37     public void setAddress(String address)
38     {
39         this.address=address;
40     }
41 }

5、办公自动化系统中录入员工信息的JavaBean实现

index.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>主页</title>
</head>
<body>
<!-- 员工信息录入页面 -->
<form name="form1" action="register.jsp" method="post">
    姓 名:<input type="text" name="name"><br><br>
    年 龄:<input type="text" name="age"><br><br>
    性 别:<input type="text" name="sex"><br><br>
    住 址:<input type="text" name="add"><br><br>
    <input type="submit" name="submit1" value="添加">
</form>
</body>
</html>

register.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--
    显示用户的信息,使用Person类的JavaBean,将表单的值赋给JavaBean,然后显示出来在register.jsp页面上
--%>
<% request.setCharacterEncoding("UTF-8");%>
<jsp:useBean id="Person" class="javaBean1.Person" scope="page"></jsp:useBean>
<jsp:setProperty name="Person" property="*" />
<jsp:setProperty name="Person" property="address" param="add" />
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>员工信息</title>
</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>

Person类的JavaBean实现

 1 package javaBean1;
 2 //员工类的JavaBean,需要严格遵循JavaBean规范
 3 public class Person
 4 {
 5     private String name;            //姓名
 6     private int age;                //年龄
 7     private String sex;                //性别
 8     private String address;            //住址
 9     public void setName(String name)
10     {
11         this.name=name;
12     }
13     public String getName()
14     {
15         return name;
16     }
17     public void setAge(int age)
18     {
19         this.age=age;
20     }
21     public int getAge()
22     {
23         return age;
24     }
25     public void setSex(String sex)
26     {
27         this.sex=sex;
28     }
29     public String getSex()
30     {
31         return sex;
32     }
33     public void setAddress(String address)
34     {
35         this.address=address;
36     }
37     public String getAddress()
38     {
39         return address;
40     }
41 }

6、解决留言板的中文乱码问题

MessageBean类

 1 package com.wgh;
 2 //处理留言信息的JavaBean类
 3 public class MessageBean 
 4 {
 5     private String author;                //作者
 6     private String title;                //标题
 7     private String content;                //留言内容
 8     public void setAuthor(String author)
 9     {
10         this.author=author;
11     }
12     public String getAuthor()
13     {
14         return author;
15     }
16     public void setTitle(String title)
17     {
18         this.title=title;
19     }
20     public String getTitle()
21     {
22         return title;
23     }
24     public void setContent(String content)
25     {
26         this.content=content;
27     }
28     public String getContent()
29     {
30         return content;
31     }
32 }

JavaBean工具类MyTools

 1 package com.wgh;
 2 //解决中文乱码的工具JavaBean类
 3 import java.io.UnsupportedEncodingException;  //不支持转码的异常处理类
 4 public class MyTools 
 5 {
 6     public static String toChinese(String str)
 7     {
 8         if(str=="")
 9         {
10             return str;
11         }
12         else
13         {
14             try
15             {
16                 //通过String类的狗仔方法将指定的字符串转换为UTF-8编码
17                 str=new String(str.getBytes("ISO-8859-1"),"UTF-8");
18             }
19             catch(UnsupportedEncodingException e)
20             {
21                 str="";
22                 e.printStackTrace();
23             }
24             return str;
25         }
26         
27     }
28 }

index.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>提交留言信息</title>
</head>
<body>
<!-- 应用JavaBean解决中文乱码问题:
        设计表单留言者、留言标题和留言内容
        设计留言相关信息的MessageBean类
        设计解决中文乱码问题的JavaBean类
        设计处理留言信息JavaBean的JSP页面
        设计展示留言内容的JSP页面
 -->
<form name="form1" method="post" action="deal.jsp">
留言者:&nbsp;<input type="text" name="author"><br><br>
留言标题:<input type="text" name="title"><br><br>
留言内容:<textarea name="content" rows="6" cols="30"></textarea>
        <input type="submit" name="submit" value="提交">
</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:forward page="show.jsp" />

show.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="com.wgh.MyTools" %>
<jsp:useBean id="messageBean" class="com.wgh.MessageBean" scope="request"/>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>显示留言信息</title>
<style type="text/css">
    ul{
        list-style:none;
    }
</style>
</head>
<body>
<ul>
    <li>留言者:&nbsp;<%= 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>

 

posted @ 2015-04-28 21:11  Joe_Shine  阅读(186)  评论(0编辑  收藏  举报