JavaBean
2018-11-27 本文已影响0人
虫yu
一、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>
六、什么是Model1



