java web 开发——第五章JSP与JavaBean

文章详细阐述了JavaBean的编写规范,包括如何创建bean、保存字节码以及在JSP中使用bean,强调了bean的属性获取与修改方法。同时,文章提到了使用Python库如numpy、pandas、matplotlib和seaborn进行数据处理的基本步骤,包括导入库和读取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

按照 Sun 公司的定义,JavaBean 是一个可重复使用的软件组件。实际上 JavaBean 是一种Java 类 ,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称 beaan。由于JavaBean 是基于 Java 语言的,因此 JavaBean 不依赖平台,具有以下特点:
★可以实现代码的重复利用。
★易编写 、易维护 、易使用。
★ 可以在任何安装了 Java 运行环境的平台上的使用,而无须重新编译。


5.1、编写和使用JavaBean

5.1.1、编写JavaBean

编写 JavaBean 就是编写一个 Java 的类。JavaBean。这个类创建的一个对象称为一个JavaBean , 简称 bean ,分配给 bean 的变量(成员变量) ,也称 bean 的属性。为了能让使用 bean 的应用程序构建工具(比如 Tomcat 服务需)使用JSP 动作标记知道 bean 的属性和方法,在类的命名上需要遵守以下规则 :
(1) 如果类的成员变量(也称 bean 的属性)的名字是 xxx,那么为了获取或更改 bean 的属
性的值,类中必须提供两个方法 :

getxxx() ,用来获取属性 xxx。

setxxx() ,用来修改属性 xxx。

也就是方法的名字用 get 或 set 为前缀,后绥是将属性(成员变量)名字的首字母大写的字符序列。

(2) 类中定义的方法的访问权限都必须是 public 的 。

(3) 类中必须有一个构造方法是 public 无参数的。

★保存 Java 源文件时,保存类型选择为“所有文件” ,将编码选择为“ANSI”。

5.1.2、保存bean的字节码

为了使 JSP 页面使用 bean,Tomcat 服务器必须使用相应的字节码文件创建一个对象,即创建一个bean。为了让 Tomecat 服务器能找到字节码文件,字节码文件必须保存在特定的目录中。
ch5 \WEB-INF\classes 目录下,根据包名对应的路径 ,在 classes 目录下再建立相应的子目录。
为了调试程序方便,可以直接按照 bean 的包名将 bean 的源文件(例如 Circle. java) 保存在
\WEB-INF\classes\tom\jiafei 目录中,然后用命令行进入 tomNjiafei 的父目录 classes(不要进入tom 或jiafei 目录)编译 Circle. java.

5.1.3、创建与使用bean

★ 使用 bean
使用 JSP 动作标记 useBean 加载使用 bean ,语法格式是:

< jsp:useBean id = “bean 的名字” class = “创建 bean 的类” scope = “bean 有效范围”/>

< jsp:useBean id = “bean 的名字” class = “创建 bean 的类” scope = “bean 有效范围”>
< /jsp:useBean >

例如 :

< jsp:useBean id = “circle” class = “tom. jiafeli. Circle” scope = “page” />

需要特别注意的是,其中的"创建 bean 的类"要带有包名,例如 :

class = “tom. jiafei.Circle”

★bean的有效范围和生命周期

scope 的取值范围给出了bean 的生命周期(存活时间) ,即 scope 取值决定了 Tomcat 服务器分配给用户的 bean 的有效范围和生命周期 ,因此需要理解 scope 取值的具体意义。
(1) page bean。scope 取值为 page 的 bean 称为 page bean,page bean 的有效范围是用户
访问的当前页面,存活时间直到当前页面执行完毕。
(2) session bean。scope 取值为 session 的 bean 称为 session bean session bean 的有效范围是用户访问的 Web 服务目录下的各个页面,存活时间是用户的会话期(session)间 ,直到用户的会话消失(session 对象达到了最大生存时间或用户关闭自己的剂览需以及服务器关闭)
(3) request bean。scope 取值为 request 的 bean 称为 request bean ,request bean 的有效
范围是用户请求的当前页面,存活时间是从用户的请求产生到请求结束。
(4) application bean。scope 取值为 application 的 bean 称为 application bean,application
bean 的有效范围是当前 Web 服务目录下的各个页面,存活时间直到 Tomcat 服务需关闭。
在这里插入图片描述

在这里插入图片描述
★当使用 session bean 时,要保证用户端支持 Cookie。

5.2、获取和修改bean的属性

当JSP 页面使用 getProperty ,setProperty 标记获取或修改属性 xxx 时,必须保证 bean 有相应的getXxx 和 setXxx 方法,即对方法名字的命名有特殊的要求。下面讲述怎样使用JSP 的动作标记 getProperty setProperty 去获取和修改 bean 的属性。

5.2.1、getProperty动作标记

getProperty 动作标记的语法格式是:

< jsp:getProperty name = "bean 的 id " property = “bean 的属性”/>

