JavaBean四个作用域范围

来源:互联网 发布:热仿真软件有哪些 编辑:程序博客网 时间:2024/05/22 06:10
一 说明
使用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>
 
四 测试结果


 

 

  • 大小: 114.6 KB
  • 大小: 39.6 KB
  • 查看图片附件