JWB7: JavaBean简介及其使用

本文介绍了JavaBean的基础概念,如何创建UserBean类,包括属性私有化和set/get方法。重点讲解了在JSP页面上如何声明、赋值和取值JavaBean,以及不同作用域的使用。此外,还涉及了从Servlet传递JavaBean到JSP的方法。
摘要由CSDN通过智能技术生成

7.1 简介

​ JavaBean是一种java类,通过封装属性和方法,从而成为具有某种功能或处理某种业务的对象。而是实际的使用过程中,我们往往使用它作为实体类,用来存数据,当然我们也可以在setxx()方法中定义一些操作,用来执行某些功能。

7.2 JavaBean的使用

7.2.1 创建UserBean类

public class UserBean {
    private String name;
    private int age;
    private String gender;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }
}

特点就是,属性私有化,通过公共的set()与get()方法为每一个属性进行赋值与取值操作

7.2.2 JSP页面使用

首先是赋值:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="userBean" class="com.cloud.bean.UserBean" scope="page"/>		//页面插入标记符,指定JavaBean
<html>
<body>
<jsp:setProperty name="userBean" property="name" value="张三"/>				//设置JavaBean里面的name属性值
<jsp:setProperty name="userBean" property="age" value="30"/>				//设置JavaBean里面的age属性值
<jsp:setProperty name="userBean" property="gender" value="男"/>				//设置JavaBean里面的性别属性值

</body>
</html>

取值:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="userBean" class="com.cloud.bean.UserBean" scope="page"/>
<html>
<body>
<jsp:setProperty name="userBean" property="name" value="张三"/>
<jsp:setProperty name="userBean" property="age" value="30"/>
<jsp:setProperty name="userBean" property="gender" value="南"/>

姓名:<jsp:getProperty name="userBean" property="name"/><br>			//取出我们存的值
性别:<jsp:getProperty name="userBean" property="gender"/><br>			//取出我们存的值
年龄:<jsp:getProperty name="userBean" property="age"/><br>			//取出我们存的值


</body>
</html>

在这里插入图片描述

7.3 语法

​ JavaBean的使用分成四部分:创建Bean、页面声明要使用的Bean、给Bean赋值、取值。

7.3.1 创建Bean

public class TestBean{
private String var1;								//类型是可以变换的
    
public void setVar1(String var1){
	this.var1=var1;									//除了直接赋值,一般这里面可以定义一些操作,
}//比如根据出生年月计算出年龄
public String getVar1(){
	return this.var1;
}
}

7.3.2 声明要使用的Bean

<jsp:useBean id="随便取个名字" class=“Bean的路径” scope="作用域"/>

scope的取值:

  • page:说明该JavaBean仅在当前页面有用,不可以在其他页面调用。
  • request:说明在该页面以及本页面的请求中有用,请求结束,就没了。
  • session:不关闭浏览器,用户自己就可以使用自己的。
  • application:同一服务目录下,用户共享。

其实跟jsp内置对象的作用域一样。

7.3.3 为Bean赋值

<jsp:setProperty name="刚才取的名字" property="Bean里面的属性" value="具体的值"/>
<--value的值也可以为<%= %>,或者 * ,* 表示全部-->

7.3.4 获取Bean的值

<jsp:getProperty name="刚才取的名字" property="Bean里面的属性"/>

7.4 补充

​ 我们在使用的时候,也会从servlet传JavaBean给JSP,那么我们则需要使用setAttribute(String key,Stirng value)方法来进行传递。

servlet代码

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setCharacterEncoding("utf8");
        resp.setContentType("text/html");


        UserBean userBean = new UserBean();
        userBean.setAge(12);
        userBean.setName("李四");
        userBean.setGender("男");

        req.setAttribute("userBean",userBean);						//我们在req里面存了一个名叫userBean的Bean

        req.getRequestDispatcher("test.jsp").forward(req,resp);

    }
}

JSP取值:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="userBean" class="com.cloud.bean.UserBean" scope="request"/>		//这里的id必须与
<html>																				//setAttribute里的一致
<head>
    <title>测试页面</title>
</head>
<body>
姓名:<jsp:getProperty name="userBean" property="name"/><br>					//这里也是,不然找到刚才存入的值
性别:<jsp:getProperty name="userBean" property="gender"/><br>
年龄:<jsp:getProperty name="userBean" property="age"/><br>
</body>
</html>

EL表达式取值:

上述代码我们也可以这样

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>																				
<head>
    <title>测试页面</title>
</head>
<body>
姓名:${userBean.name}<br>
性别:${userBean.gender}<br>
年龄:${userBean.age}<br>
</body>
</html>

注意: servlet有四大作用域:pageContext<request<session<serveltContext,因此当EL表达式寻值的时候,会先从最小的作用域开始找。并且Attribute理论上来说,其实就是双列集合,所以是不会存在key相同的情况的。


写在最后,由于JSP已经是一门落后的技术了,所以实际使用中并不多,除了一些在校大学生以外,很少有人会这样使用JavaBean,而更多的使用实体类。在Spring的开发中,往往是做数据库的映射,就是有多少张表就建多少个实体类,并把里面的属性定义出来,使用set与g

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值