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"> 留言者: <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>留言者: <%= 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>