Javabean是符合某种特定规范的java类,使用javabean可以解决代码重复编写的问题,使功能区分的更加明确,提高代码的可维护性。
Javabean的设计原则:
(1)共有类 即使用public class来定义
(2)无参的公有构造方法
(3)属性私有属性使用private定义
(4)Getter和Setter方法
如下user.java就是一个符合要求的javabean。
public class user {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public user() {
}
}
Javabean的使用方法;
(1)像使用普通java类一样,创建javabean实例。
先建包,比如com.hy,在包里建user.java,如上个实例所示。
然后在jsp页面通过import导入user类,用new新建user对象,进行数据处理。
<%@page import="org.apache.catalina.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.hy.user"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
user user=new user();
user.setName("huli");
user.setPassword("123456");
%>
姓名:<%=user.getName() %><br>
密码:<%=user.getPassword() %><br>
</body>
</html>
(2)在JSP页面中时通jsp动作标签使用javabean:
useBean动作:使用useBean动作标志实例化出user类对象。
<jsp:useBean id="user" class="com.hy.user" scope="page"/>
ps.这里的scope属性表示此useBean作用范围,page是最小的一种。
setProperty动作:给已经实例化的javabean对象赋值,一共有四种方式。
第一种跟表单关联,自动匹配所有属性值。
<jsp:setProperty name="user" property="*"/>
运行结果:正常显示表单提交的name属性和password属性。
第二种跟表单关联,指定属性匹配。
<jsp:setProperty name="user" property="name"/>
运行结果:正常显示表单提交的name属性,但是password属性为空。
第三种,不跟表单关联,使用setProperty手动设置属性值。
<jsp:setProperty name="user" property="name" value="333"/>
运行结果:不管表单提交的name值是什么,只会显示为name为333,并且因为password未设置,显示为null。
第四种,不跟表单关联,通过url传参数给属性赋值,首先要求表单页面跳转到处理页面时候url上要附带一个参数。
<form name=loginform action="dologin.jsp?myname=66666" method="post">
在处理页面通过param属性接收url上附带的myname属性,并用myname取代name。
<jsp:setProperty name="user" property="name" param="myname"/>
运行结果:name显示为myname的值,也就是66666,同时password因为没有设置,显示为null。
以上仅是我个人见解,有任何不足或者缺漏,欢迎指正。
(2)在JSP页面中时通jsp动作标签使用javabean:
useBean动作
<jsp:useBean id="user" class="com.hy.user" scope="page"/>
setProperty动作