JAVA Web入门之JavaBean的解析及使用

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: JAVA Web入门之JavaBean的解析及使用

1.在JSP页面开发的初级阶段 并没有框架与逻辑分层概念的产生 需要将java代码嵌入到网页中 对JSP页面的一些业务逻辑进行处理


这种开发方式看似简单 但如果将大量java代码嵌入到JSP页面中 会给后期的维护及修改带来很多问题 如果能使HTML代码和java代码相分离开来,将java代码单独封装成一个处理某种业务逻辑的类,然后在JSP页面中调用此类,则可以降低HTML代码和java代码之间的耦合度,提高程序的重用性和灵活性,这种与HTML代码相分离,而使用java代码封装的类,就是一个javabean组件


实例如下

package test;
import java.io.Serializable;
public class Email implements Serializable {
  private static final long serialVersionUID=1L;
  private String mailAdd;
  private boolean email;
public Email() {
}
public Email(String mailAdd) {
  this.mailAdd=mailAdd;
}
public boolean isEmail() {
  String regex="\\w+([-+.']*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
  if(mailAdd.matches(regex)) {
  email=true;
  }
  return email;
}
public String getMailAdd() {
  return mailAdd;
}
public void setMailAdd(String mailAdd) {
  this.mailAdd=mailAdd;
}
}



2:在javabean对象中 为了防止外部直接对javabean属性的调用 通常将javabean中的属性设置为私有的 但需要为其提供公共的访问方法


下面创建名称为produce的类 创建商品属性并且提供相应的方法

public class Produce{
private String name="电吉他";
private double price=1880.5;
private int count=100;
private String factoryAdd="广东省珠海市";
public String getName(){
return name;
}
public String getPrice(){
return price;
}
public int getCount(){
return count;
}
public String getFactoryAdd(){
return factoryAdd;
}
}


在JSP页面中获取商品javabean中的属性信息 该操作通过JSP动作标签进行获取

<jsp:useBean id="produce" class="com.lyq.bean.Produce"></jsp:useBean>
<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>


3:对javabean属性赋值


javabean对象提供setxxx方法就可以在JSP页面中通过<jsp:setProperty>对其进行赋值


创建对应的类和方法如下

package com.lyq.bean;
public class Produce{
private String name;
private dobule price;
private int conut;
private String factoryAdd;
public String getName(){
return namel;
}
public void setName(String name){
this.name=name;
}
省略了其他的getxxx和setxxx方法 大致相同
}


创建JSP文件 在该页面中实例化Produce对象 然后对其属性进行赋值并输出

<jsp:useBean id="produce" class="com.lyq.bean.Produce"></jsp:useBean>
<jsp:setProterty proterty="name" name="produce" value="洗衣机"/>
<jsp:setProterty proterty="price" name="produce" value="88.88"/>
<jsp:setProterty proterty="count" name="produce" value="88"/>
<jsp:setProterty proterty="factoryAdd" name="produce" value="华南理工大学"/>
<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>


在JSP页面中应用javabean非常简单 主要通过JSP动作标签<jsp:useBean> <jsp:getProperty>


<jsp:setProterty>来实现对javabean对象的操作


在javabean对象应用到JSP页面中时,javabean的生命周期可以自行进行设置 它存在于4种范围内 分别为 page ,request ,session, application 默认情况下作用于page范围内


4:解决中文乱码的JavaBean


在JSP页面中 处理中文字符经常会出现字符乱码的现象 特别是通过表单传递中文数据时容易产生 它的解决办法有很多


创建对字符编码进行处理的javabean 在该类中编写toString方法对字符编码进行转换

package.com.lyq.bean;
import java.io.UnsupportedEncodingException;
public class CharactorEncoding{
public CharactorEncoding(){
}
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){
e.printStackTrace();
}
}
return text;
}
}


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


javabean是用java语言所写成的可重用组件 它可以是一个实体类对象 也可以是一个业务逻辑的处理  


同样javabean可以将数组转换成字符串

package con.lyq.bean;
public class Convert{
public String arr2Str(String[] arr){
String Buffer 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();
}
}



相关文章
|
5天前
|
Java
轻松上手Java字节码编辑:IDEA插件VisualClassBytes全方位解析
本插件VisualClassBytes可修改class字节码,包括class信息、字段信息、内部类,常量池和方法等。
35 6
|
2天前
|
存储 算法 Java
Java Set深度解析:为何它能成为“无重复”的代名词?
Java的集合框架中,Set接口以其“无重复”特性著称。本文解析了Set的实现原理,包括HashSet和TreeSet的不同数据结构和算法,以及如何通过示例代码实现最佳实践。选择合适的Set实现类和正确实现自定义对象的hashCode()和equals()方法是关键。
12 4
|
1天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
9 2
|
5天前
|
Java 编译器 数据库连接
Java中的异常处理机制深度解析####
本文深入探讨了Java编程语言中异常处理机制的核心原理、类型及其最佳实践,旨在帮助开发者更好地理解和应用这一关键特性。通过实例分析,揭示了try-catch-finally结构的重要性,以及如何利用自定义异常提升代码的健壮性和可读性。文章还讨论了异常处理在大型项目中的最佳实践,为提高软件质量提供指导。 ####
|
8天前
|
JSON JavaScript 前端开发
蓝桥杯web组赛题解析和杯赛技巧
本文作者是一位自学前端两年半的大一学生,在第十五届蓝桥杯Web组比赛中获得省一和国三。文章详细解析了比赛题纲,涵盖HTML、CSS、JavaScript、Echarts和Vue等技术要点,并分享了备赛技巧和比赛经验。作者强调了多写代码和解题思路的重要性,同时提供了省赛和国赛的具体流程及注意事项。希望对参赛者有所帮助。
|
9天前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
27 2
|
8天前
|
存储 Java 开发者
Java中的集合框架深入解析
【10月更文挑战第32天】本文旨在为读者揭开Java集合框架的神秘面纱,通过深入浅出的方式介绍其内部结构与运作机制。我们将从集合框架的设计哲学出发,探讨其如何影响我们的编程实践,并配以代码示例,展示如何在真实场景中应用这些知识。无论你是Java新手还是资深开发者,这篇文章都将为你提供新的视角和实用技巧。
10 0
|
1月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
66 0
|
1月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
52 0
|
1月前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
59 0

推荐镜像

更多