1. 解决中文乱码的JavaBean

在JSP页面中,处理中文字符经常会出现字符乱码的现象,特别是通过表单传递中文数据时容易产生。它的解决办法有很多,如将request的字符集指定为中文字符集,编写JavaBean对乱码字符进行转码等。下面就通过实例编写JavaBean对象来解决中文乱码问题。

例1.1 本实例通过编写对字符转码的JavaBean,来解决在新闻发布系统中,发布中文信息的乱码现象,其开发步骤如下。

(1)创建名称为News的类,将其放置于com.cn.gao包中,实现对新闻信息实体对象的封装。关键代码如下:

package com.cn.gao;public class News {private String title;private String content;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;}
}

(2)创建对字符编码进行处理的JavaBean,它的名称为CharactorEncoding。在该类中编写toString()方法对字符编码进行转换。关键代码如下:

package com.cn.gao;import java.io.UnsupportedEncodingException;public class CharactorEncoding {public CharactorEncoding(){}/*** 对字符进行转码处理* @param str 要转码的字符串* @return 编码后的字符串*/public String toString(String str){//转换字符String text = "";//判断要转码的字符串是否有效if(str!=null&&!"".equals(str)){try {//将字符串进行编码处理text = new String(str.getBytes("ISO-8859-1"),"UTF-8");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch block
                e.printStackTrace();}}return text;}
}

CharactorEncoding类通过toString()方法对字符串参数进行编码,实例中将编码设置为UTF-8,因为在JSP页面中的编码也是UTF-8,这里将其进行统一。

String类的getBytes()方法的作用,是按给定的字符编码将此字符串编码到byte序列,并将结果存储到新的byte数组;而String类的构造方法String(byte[] bytes,Charset charset)是通过使用指定的字符编码解码指定的byte数组,构造一个新的字符串,实例中应用这两个方法,实现了构造UTF-8编码的字符串。

(3)创建名称为news.jsp的页面,它是程序中的主页面,用于放置发布新闻信息的表单。关键代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'news.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><form action="release.jsp" method="post"><table align="center" width="450" height="260" border="1"><tr><td align="center" colspan="2" height="40"><b>新闻发布</b></td></tr><tr><td align="right">标  题:</td><td><input type="text" name="title" size="30"/></td></tr><tr><td align="right">内  容:</td><td><textarea name="content" rows="8" cols="40"></textarea></td></tr><tr><td align="center" colspan="2"><input type="submit" value="发  布"/></td></tr></table></form></body>
</html>

(4) 创建名称为release.jsp的页面,用于对发布新闻信息的表单请求进行处理。关键代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'release.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><jsp:useBean id="news" class="com.cn.gao.News"></jsp:useBean><jsp:useBean id="encoding" class="com.cn.gao.CharactorEncoding"></jsp:useBean><jsp:setProperty property="*" name="news"/><div align="center"><div id="container"><div id="title"><%=encoding.toString(news.getTitle()) %></div><hr/><div id="content"><%=encoding.toString(news.getContent()) %></div></div></div></body>
</html>

2. 在JSP页面中用来显示时间的JavaBean

JavaBean是用java语言所写的可重用组件,它可以是一个实体类对象,也可以是一个业务逻辑的处理,但编写JavaBean要遵循JavaBean规范。下面通过实例在JSP页面中调用获取当前时间的JavaBean。

例2.1 创建获取当前时间的JavaBean对象,该对象既可以获取当前的日期及时间,同时可以获取今天是星期几。通过在JSP页面调用该JavaBean对象,实现在网页中创建一个简易的电子时钟。

(1)创建名称为DateBean的类,将其放置于com.cn.gao包中,主要对当前时间、星期进行封装。关键代码如下:

