首页 > 代码库 > Javabean
Javabean
Javabean简介
Javabeans就是符合某种特定的规范的Java类。
使用Javabeans的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码的维护性。
Javabean的设计原则
设计学生类
什么是JSP动作?
JSP动作元素(action elements),动作元素为请求处理阶段提供信息。
动作元素遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性、可选的内容、与开始标签匹配的结束标签。
JSP动作元素包含五大类?
在JSP页面中如何使用Javabeans?
1、像使用普通java类一样,创建Javabean实例。
创建Users.java
package com.po;
/*
* 用户类
* */
public class Users {
private String username;//用户名
private String password;//密码
//保留次默认的构造方法
public Users(){
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
在JSP使用 Users.java
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@page import="com.po.Users" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP ‘index.jsp‘ starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/styles.css"> --> </head> <body> <% Users user = new Users(); user.setUsername("admin"); user.setPassword("123456"); %> <h1>使用普通方式创建Javabean的实例</h1> <hr> 用户名:<%=user.getUsername() %><br> 密码:<%=user.getPassword() %><br> </body> </html>
2、在JSP页面中通常使用jsp动作标签使用Javabean
useBeans动作
setProperty动作
getProperty动作
<jsp:useBeans>
作用:在jsp页面中实例化或者在指定范围内使用Javabean:
<jsp:useBean id="标示符" class="java类名" scope="作用范围" />
userBean.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP ‘index.jsp‘ starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/styles.css"> --> </head> <body> <jsp:useBean id="myUsers" class="com.po.Users" scope="page" /> <h1>使用useBean动作创建Javabean的实例</h1> <hr> 用户名:<%=myUsers.getUsername() %><br> 密码:<%=myUsers.getPassword() %><br> </body> </html>
<jsp:setProperty>
作用:给已经实例化的Javabean对象的属性赋值,一共有四种形式。
login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP ‘index.jsp‘ starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/styles.css"> --> </head> <body> <h1>系统登录</h1> <hr> <form name="loginForm" action="dologin.jsp" method="post"> <table> <tr> <td>用户名:</td> <td><input type="text" name="" 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> </body> </html>
dologin.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP ‘index.jsp‘ starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/styles.css"> --> </head> <body> <jsp:useBean id="myUsers" class="com.po.Users" scope="page" /> <h1>setProperty动作元素</h1> <hr> <!--根据表单自动匹配所有的属性 --> <!-- <jsp:setProperty property="*" name="myUsers"/>--> <!-- 根据表单匹配所有部分的属性 --> <jsp:setProperty property="username" name="myUsers"/> 用户名:<%=myUsers.getUsername() %><br> 密码:<%=myUsers.getPassword() %><br> </body> </html>
<jsp:getProperty>
作用:获取指定Javabean对象的属性值
<jsp:getProperty name="JavaBean实例名" property="属性名" />
<!-- 使用getProperty方式来获取用户名和密码 --> 用户名:<jsp:getProperty name="myUsers" property="username" /><br> 密码:<jsp:getProperty name="myUsers" property="password" /><br>
javabean的四个作用域范围
说明:使用useBeans的scope属性可以用来指定Javabean的作用范围。
Model1简介
Model1模型出现前,整个Web应用的情况:几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应。
弊端:在界面层充斥着大量的业务逻辑的代码和数据访问层的代码,Web程序的可扩展性和可维护性非常差。
Javabean的出现可以使jsp页面中使用Javabean封装的数据或者调用Javabean的业务逻辑代码,这样大大提升了程序的可维护性。
Javabean