一 说明
使用useBeans的scope属性可以用来指定javabean的作用范围。
二 四个作用范围
三 代码
1、login.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'login.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1>系统登录</h1>
<hr>
<form name="loginForm" action="dologin.jsp?mypass=999999" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username" value=""/></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password" value=""/></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="登录"/></td>
</tr>
</table>
</form>
</body>
</html>
2、dologin.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'dologin.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<jsp:useBean id="myUsers" class="com.po.Users" scope="page"/>
<h1>setProperty动作元素</h1>
<hr>
<!--根据表单自动匹配所有的属性 -->
<%--
<jsp:setProperty name="myUsers" property="*"/>
--%>
<!--根据表单匹配所有部分的属性 -->
<%--
<jsp:setProperty name="myUsers" property="username"/>
--%>
<!--根表单无关,通过手工赋值给属性 -->
<%--
<jsp:setProperty name="myUsers" property="username" value="lisi"/>
<jsp:setProperty name="myUsers" property="password" value="888888"/>
--%>
<!--通过URL传参数给属性赋值 -->
<jsp:setProperty name="myUsers" property="username"/>
<jsp:setProperty name="myUsers" property="password" param="mypass"/>
<!-- 使用传统的表达式方式来获取用户名和密码 -->
<%--
用户名:<%=myUsers.getUsername() %><br>
密码:<%=myUsers.getPassword() %><br>
--%>
<!-- 使用getProperty方式来获取用户名和密码 -->
用户名:<jsp:getProperty name="myUsers" property="username"/> <br>
密码:<jsp:getProperty name="myUsers" property="password"/><br>
<br>
<br>
<a href="testScope.jsp">测试javabean的四个作用域范围</a>
<%
request.getRequestDispatcher("testScope.jsp").forward(request, response);
%>
</body>
</html>
3、testScope.jsp
<%@ page language="java" import="java.util.*"
contentType="text/html; charset=utf-8"%>
<%@ page import="com.po.Users"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'testScope.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1>Javabean的四个作用域范围</h1>
<hr>
<jsp:useBean id="myUsers" class="com.po.Users" scope="page" />
用户名:<jsp:getProperty name="myUsers" property="username" /><br> 密码:<jsp:getProperty
name="myUsers" property="password" /><br>
<!-- 使用内置对象获取用户名和密码 -->
<hr>
<%--
用户名:<%=((Users)application.getAttribute("myUsers")).getUsername()%><br>
密码:<%=((Users)application.getAttribute("myUsers")).getPassword() %><br>
--%>
<%--
用户名:<%=((Users)session.getAttribute("myUsers")).getUsername()%><br>
密码:<%=((Users)session.getAttribute("myUsers")).getPassword() %><br>
--%>
<%--
用户名:<%=((Users)request.getAttribute("myUsers")).getUsername()%><br>
密码:<%=((Users)request.getAttribute("myUsers")).getPassword() %><br>
--%>
<%
String username = "";
String password = "";
if (pageContext.getAttribute("myUsers") != null) {
username = ((Users) pageContext.getAttribute("myUsers"))
.getUsername();
password = ((Users) pageContext.getAttribute("myUsers"))
.getPassword();
}
%>
用户名:<%=username%><br> 密码:<%=password%><br>
</body>
</html>
四 测试结果
相关推荐
JavaBean四个作用域范围的详解 JavaBean是一种特殊的Java类,遵循JavaBean架构规范,具有 getter 和 setter 方法,可以在JSP页面中使用useBean标签来实例化JavaBean对象,并通过scope属性指定JavaBean的作用域范围...
JavaBean的作用域是指它在应用程序中的可见性和生命周期,通常有四个不同的作用域:Page、Request、Session和Application。 1. **Page作用域**: Page作用域的JavaBean只在其创建的JSP页面内有效。这意味着一旦...
以下是四个主要的Javabean作用域: 1. **page**:当`scope`设置为`page`时,Javabean只在当前的JSP页面内有效。这意味着一旦页面处理完毕或者发生跳转,Javabean就会被销毁。在示例代码中,每刷新一次`page`范围内...
- **页面作用域 (page scope)**:JavaBean 只在一个 JSP 页面或一个 Servlet 中有效。 - **请求作用域 (request scope)**:JavaBean 在一次 HTTP 请求的生命周期内有效。 - **会话作用域 (session scope)**:...
JavaBean的生命周期取决于其在JSP中的作用域(`page`、`request`、`session`或`application`)。不同作用域决定了JavaBean的创建、使用和销毁时间: - `page`作用域:每个请求创建一次,请求结束时销毁。 - `...
1. **作用域(Scope)**:JavaBean的作用域决定了它在多大范围内有效。常见的作用域包括: - `page`:仅在当前页面有效。 - `request`:在整个请求周期内有效。 - `session`:在用户会话期间有效。 - `...
`jsp:useBean`指令用于实例化或查找页面作用域内的JavaBean,`jsp:setProperty`用于设置JavaBean的属性值,`jsp:getProperty`则用于获取JavaBean的属性值。例如: ```jsp ``` 这里的`id`属性指定了JavaBean在...
1. **加载JavaBean**:当JSP页面被请求时,`<jsp:useBean>`标签会创建一个`goodsbean`实例并存储在`application`作用域中。 2. **设置属性**:接下来,使用`setProduct`和`setPrice`方法设置商品的信息。 3. **输出...
- `scope`属性:指定JavaBean的有效范围,包括`page`、`request`、`session`和`application`四个选项。 2. **参数封装**:当表单提交后,可以通过JavaBean自动接收并保存表单数据。这通常是通过JSP内置的`request`...
如果在指定的作用域内找不到,它会根据指定的类创建一个新的JavaBean实例。 4. `<jsp:setProperty>`:设置JavaBean属性的值,通常与`<jsp:useBean>`配合使用,用于给JavaBean的属性赋值。 5. `<jsp:getProperty>`...
- `scope`:指定 JavaBean 实例对象的作用域范围(默认为 `page`)。 ##### 2. `<jsp:setProperty>` 标签 此标签用于设置 JavaBean 对象的属性值。 - **语法格式**: ```xml | <%= expression %>}" /> ``` -...
JavaBean存在四个作用域:page、request、session和application。Page范围的JavaBean只在当前页面有效,request范围的JavaBean在整个请求生命周期内有效,session范围的JavaBean在用户会话期间有效,而application...
假设我们已经在请求作用域(request scope)中创建了`UserBean`,可以通过以下方式访问其属性: ```jsp ; charset=UTF-8" %> UserBean userBean = (UserBean) request.getAttribute("userBean"); %> 用户名: ...
这里,`id`属性指定了JavaBean实例的名称,`scope`属性设置了JavaBean的作用域为会话级别,`class`属性指定了JavaBean的具体类名。 #### 3. 设置日历参数 JavaBean提供了方法来设置日历的相关参数。例如,在示例...
- `scope`: 设置JavaBean的作用域,如`page`、`request`、`session`或`application`。 - `class`: 指定JavaBean的全限定类名。 2. **设置JavaBean属性**: - 使用`<jsp:setProperty>`标签设置JavaBean的属性值。...
4. **作用域的理解**:介绍JSP中的四种作用域(page、request、session、application),解释它们的区别以及如何选择合适的作用域存放JavaBean。 5. **JavaBean在Servlet中的应用**:讲解如何在Servlet中创建和初始...
3. **作用域的理解**:讲解page、request、session和application四个不同的JSP作用域,以及在这些作用域中如何管理和共享JavaBean。 4. **属性事件处理**:介绍如何实现和触发属性改变事件,以及如何添加和移除事件...
2. **编写Servlet**:接着,创建一个Servlet,它接收HTTP请求,解析请求参数,调用JavaBean的方法进行业务处理,然后将处理结果保存到请求作用域或会话作用域。 3. **设计JSP**:创建JSP页面,通过EL(Expression ...
其中,`id`属性指定了JavaBean对象的标识符,`class`属性指定了JavaBean的完整类名,`scope`属性定义了该JavaBean对象的作用域。 3. **访问JavaBean属性**:使用`<jsp:getProperty>`标签获取JavaBean中的属性值,...
JavaBean的状态可以在四种作用域中管理:application、session、request和page,这些作用域决定了其生命周期和可见性。 1. **无需特定运行时环境**:JavaBean是普通的Java类,不需要特定的运行时支持。 2. **成员...