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是要跳转的页面。