一、JavaBean简介
二、JavaBean设计原则
三、什么是Jsp动作
四、在Jsp页面中如何使用JavaBean
1. 像使用普通java一样,创建javabean实例
2. 使用动作标签
- <jsp:useBean>
实例:(不需要 import 类的java包)
这里用户名密码为null的原因是,在Users类中,并没有对用户名密码进行有效的初始化。
- <jsp:setProperty>
实例一:
<!-- 先实例化一个javabean对象 -->
<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>
自动将表单中的name和javabean类中的属性进行匹配,如果有相同属性名,自动调用set方法。
实例二:
实例三:
实例四:
- <jsp:getProperty>
<!-- 先实例化一个javabean对象 -->
<jsp:useBean id="myUsers" class="com.po.Users" scope="page"/>
<h1>setProperty动作元素</h1>
<hr>
<!--根据表单自动匹配所有的属性 -->
<jsp:setProperty name="myUsers" property="*"/>
<!-- 使用传统的表达式方式来获取用户名和密码 -->
<%--
用户名:<%=myUsers.getUsername() %><br>
密码:<%=myUsers.getPassword() %><br>
--%>
<!-- 使用getProperty方式来获取用户名和密码 -->
用户名:<jsp:getProperty name="myUsers" property="username"/> <br>
密码:<jsp:getProperty name="myUsers" property="password"/><br>
<br>
五、Javabean的四个作用域范围
dologin.jsp
页面:
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
... ...
<!-- 先实例化一个javabean对象 -->
<jsp:useBean id="myUsers" class="com.po.Users" scope="page"/>
<hr>
<!--根据表单自动匹配所有的属性 -->
<jsp:setProperty name="myUsers" property="*"/>
<!-- 使用getProperty方式来获取用户名和密码 -->
用户名:<jsp:getProperty name="myUsers" property="username"/> <br>
密码:<jsp:getProperty name="myUsers" property="password"/><br>
<br>
<!-- 超链接相当于一次请求重定向,相当于一次新的请求。
所以当useBean的scope是request时,不能在超链接指定页面,获取到原来的usebean实例 -->
<a href="testScope.jsp">测试javabean的四个作用域范围</a>
<!-- 使用服务器内部转发,保证是同一次请求 -->
<%
request.getRequestDispatcher("testScope.jsp").forward(request, response);
%>
testScope.jsp
页面:
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%@ page import="com.po.Users" %>
... ...
<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>
网友评论