一:测试用Bean
将此测试Bean放置在 WEB-INF/classes/下
用CMD跳转到 E: ,再编译它:javac -d . TestBean.java
package com.rt.demo.testBean;
public class TestBean
{
private String name;
private int num;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
Bean要求至少包含一个无参构造,属性必须声明为private,属性都要求有配套的setter和getter
Bean编译之后的class文件要出现在WEB-INF/classes/对应的包下
修改Bean之后,一般情况下需要重启容器,有一种特列就是下边第三点所讲的reloadable设置
二:jsp中导入bean
<%@ page import="com.rt.demo.testBean.*"%>
<%
TestBean tb = new TestBean();
tb.setName("rt");
tb.setNum(777);
%>
<%=tb.getName()%><br>
<%=tb.getNum()%>
或者用<jsp:useBean>标签,
<jsp:useBean id="tb" scope="page" class="com.rt.demo.testBean.TestBean"/>
<%
tb.setName("rt");
tb.setNum(777);
%>
<%=tb.getName()%><br>
<%=tb.getNum()%> 注意
id是通过反射生成的实例化对象的“名称”
class要引入:“ 包 . 类 ”
三:server.xml自动检查Bean更新配置
修改*a\apache-tomcat-6.0.30\conf\server.xml
在</Host>变迁结束之前添加
<Context path="/webDemo" docBase="E:\Java\Workspaces\MyEclipse 10\testWebProject\WebRoot" reloadable="true"/>
设置之后重启容器,
修改编译Bean之后,Tomcat的控制台出现:
....StandardContext reload
INFO:Reloading this Context has statted
证明Bean已经更新
reloadable消耗系统资源,在修改完成之后,应当再改成false
四:设置和取得属性
<jsp:useBean id="tb" scope="page" class="com.rt.demo.testBean.TestBean"/>
<!--1.提交来的表单和Bean自动匹配,提交来的表单中有名为name和num的项目-->
<jsp:setProperty name="tb" property="*" />
<!--或者2.指定二者参数名称 -->
<jsp:setProperty name="tb" property="Table_Name" param="Bean_Name"/>
<jsp:getProperty name="tb" property="name"/>
<jsp:getProperty name="tb" property="num"/>
五:javaBean服从四种属性作用范围
<!-- javaBean也是一种Attribute,要符合四种属性的范围 -->
<!-- 四种属性范围:page,request,session,application -->
<jsp:useBean id="XXX" scope="page" class="com.rt.demo.testBean.XXX"/>
pageContext.removeAttribute("JavaBean名称");
request.removeAttribute("JavaBean名称");
session.removeAttribute("JavaBean名称");
application.removeAttribute("JavaBean名称");
|