7.JavaWeb基础 JaveBean




  JavaBean是使用Java语言开发的一个可重用的组件,在JSP开发中可以使用JavaBean

少重复代码,使得整个JSP页面变得整洁,JSP搭配JavaBean使用有如下优点:


  1.可以将HTML和JAVA代码分离,主要是为了日后的维护。

  2.可以利用JavaBean的优点,把常用的程序写成JavaBean,这样在JSP使用中可以调用

    JavaBean来实现功能,不用再重复地写相同的程序了,节约了开发时间。






  JavaBean标签操作的简单类,该类必须满足以下:


  1.所有的类必须放在一个包之中,在Web中是没有包的类的存在的。

  2.所有的类必须声明 public class ,这样才能被外部所访问。

  3.类中所有的属性必须进行封装,即使用private声明。

  4.封装的属性如果需要被外部使用,则必须编写对应的getter、setter方法。

  5.一个JavaBean中至少存在一个无参构造方法,此方法为JSP中的标签所使用。






一.使用JavaBean


在WEB-INF目录中,新建一个文件夹“classes”,此文件夹中可以存放*.class文件。



写一个简单的JavaBean:


package com.zyy.jwb;

public class SimpleBean {

	private String name;

	private int age;

	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;
	}

}


  这里如果使用MyEclipse,在发布项目后,会自动进行编译。没有使用的话,我们可以

CMD -> javavc -d . X:/xxx/xxx/xxx.java 进行编译。





使用page指令中的import:


<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="com.zyy.jwb.*"%>
<%
	SimpleBean bean = new SimpleBean();

	bean.setName("CaMnter");

	bean.setAge(18);
%>

<h2>
	Name:
	<%=bean.getName()%></h2>
<h2>
	Age:
	<%=bean.getAge()%></h2>




使用<jsp:useBean>标签:

除了使用import语句外,也可以使用<jsp:useBean>标签完成。


这是该标签的语法

<jsp:useBean id="你想给实例化对象起的名字" scope="保存范围"  class="包.类"    / >


scope能设置的内容就是那四个属性范围:page、request、session、application。



<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBean id="bean" scope="page" class="com.zyy.jwb.SimpleBean" />
<%
	bean.setName("CaMnter");

	bean.setAge(18);
%>

<h2>
	Name:
	<%=bean.getName()%></h2>
<h2>
	Age:
	<%=bean.getAge()%></h2>


注意:class属性中要写到具体到类名,如:包/类名 。不能是这样:包/*。


实质

   1.在使用<jsp:useBean>标签的时候,会默认调用JavaBean类的无参构造函数进行对象

的实例化。这里,我们可以在无参构造函数中加一条输出语句就能在后台Tomcat服务器上看到

输出语句了。


    2.<jsp:useBean>标签依靠反射机制完成直接对对象的实例化。




说明:每次修改JavaBean的时候都要进行服务器的重启才能有效,但是我们可以在Tomcat目录

下/conf/server.xml中 找到你的虚拟目录配置,然后添加一个reloadable="true"即可实

现自动加载,我们就可以修改JavaBean后,刷新一下页面就能看到更改后的效果了。


<Context path="/CaMnter" docBase="X:\xxx" reloadable="true">








二.<setProperty>标签


使用<setProperty>标签,可以通过“*”的形式完成对属性的自动设置。


<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBean id="bean" scope="page" class="com.zyy.jwb.SimpleBean" />
<jsp:setProperty name="bean" property="*" />

<h2>
	Name:
	<%=bean.getName()%></h2>
<h2>
	Age:
	<%=bean.getAge()%></h2>



然后为了节约时间,用地址重写的方式试试看:






设置指定的属性和value:


<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBean id="bean" scope="page" class="com.zyy.jwb.SimpleBean" />
<jsp:setProperty name="bean" property="age" value="18" />
<h2>
	Name:
	<%=bean.getName()%></h2>
<h2>
	Age:
	<%=bean.getAge()%></h2>









三.<jsp:getProperty>取得属性

   此标签会自动调用JavaBean中的getter方法。语法如下:


<jsp:getProperty name="你实例化对象起的名字" property="你想获得的对象属性名"  / >



<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBean id="bean" scope="page" class="com.zyy.jwb.SimpleBean" />
<jsp:setProperty name="bean" property="name" value="CaMnter" />
<jsp:setProperty name="bean" property="age" value="18" />
<h2>
	Name:
	<jsp:getProperty name="bean" property="name" /></h2>
<h2>
	Age:
	<jsp:getProperty name="bean" property="age" /></h2>







四.JavaBean的保存范围

这个概念嘛,和之前的内置对象保存范围很类似,就是这次的对象是JavaBean而言的。


  1. page :保存在一一个页面的范围之中,跳出这个页面则次JavaBean失效,如果跳到

            的页面也用<jsp:useBean>实例化这个对象的话,则会新实例化一个对象。

  2. request :JavaBean对象可以保存到服务器跳转之后的页面上。

  3. session:怎么跳转都可以,但是新打开一个浏览器的话,就会新实例化一个JavaBean

              对象不是原来的JavaBean对象。

  4 application:这个都可以保存,出了服务器关闭后开启了,原来的JaveBean对象就消失

                 了,重新打开了又新实例化一个新的JavaBean对象。









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值