一 说明
使用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
>
四 测试结果