<jsp:useBean>标签用来在jsp页面中创建一个Bean实例,定义一个具有一定生存范围以及一个唯一id的javabean的实例,这样jsp通过id来识别javaBean,也可以通过id,method类似的语句来操作javaBean。
在执行的过程中,<jsp:useBean>首先尝试寻找已经存在的具有相同id和scope的JavaBean实例,如果没有就自动创建一个这样的实例。
定义语法如下:
一:<jsp:useBean>语法
<jsp:useBean id="id" scope="page|request|session|application" typeSpec/>
id是JavaBean对象的唯一标识,代表一个JavaBean实例对象,它具有特定的生存范围(page|request|session|application)
scope代表了JavaBean的生存范围,可以是page|request|session|application这中的一种设置为Application是为了实现多个用户共享一个计数器的功能(比如),如果要实现单个计数器的功能,可以修改scope为session
class代表javabean对象的名字,特别注意大小写要保持一致。
beanName属性代表bean的名字,通常通过java.beans.Beans.class的instantiate()方法来初始化
二:<jsp:setProperty>语法
<jsp:setProperty name="beanName" propertyDetail />其中,propertyDetail可以是以下中的一个:
1,property="*"
2,property="propertyName" param="parameterName"
3,property="propertyName"
4,property="propertyName" value="property value"
三:<jsp:getProperty>语法
<jsp:getProperty name="beanName" property="propertyName"/>
程序例子:
一共有三个文件:TestBean.java,register.jsp,register.html
TestBean.java
package com.jsp.ch3;
public class TestBean{
private String userName;
private String password;
private int age;
public String getUserName(){
return userName;
}
public void setUserName(String userName){
this.userName = userName;
}
public String getPassword(){
return password;
}
public void setPassword(String password){
this.password = password;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
}
register.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<center>
<form action="register.jsp" method="post">
<table>
<tr>
<td>
姓名:<input type="text" name="userName">
</td>
</tr>
<tr>
<td>
密码:<input type="text" name="password">
</td>
</tr>
<tr>
<td>
年龄:<input type="text" name="age">
</td>
</tr>
<tr>
<td align="center">
<input type="submit">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
register.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%
request.setCharacterEncoding("utf-8");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<jsp:useBean id="user" scope="page" class="com.jsp.ch3.TestBean"/>
<jsp:setProperty name="user" property="*"/>
<!--或者用以下,param可以不填写,其中param对应的是提交页面的表单name-->
<jsp:setProperty property="userName" name="user" param="userName"/>
<jsp:setProperty property="password" name="user" param="password"/>
<jsp:setProperty property="age" name="user" param="age"/>
<body>
注册成功:<br>
<hr>
使用Bean的属性方法<br>
用户名: <%=user.getUserName()%><br>
密码: <%=user.getPassword()%><br>
年龄: <%=user.getAge()%><br>
<hr>
使用getProperty<br>
用户名:<jsp:getProperty name="user" property="userName"/><br>
密码: <jsp:getProperty name="user" property="password"/><br>
年龄: <jsp:getProperty name="user" property="age"/><br>
客户端IP:<%=request.getRemoteAddr() %>
</body>
</html>