javabean使用技巧
avabean简介
Javabeans就是符合某种特定规范的java类,使用javabean的好处是解决代码重复编写,减少代码冗余,提高代码的维护性。
javabean的设计原则
公有类,无参的公有构造方法,属性私有,get,set方法,如下
public class Student
{
private String name,
public Student()
{
}
public void setName(String name){this.name=name;}
public String getName(){return this.name;}
}
jsp动作标签
存取javabean有关的
<jsp:useBean><jsp:setProperty><jsp:getProperty>
在jsp页面中如何使用javabeans
1:像使用普通java类一样,创建javabean实例
package com.entity;
//用户类的javabean
public class Users {
private String name;
private String password;
public Users(){
}
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;
}
}
引用<%@page import="com.entity.Users"%>
<%
Users u=new Users();
u.setName("admin");
u.setPassword("123");
%>
<h1>使用普通方法创建javabean实例</h1>
用户名:<%=u.getName() %>
密码:<%=u.getPassword() %>
2:在jsp页面中使用jsp动作标签使用javabean
<jsp:useBeans>作用:在jsp页面中实例化
<jsp:useBean id="标识符" class="java类名" scope="作用范围"/>
<jsp:useBean id="myuses" class="com.entity.Users"/> <h1>使用javabean动作标签创建javabean实例</h1> 用户名:<%=myuses.getName() %> 密码:<%=myuses.getPassword()%> //可以获取Users中的值
--------------------------------------------------------------------------
<jsp:setProperty>作用:给已经实例话的javabean的对象属性进行赋值
<jsp:setProperty name="javaBean实例名" property="*"/>(跟表单关联,自动匹配所有属性)
<jsp:setProperty name="javaBean实例名" property="javabean属性名"/>(跟表单关联,匹配部分属性)
--------------------------------------------------------------------------------------------------
假如我们创建login的表单
<form name="loginform" action="doLogin.jsp" method="post"> <table> <tr> <td>用户名</td> <td><input type="text" name="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="login"></td> </tr> </table> </form>
doLogin.jsp展示login传递过来的用户名和密码通过setProperty方法
<jsp:useBean id="myuses" class="com.entity.Users" scope="page" /> <%--根据表单自动匹配 --%,property="*",表单的名为username和password和 javabean的Users类的name,password自动匹配赋值--%> <jsp:setProperty name="myuses" property="*" /> 用户名:<%=myuses.getName()%> 密码:<%=myuses.getPassword()%>
以下的setProperty与表单无关,手工赋值
<jsp:setProperty name="myuses" property="name" value="jack" />
<jsp:setProperty name="myuses" property="password" value="123" />
-------------------------------------------------------------------------
<jsp:getProperty>作用:获取指定javabean对象的属性值
<jsp:getProperty name="javabean实例名" property="属性名"/>
<h2>使用getProperty获取javabean指定的属性的值</h2> 用户名:<jsp:getProperty property="name" name="myuses" /> 密码:<jsp:getProperty property="password" name="myuses" />
javabean的四个作用域范围
使用usebeans的scope属性可以用来指定javabean的作用范围
page在当前页面有效
request可以通过HttpRequest.getAttribute()方法获得javabean对象
session可以通过HttpSession.getAttribute()方法获得javabean对象
application可以通过application.getAttribute()方法获得javabean对象
<h1>javabean的四个作用域范围</h1> <jsp:useBean id="myuses" class="com.entity.Users" scope="application" /> 用户名:<jsp:getProperty property="name" name="myuses" /> 密码:<jsp:getProperty property="password" name="myuses" /> <%--使用内置对象获取用户名和密码 --%> 用户名:<%=((Users)application.getAttribute("myuses")).getName() %> 用户名:<%=((Users)application.getAttribute("myuses")).getPassword() %> 用户名:<%=((Users)session.getAttribute("myuses")).getName() %> 用户名:<%=((Users)session.getAttribute("myuses")).getPassword() %> 用户名:<%=((Users)request.getAttribute("myuses")).getName() %> 用户名:<%=((Users)request.getAttribute("myuses")).getPassword() %>
<a href="scope.jsp">javabean的四种作用域测试</a> <% request.getRequestDispatcher("scope.jsp") .forward(request, response); %>