一、JavaBean
1、Javabeans就是符合某种特定规范Java类。使用Javabeans的好处是【解决代码的重复编写】,减少代码冗余,功能区分明确,提高代码的维护性。
2、设计原则四点:公有类,属性私有,包含无参的公有构造方法,getter和setter方法封装属性。
二、JSP动作元素
1、JSP动作元素(action element)
JSP动作元素为请求处理阶段提供信息。动作元素遵循XML语法,有一个包含元素名的开始标签,可以有属性,可选的内容、与开始标签匹配的结束标签。
2、JSP动作元素种类
第一类是与存取JavaBean有关,包括:
<jsp:useBean> <jsp:setProperty> <jsp:getProperty>
三、在页面中使用JavaBean
1.像使用普通Java类一样,创建javabean实例
<%@ page import="com.po.Users" %>
<body>
<%
Users user = new Users();
user.setUsername("admin"); //设置用户名
user.setPassword("123456");//设置密码
%>
<h1>使用普通方式创建javabean的实例</h1>
<hr>
用户名:<%=user.getUsername() %><br>
密码:<%=user.getPassword() %><br>
</body>
2.在JSP页面中通常使用jsp动作标签使用javabean
使用JSP动作标签:useBeans动作、setProperty动作、getProperty动作。
useBeans动作:
<jsp:useBean id="标识符" class="Java类名" scope="作用范围"/>
其中class是完整的类名 scope默认是page。id是唯一"标识符",与setProperty中的name相对应。useBean的作用是实例化javabean类。
setProperty:
作用:已经实例化的Javabean对象的属性赋值
使用形式:
<jsp:setProperty name="Javabean实例名" property="*"/>
与表单相关联,"*"表示对所有的表单属性名与javabean类属性名进行匹配,若相同则进行赋值。
<jsp:setPropery name="Javabean实例名" property="javabean属性名" />
与表单相关联,对指定的表单属性名与javabean类属性名进行匹配
<jsp:setProperty name = "Javabean实例名" property="Javabean属性名" value="BeanValue" />
与表单无关,手动设置属性,属性值就是value,与填写无关。
<jsp:setProperty name="Javabean实例名" property="propertyName" param="request对象中的参数名" />
与request参数相关联,通过url传参
上述setProperty四种方式实例:
<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"/>
getProperty:
作用:获取指定JavaBean对象的属性值
<jsp:getProperty name="JavaBean实例名" property=“属性名”/>
JavaBean的四个作用于范围:
使用userBeans的scope属性可以用来指定JavaBean的作用范围
page//仅在当前页面有效
request:可以通过HttpRequest.getAttribute()方法获得JavaBean对象
session//可以通过HttpSession.getAttribute()方法获得JavaBean对象
application//可以通过application.getAttribute()方法获得JavaBean对象