javaBean简介
JavaBean就是符合某种特定的规范的Java类。使用Javabean的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码的维护性。
Javabean的设计原则
公有类
无参的公有构造方法
属性私有
Getter和setter方法
案例:
public class Person {
private String name;
private String address;
public Person() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
JSP动作元素
什么是JSP动作元素
JSP动作元素(action elements),动作元素为请求处理阶段提供信息。动作元素遵循xml元素的语法,有一个包含元素名的开始标签,可以有属性、可选的内容、与开始标签匹配的结束标签。
动作元素有哪些
第一类是与存取JavaBean有关的,包括: (常用)
<jsp:useBean> <jsp:setProperty><jsp:getProperty>
第二类是JSP1.2就开始有的基本元素,包含6个动作元素:
<jsp:include> <jsp:forward> <jsp:param> <jsp:plugin> <jsp:params> <jsp:fallback>
第三类是JSP2.0新增加的元素,主要与JSP document有关,包括六个元素
<jsp:root> <jsp:declaration> <jsp:scriptlet> <jsp:expression> <jsp:text> <jsp:output>
第四类是JSP2.0新增的动作元素,主要是用来动态生成XML元素标签的值,包含3个动作
<jsp:attribute> <jsp:body> <jsp:element>
第五类是JSP2.0新增的动作元素,主要是用在Tag file中,有2个元素
<jsp:invoke> <jsp:dobody>
使用普通方式创建JavaBean
创建一个javaBean
public class Person {
private String name;
private String address;
public Person() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
在页面中引入这个Javabean
<%@ page language="java" contentType="text/html;charset=UTF-8" import="com.ck.Person"
pageEncoding="UTF-8"%>
<%
Person person = new Person();
person.setName("张三");
person.setAddress("北京");
%>
用户名:<%=person.getName() %><br>
密码:<%=person.getAddress() %>
UseBean动作元素
在JSP页面中使用JavaBean
像使用普通Java类一样,创建JavaBean实例
在JSP页面中使用jsp动作标签使用JavaBean
useBeans动作
setProperty动作
getProperty动作
<jsp:useBean>
作用 :在jsp页面中实例化或者在指定范围内使用JavaBean
<jsp:useBean id=”标识” class=”Java类的全限定名” scope=”作用范围”/>
案例:
<jsp:useBean id="p" class="com.ck.Person" scope="page"/>
姓名:<%=p.getName() %><br>
地址:<%=p.getAddress() %>
setProperty
<jsp:setProperty>
作用:给已经实例话的JavaBean对象的属性赋值,一共四种形式
<jsp:setProperty name=”JavaBean的实例名” property=”*” />(跟表单关联)
<jsp:setProperty name=”JavaBean的实例名” property=”javaBean的属性名” />(跟表单关联)
<jsp:setProperty name=” JavaBean的实例名” property=” javaBean的属性名” value=”属性值” /> (手工赋值)
<jsp:setProperty name=” JavaBean的实例名” property=”属性名” param=”request对象中的参数名” />(跟request参数关联)
案例:
Register.jsp输入:
<form action="index.jsp?myName=王五" method="post">
<table>
<tr>
<td>姓名:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>地址:</td>
<td><input type="text" name="address"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"></td>
</tr>
</table>
</form>
Index.jsp中输入:
<%
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
%>
<jsp:useBean id="p" class="com.ck.Person" />
<!-- 第一种方式 和表单所有属性关联 -->
<%-- <jsp:setProperty property="*" name="p"/> --%>
<!-- 第二种方式 和表单中指定的属性关联 -->
<%-- <jsp:setProperty property="name" name="p"/> --%>
<!-- 第三种方式 手工赋值 -->
<%-- <jsp:setProperty property="name" name="p" value="李四"/> --%>
<!-- 第四种方式 跟request参数关联 -->
<jsp:setProperty property="name" name="p" param="myName"/>
姓名:<%=p.getName() %><br>
地址:<%=p.getAddress() %><br>
JavaBean的四个作用域范围
说明:使用useBean的scope属性可以用来指定Javabean的作用范围
Page 仅在当前页面有效
Request 在一次请求中有效
Session 在一次会话中有效
Applicable在整个应用程序中都有效