JavaBean模式
1 JavaBean简介及设计原则
【JavaBean简介】符合某种特定的规范的Java类,使用Javabean的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码的维护性。[S1] 1.for循环 2.jdbc中的dao模式
【Javabean的设计原则】①公有类②无参的公有的构造方法③属性私有化④get和set方法封装
【使用JavaBean】①普通实例化方式②通过useBean动作元素方式
--举例:Student
public class Student{
private String name;
//无参构造方法
public Student(){}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
}
2 什么是jsp动作
jsp动作元素(action elements),动作元素为请求处理阶段提供信息。动作元素遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性,可选的内容、与开始标签匹配的结束标签。
3 关于JavaBean的jsp动作
<jsp:useBean>[实例化对象]、<jsp:getProperty>[获取属性]、<jsp:setProperty>[设置属性]
4 在jsp页面中如何使用Javabeans
①使用普通的java类一样,创建javabean实例。--案例实现登录
第一步:在src中编写com.entity包再编写User类,并遵循javabean设计原则
第二步:在dologin.jsp页面中实例化Users类并设置值与login.jsp页面输入的信息比较,匹配成功登录admin.jsp
②在jsp页面中通常使用jsp动作标签使用javabean:useBean、getProperty、setProperty
**<jsp:useBean> 在jsp页面中实例化或者在指定范围内使用javabean,语法如下:
<jsp:useBean id = "标识符" class = "java类名" scope = "作用范围"/>
第一步:在页面编写:
<jsp:useBean id = "myUsers" class = "com.entity.Users" scope = "page">
第二步:获取
<%=myUsers.getUsername%>//null值,没有初始化
③<jsp:setProperty> 给已经实例化的Javabean对象的属性赋值,一共有四种形式。
** <jsp:setProperty name = "JavaBean实例名" property = "*" />(跟表单关联)
** <jsp:setProperty name = "JavaBean实例名" property = "JavaBean属性名" />(跟表单关联)
** <jsp:setProperty name = "JavaBean实例名" property = "JavaBean属性名" value= "BeanValue" />(手工设置)
** <jsp:setProperty name = "JavaBean实例名" property = "propertyName" param = "request对象中的参数名" />(跟request参数关联)
5 案例演示
<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>
--------------------------------------------------------------------------------------------------------------------------------
<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>