javaBean是一个Java类,是java中开发可以跨平台的重要组件。
javaBean的作用:封装业务逻辑和封装数据。
JSP动作标签:通过动作标签,程序员可以子啊JSP页面中把页面显示功能部分封装起来,使整个页面更加简洁和易于维护。
<jsp:useBean>
jsp:useBean动作用来装载一个将在JSP页面中使用的javaBean。这个功能非常有用,因为它使得我们既可以发挥java组件的重要优势,同时又避免损失JSP的方便性。
jsp:useBean动作的一般语法如下:
<jsp:useBean id="name" type="package.class" scope="scope"/>
其中id用于创建javaBean的引用名;class用于指定javaBean的类;scope用于指定javaBean的范围,默认值为page。
scope的取值可以是一下几种范围:
1、page,javaBean只能在当前页面使用,当加载新页面时将会被销毁。
2、request,javaBean在用户发送请求时使用。
3、session,javaBean一直存在于会话中。
4、application,javaBean在整个应用程序中均可使用。
例如:
<jsp:useBean id="order" type="com.Order" scope="request"/>
这句代码的意思是:在request指定的范围存在id指定的对象,就返回该对象;如果不存在,就创建一个class属性指定的Java类的对象,并保存在id指定的变量内。在JSP文件中相当于:
<%@page import="com.Order" %> <% Order order = (Order)request.getAttribute("order"); if(order == null) order = new Order(); %>
<jsp:setProperty>
setProperty动作用于设定useBean中指定的javaBean属性值。
语法如下:
<jsp:setProperty property="PropertyName" name="BeanName" value="Value" param="Parameter"/>
其中name指定useBean中使用的javaBean的id;property用于指定要为之设置值得属性名称。value指定要为属性设置的值。param指定用于输入数据的表单元素的值。
注意:value属性和param属性不能同时使用。
示例一,在上述使用<jsp:useBean>标签创建的Order类使用setProperty将它的名称设置为张三,年龄设置为18岁。
首先看Order类:
package com; public class Order { public String name; public int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
然后看JSP页面:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> </head> <body> <jsp:useBean id="order" class="com.Order" scope="page"/> <jsp:setProperty name="order" property="name" value="张三"/> <jsp:setProperty property="age" name="order" value="18"/> <%=order.name %> <br> <%=order.age %> </body> </html>
示例二,param属性的应用
首先看Login类:
package com; public class Login { 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; } }
然后看登陆页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'MyJsp.jsp' starting page</title> </head> <body> <form action="userlogin.jsp" method="post"> <table> <tr> <td>用户名:</td> <td><input type="text" name="username"/></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="userpassword"/></td> </tr> <tr> <td><input type="submit" value="提交"/></td> </tr> </table> </form> </body> </html>
然后看处理页面
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'userlogin.jsp' starting page</title> </head> <body> <jsp:useBean id="login" class="com.Login" scope="page"/> <jsp:setProperty property="name" name="login" param="username"/> <jsp:setProperty property="password" name="login" param="userpassword"/> <%=login.getName() %> <br> <%=login.getPassword() %> </body> </html>
<jsp:getProperty>
useBean中id所指的对象通过setProperty对property指定的属性进行赋值后,可以通过使用getProperty动作获取javaBean中指定的属性值。
语法是:
<jsp:getProperty property="PropertyName" name="BeanName"/>
其中name指定useBean中使用的javaBean的id;property指定要获取javaBean的属性名。
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'userlogin.jsp' starting page</title> </head> <body> <jsp:useBean id="login" class="com.Login" scope="page"/> <jsp:setProperty property="name" name="login" param="username"/> <jsp:setProperty property="password" name="login" param="userpassword"/> <%=login.getName() %> <br> <!-- <%=login.getPassword() %>--> <jsp:getProperty property="password" name="login"/> </body> </html>
<jsp:include>
实现页面的复用使用<jsp:include>标签。
例如:
<jsp:include page="index.jsp"/>
还可以使用:
<%@include file="url"%>
两者的区别:
<jsp:include>为动态包含,将被包含的页面的结果包含进来。即先处理在包含。
%@include%为静态包含,将被包含的内容包含进来,先包含,在处理。
<jsp:forward>
<jsp:forward page=“url">达到和跳转相同的效果。page是要跳转的页面。