< jsp:getProperty name = "bean 的 id "property = “bean 的属性”>
< /jsp:getProperty >

其中,name 取值是 bean 的id,用来指定要获取哪个 bean 的属性的值,property 取值是该bean 的一个属性的名字。
★让 request 调用 setCharacterEncoding 方法设置编码为 UTF-8,以避免显示 bean 的属性值出现乱码现象。

5.2.2、setProperty动作标记

setProperty 动作标志可以进过两种方式设置 bean 属性值。
(1) 将 bean 属性值设置为一个表达式的值或字符序列。

< jsp:setProperty name = "bean 的 id " property = “bean 的属性”
value = “<% = expression%>”/>
< jsp:setProperty name = "bean 的 id " property = “bean 的属性”
value = “字符序列”/>

value 给出的值的类型要和 bean 的属性的类型一致。
(2) 通过 HTTP 表单的参数值来设置 bean 的相应属性值。
用 form 表单的所有参数值设置 bean 相对应属性值的使用格式如下 :

< jsp:setProperty name = "bean 的 id 的名字"property= “*”/>

用 form 表单的某个参数的值设置 bean 的某个属性值的使用格式如下 :

< jsp:setProperty name = "bean 的名字"property = "属性名"param = “参数名”” />

当把字符序列设置为 beans 的属性值时,这个字符序列会日动被转化为 bean 的属性类型。Java 语言将字符序列转化为其他数值类型的方法如下 。
转化到 int: Integer. parseInt(Sting s)
转化到 long: Long. parseLong(Sting s)
转化到 float: Float. parseFloat(Sting s)
转化到 double: Double. parseDouble(Sting s)

这些方法都可能发生 NumberFormatException 异常,例如 ,当试图将字符序列 ab23 转化为 int 型数据时就发生了 NumberFormatException 。

例5_ 4使用Goods 类创建 request bean。example5 4 _a.jsp 通过form 表单指定example5 4 _a. jsp 和 example5 4 _b.jsp 中的request bean 的 name 和 price 属性值。example5 4 a.jsp 和example5 4 _b.jsp 使用 getProperty 动作标记以及 bean 调用方法两种方式显示 request bean 的 name 和 price 属性值。

在这里插入图片描述
在这里插入图片描述
代码如下:
example5_4_a.jsp

<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %> 
<% request.setCharacterEncoding("utf-8");
%>
<jsp:useBean id="phone" class="tom.jiafei.Goods" scope="request"/>
<HTML><body bgcolor = #ffccff>
<style>
   #textStyle{
      font-family:宋体;font-size:20;color:blue 
   }
</style>
<p id = "textStyle">
<form action="" Method="post" >
手机名称:<input type=text id=textStyle name="name">
<br>手机价格:<input type=text id=textStyle name="price"/>
<br><input type=submit id=textStyle value="提交给本页面"/>
</form>
<form action="example5_4_b.jsp" Method="post" >
手机名称:<input type= text name="name" id=textStyle>
<br>手机价格:<input type=text name="price" id=textStyle>
<br><input type=submit id=textStyle value="提交给example5_4_b.jsp页面">
</form>
<jsp:setProperty name="phone" property="name" param ="name" />
<jsp:setProperty name="phone" property="price" param ="price"/>
<br><b>名称:<jsp:getProperty name="phone" property="name"/>
<br><b>名称:<%= phone.getName()%><br>
<br><b>价格:<jsp:getProperty name="phone" property="price"/>
<br><b>价格:<%=phone.getPrice()%>
</p></body></HTML>

example5_4_b.jsp

<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<% request.setCharacterEncoding("utf-8");
%>
<jsp:useBean id="phone" class="tom.jiafei.Goods" scope="page"/>
<HTML><body bgcolor= cyan>
<p style="font-family:黑体;font-size:20;color:red"> 
<jsp:setProperty name="phone" property="name" param ="name" />
<jsp:setProperty name="phone" property="price" param ="price"/>
<br><b>名称:<jsp:getProperty name="phone" property="name"/>
<br><b>名称:<%= phone.getName()%><br>
<br><b>价格:<jsp:getProperty name="phone" property="price"/>
<br><b>价格:<%=phone.getPrice()%>
</p></body></HTML>

Goods.java

package tom.jiafei;
public class Goods  {
   String name="无名";
   double price=0;
   public String getName() {
      return name;
   }
   public void setName(String newName){
      name = newName;
   }
   public double getPrice() {
      return price;
   }
   public void setPrice(double newPrice) {
      price = newPrice;
   }
}


5.3bean的辅助类

在写一个创建 bean 的类时,除了需要用 import 语句引入 JDK 提供的类,可能还需要自己编写一些其他的类,只要将这样类的包名和 bean 类的包名一致即可(也可以和创建 bean 的类写在一个 Java 源文件中) 。

二、使用步骤

1.引入库

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.读入数据

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值