package com.cn.gao;import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;import sun.java2d.pipe.SpanShapeRenderer.Simple;public class DateBean {private String dateTime;private String week;private Calendar calendar = Calendar.getInstance();/*** 获取当前日期及时间* @return 日期及时间的字符串*/public String getDateTime() {//获取当前时间Date currDate = Calendar.getInstance().getTime();SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日   HH点mm分ss秒");//格式化日期时间dateTime = sdf.format(currDate);return dateTime;    }/*** 获取星期几* @return 返回星期字符串*/public String getWeek() {String[] weeks = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};int index = calendar.get(Calendar.DAY_OF_WEEK);week = weeks[index-1];return week;}
}

(2)创建名称为clock.jsp的页面,它是程序中的主页。在clock.jsp页面中实例化DateBean对象,并获取当前日期时间及星期实现电子时钟效果。关键代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>电子时钟</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><style type="text/css">#clock{width:420px;height:80px;background:#E0E0E0;font-size:25px;font-weight:bold;border:solid 5px orange;padding:20px;}#week{padding-top:15px;color:#0080FF;}</style><meta http-equiv="Refresh" content="1"/></head><body><jsp:useBean id="date" class="com.cn.gao.DateBean" scope="application"></jsp:useBean><div align="center"><div id="clock"><div id="time"><jsp:getProperty property="dateTime" name="date"/></div><div id="week"><jsp:getProperty property="week" name="date"/></div></div></div></body>
</html>

程序运行效果如下:

3. 数组转换成字符串

在程序开发中,将数组转换成为字符串是经常被用到的,如表单中的复选框按钮,在提交之后就是一个数组对象,由于数组对象在业务处理中不方便,所以在实际应用中通过将其转换成字符串后再进行处理。

例3.1 创建字符串转换成数组的JavaBean,实现对“问卷调查”表单中复选框的数值的处理。

(1)创建名称为Paper的类,将其放置于com.cn.gao包中,对调查问卷进行封装。关键代码如下:

package com.cn.gao;import java.io.Serializable;public class Paper implements Serializable {private static final long serialVersionUID = 1L;//定义保存编程语言的字符串数组private String[] languages;//定义保存掌握技术的字符串数组private String[] technics;//定义保存困难部分的字符串数组private String[] parts;public Paper(){}public String[] getLanguages() {return languages;}public void setLanguages(String[] languages) {this.languages = languages;}public String[] getTechnics() {return technics;}public void setTechnics(String[] technics) {this.technics = technics;}public String[] getParts() {return parts;}public void setParts(String[] parts) {this.parts = parts;}}

(2)创建将数组转换成字符串的JavaBean对象,它的名称为Convert。在该类中编写arr2Str()方法,将数组对象转换成为指定格式的字符串。关键代码如下:

package com.cn.gao;public class Convert {/*** 将数组转换成为字符串* @param arr 数组* @return 字符串*/public String arr2Str(String[] arr){StringBuffer sb = new StringBuffer();if(arr!=null&&arr.length>0){for(String s:arr){sb.append(s);sb.append(",");}if(sb.length()>0){sb = sb.deleteCharAt(sb.length() - 1);}}return sb.toString();}
}

(3)创建程序中的首页dcwj.jsp,在该页面中放置调查问卷所使用的表单。关键代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'dcwj.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><form action="reg.jsp" method="post"><div><h1>调查问卷</h1><hr/><ul><li>你经常用哪些编程语言开发程序:</li><li><input type="checkbox" name="languages" value="JAVA"/>JAVA<input type="checkbox" name="languages" value="PHP"/>PHP<input type="checkbox" name="languages" value=".NET"/>.NET<input type="checkbox" name="languages" value="VC++"/>VC++</li></ul><ul><li>你目前所掌握的技术:</li><li><input type="checkbox" name="technics" value="HTML"/>HTML<input type="checkbox" name="technics" value="JAVA BEAN"/>JAVA BEAN<input type="checkbox" name="technics" value="JSP"/>JSP<input type="checkbox" name="technics" value="SERVLET"/>SERVLET</li></ul><ul><li>在学习中哪一部分感觉有困难:</li><li><input type="checkbox" name="parts" value="JSP"/>JSP<input type="checkbox" name="parts" value="STRUTS"/>STRUTS</li></ul><input type="submit" value="提  交"/></div></form></body>
</html>

(4)创建名称为reg.jsp的页面,用于对dcwj.jsp页面表单提交请求进行处理,将用户所提交的调查问卷结果输出到页面中。关键代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'reg.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><jsp:useBean id="paper" class="com.cn.gao.Paper"></jsp:useBean><jsp:useBean id="convert" class="com.cn.gao.Convert"></jsp:useBean><jsp:setProperty property="*" name="paper"/><div><h1>调查结果</h1><hr/><ul><li>经常用哪些编程语言:<%=convert.arr2Str(paper.getLanguages()) %></li><li>你目前所掌握的技术:<%=convert.arr2Str(paper.getTechnics()) %></li><li>在学习中哪一部分感觉有困难:<%=convert.arr2Str(paper.getParts()) %></li></ul></div></body>
</html>

在JSP中应用JavaBean相关推荐

  1. java bean id_在 JSP中使用JavaBean的标签是 ,其中 id的用途是 __________________学小易找答案...

    [多选题]Flash渐变动画分为().P22 [单选题]关于 JavaBean,下列的叙述哪一项是不正确的?( ) [填空题]用户在实际 Web应用开发中,编写Bean除了要使用 __________ ...

  2. 在JSP中使用JavaBean

    JavaBean与Jsp.在JSP中使用JavaBean(<jsp:useBean>标签.<jsp:setProperty>标签.<jsp:getProperty> ...

  3. jsp中的javabean

    一.JavaBean简介 JavaBean是一种特殊的Java类,它遵从一定的设计模式,         开发工具和其他组件可以根据这种模式来调用JavaBean.     JSP中使用的JavaBe ...

  4. jsp在java软件中_5.2在JSP中使用JAVABEAN

    问题:设计Wed程序,计算任意两个整数的和,并在网页上显示结果.要求在JAVAbean中实现数据的求和功能 分析:该问题需要两个网页input.jsp和show.jsp,以及一个实现数据计算的Jana ...

  5. Java-Web JSP指令、javabean和EL表达式

    目录 一.JSP指令 1.JSP指令概述 2.page指令 (1)pageEncoding和contentType (2)import (3)errorpage和isErrorpage (4)web. ...

  6. JSP简单练习-javaBean的简单应用

    /** javaBean代码*/ package bean;public class Box {double length;double width;double height;public Box( ...

  7. 东软实训2-在jsp中使用javaBean

    在JSP中可以像使用普通类一样访问JavaBean,在脚本元素中实例化类的对象,调用对象的方法.JSP提供了3个动作元素,和来访问JavaBean. 1.1 动作用于初始化JavaBean,或者定位一 ...

  8. JSP技术之JavaBean

     在Java程序或JSP程序中,其实有很多的代码段是可以重复使用的,比如对数据库的操作.用户的有效性检查及某些项特定功能的实现等.为了很好的解决这个问题,提高开发效率,Sun公司推出了JavaBean ...

  9. java代码在jsp中怎么写_在jsp中写java代码

    该服务器上的所有的访问者的所有 jsp 页面 D.该服务器上的所有的访问者的所有 jsp 页面和 Java 程序 6.在 JSP 中调用 JavaBean 时不会用到的标记是( )...... jav ...

最新文章

  1. JDK8的排序大法!!
  2. 有1到100共100个数, 从1开始, 每隔1, 2, 3... 个数拿走一个数, 最后剩下几?(约瑟夫环)...
  3. bp神经网络模型的优缺点,什么是BP神经网络模型?
  4. 数学建模——灵敏度分析
  5. multisim红绿灯元器件在哪里_实验二Multisim交通灯仿真.ppt
  6. Java后端根据身份证号计算年龄
  7. Git 图标无法正常显示解决方案
  8. 新手如何建立网站,网站建设的几个步骤。
  9. 计算机器设备重置成本时不应计入的费用是,自考《资产评估00158》章节试题:第3章...
  10. 自媒体平台大鱼号怎样开通视频原创保护,原创证明材料如何写?
  11. 《黑客与画家》读后感——黑客与画家
  12. 手把手带你玩转Spark机器学习-使用Spark构建回归模型
  13. 2020年第一季度某区房地产市场运行情况分析
  14. GOTS认证辅导,审核的机构按照GOTS标准对世界各地的有机棉制品进行检查和认证
  15. scikit-learn安装报错
  16. python 财务分析可视化方法_Python数据可视化的四种简易方法
  17. 用JAVA编写MP3解码器——GUI
  18. 5月4日横滨アリ ナ跳跳+NYC CON 观后感
  19. Mac安装软件提示文件损坏
  20. jQuery的三种遍历循环

热门文章

  1. 神奇_程序cmd命令窗口运行会自动停止_加解决方案---Linux工作笔记045
  2. C++基础部分_C++文件操作_文件的读取操作---C++语言工作笔记077
  3. SpringCloud学习笔记024---SpringBoot集成Lucene实现全文检索_分词_索引_更新_删除文档_词条搜索_多条件查询
  4. JAVA面试要点002_Git中fetch和pull的区别
  5. 如何解决联通电信宽带连接错误691
  6. Junit下获取src/test/resource路径
  7. 3d激光雷达开发(生成RangeImage)
  8. linux下的C语言开发(信号处理)
  9. 跨部门不配合工作_同事不配合工作,划水甚至推诿,该怎么体现你的手腕
  10. java怎么拦截数据库查询结果_关于mybatis拦截器,有谁知道怎么对结果集进行拦截,将指定字段查询结果进行格式化...