Jsp(五)——JavaBean组件

目录

1.JavaBean组件引入

2.Jsp: useBean创建JavaBean

3.jsp:setProperty 设置 javabean 属性值

3.1 先看看原始方法:

 3.2 再来用jsp:setProperty 设置 javabean 属性值:

3.3 用Property设置单个值:

3.4 Param属性的运用:

4 jsp:getProperty 获取javabean 属性值

5. javabean 的保存范围 

5.1 request范围;

扫描二维码关注公众号,回复: 5994293 查看本文章

5.2 session范围;

5.3 application范围;

6. javabean 删除


1.JavaBean组件引入

JavaBean 是使用 Java 语言开发的一个可重用的组件,在 JSP 开发中可以使用 JavaBean 减少重复代码,使整个 JSP 代码的开发更简洁。

 传统地引入对象是先建一个model,再引入对象路径:

Student类:

package com.java.model;

public class Student {

	private String name;
	private 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;
	}
	
}

javabean.jsp代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="com.java.model.Student" %>
<!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>
<%
	Student student=new Student();
	student.setName("张三");
	student.setAge(20);
%>
<h1>姓名:<%= student.getName() %></h1>
<h1>年龄:<%= student.getAge() %></h1>
</body>
</html>

运行结果:

2.Jsp: useBean创建JavaBean

 <jsp:useBean id="实例化对象名称" scope="保存范围" class="类完整名称"/>

Scope,一共有 page,request,session 和 application4 个属性范围,默认是 page;

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<jsp:useBean id="student" scope="page" class="com.java.model.Student"></jsp:useBean>
<%
	student.setName("王炸");
	student.setAge(22);
%>
<h1>姓名:<%= student.getName() %></h1>
<h1>年龄:<%= student.getAge() %></h1>
</body>
</html>

运行结果:

3.jsp:setProperty 设置 javabean 属性值

<jsp:setProperty property="属性名称" name="实例化对象的名称" value="属性值" param="参数名称"/>

Property=”*” 自动匹配所有

3.1 先看看原始方法:

student1.jsp代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<form action="javabean3.jsp" method="post">
<table>
	<tr>
		<td>姓名:</td>
		<td><input type="text" name="name"/></td>
	</tr>
	<tr>
		<td>年龄:</td>
		<td><input type="text" name="age"/></td>
	</tr>
	<tr>
		<td colspan="2"><input type="submit" value="提交"/></td>
	</tr>
</table>
</form>
</body>
</html>

javabean3.jsp代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="com.java.model.Student" %>
<!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>
<%
	//设置字符集编码为utf-8
	request.setCharacterEncoding("utf-8");
	//获取用户名和年龄
	String name=request.getParameter("name");
	String age=request.getParameter("age");
	//实例化对象
	Student student=new Student();
	student.setName(name);
	student.setAge(Integer.parseInt(age));
%>
<h1>姓名:<%= student.getName() %></h1>
<h1>年龄:<%= student.getAge() %></h1>
</body>
</html>

运行结果:

点击提交之后:

 3.2 再来用jsp:setProperty 设置 javabean 属性值:

来创建一个javabean3-1.jsp文件,前面将form的action改成javabean3-1.jsp;

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<%
	//设置字符集编码为utf-8
	request.setCharacterEncoding("utf-8");
%>
<!-- 用jsp:useBean组件创建JavaBean -->
<jsp:useBean id="student" scope="page" class="com.java.model.Student"></jsp:useBean>
<!-- 用jsp:setProperty来设置javaBean属性值 -->
<jsp:setProperty property="*" name="student"/>
<h1>姓名:<%= student.getName() %></h1>
<h1>年龄:<%= student.getAge() %></h1>
</body>
</html>

运行结果:

点击提交之后:

可以看到非常方便!

3.3 用Property设置单个值:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<%
	//设置字符集编码为utf-8
	request.setCharacterEncoding("utf-8");
%>
<!-- 用jsp:useBean组件创建JavaBean -->
<jsp:useBean id="student" scope="page" class="com.java.model.Student"></jsp:useBean>
<!-- 用jsp:setProperty来设置javaBean属性值 -->
<jsp:setProperty property="name" name="student"/>
<!-- 这里我们将年龄的值设定为100,即前台年龄不管输入多少,后台始终接受的是100 -->
<jsp:setProperty property="age" name="student" value="100"/>
<h1>姓名:<%= student.getName() %></h1>
<h1>年龄:<%= student.getAge() %></h1>
</body>
</html>

运行结果:

3.4 Param属性的运用:

假如我们将student1.jsp中的姓名这一行中的name属性值改为userName;

并且后台的获取name的属性不改变的话,就只能获取到null,因此我们在后台可以将加一个Param属性值;

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<%
	//设置字符集编码为utf-8
	request.setCharacterEncoding("utf-8");
%>
<!-- 用jsp:useBean组件创建JavaBean -->
<jsp:useBean id="student" scope="page" class="com.java.model.Student"></jsp:useBean>
<!-- 用jsp:setProperty来设置javaBean属性值 ,并且加入param属性来配对前台的userName属性-->
<jsp:setProperty property="name" name="student" param="userName"/>
<!-- 这里我们将年龄的值设定为100,即前台年龄不管输入多少,后台始终接受的是100 -->
<jsp:setProperty property="age" name="student" value="100"/>
<h1>姓名:<%= student.getName() %></h1>
<h1>年龄:<%= student.getAge() %></h1>
</body>
</html>

运行结果和之前是一样的! 

4 jsp:getProperty 获取javabean 属性值

<jsp:getProperty property="属性名称" name="实例化对象的名称"/>

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<%
	request.setCharacterEncoding("utf-8");
%>
<!-- 用jsp:useBean组件创建JavaBean -->
<jsp:useBean id="student" scope="page" class="com.java.model.Student"></jsp:useBean>
<!-- 用jsp:setProperty来设置javaBean属性值 -->
<jsp:setProperty property="*" name="student"/>
<!-- jsp:getProperty 获取javaBean 属性值 -->
<h1>姓名:<jsp:getProperty property="name" name="student"/></h1>
<h1>年龄:<jsp:getProperty property="age" name="student"/></h1>
</body>
</html>

运行前面的student1.jsp代码,将action路径改为上述文件路径,运行成功后就会获取到用户输入的信息!

5. javabean 的保存范围 

Javabean 的保存范围有 page,request,session.application,默认是 page;

5.1 request范围;

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<%
	request.setCharacterEncoding("utf-8");
%>
<!-- 用jsp:useBean组件创建JavaBean -->
<jsp:useBean id="student" scope="request" class="com.java.model.Student"></jsp:useBean>
<!-- 用jsp:setProperty来设置javaBean属性值 -->
<jsp:setProperty property="name" name="student" value="张飞"/>
<jsp:setProperty property="age" name="student" value="55"/>
<jsp:forward page="target1.jsp"/>
</body>
</html>

target1.jsp代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<!-- 用jsp:useBean组件创建JavaBean -->
<jsp:useBean id="student" scope="request" class="com.java.model.Student"></jsp:useBean>
<!-- jsp:getProperty 获取javaBean 属性值 -->
<h1>姓名:<jsp:getProperty property="name" name="student"/></h1>
<h1>年龄:<jsp:getProperty property="age" name="student"/></h1>
</body>
</html>

运行结果:

5.2 session范围;

session的范围是单个会话内保存数据;

javabean3.jsp代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<%
	request.setCharacterEncoding("utf-8");
%>
<!-- 用jsp:useBean组件创建JavaBean -->
<jsp:useBean id="student" scope="session" class="com.java.model.Student"></jsp:useBean>
<!-- 用jsp:setProperty来设置javaBean属性值 -->
<jsp:setProperty property="name" name="student" value="张飞"/>
<jsp:setProperty property="age" name="student" value="55"/>
<h1>session数据设置完毕!</h1>
</body>
</html>

target2.jsp代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<!-- 用jsp:useBean组件创建JavaBean -->
<jsp:useBean id="student" scope="session" class="com.java.model.Student"></jsp:useBean>
<h1>session中取值完毕!</h1>
<!-- jsp:getProperty 获取javaBean 属性值 -->
<h1>姓名:<jsp:getProperty property="name" name="student"/></h1>
<h1>年龄:<jsp:getProperty property="age" name="student"/></h1>
</body>
</html>

运行结果:

期间javabean3.jsp的页面不能关闭;

5.3 application范围;

javabean4.jsp代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<%
	request.setCharacterEncoding("utf-8");
%>
<!-- 用jsp:useBean组件创建JavaBean -->
<jsp:useBean id="student" scope="application" class="com.java.model.Student"></jsp:useBean>
<!-- 用jsp:setProperty来设置javaBean属性值 -->
<jsp:setProperty property="name" name="student" value="项羽"/>
<jsp:setProperty property="age" name="student" value="52"/>
<h1>application数据设置完毕!</h1>
</body>
</html>

target3.jsp代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<!-- 用jsp:useBean组件创建JavaBean -->
<jsp:useBean id="student" scope="application" class="com.java.model.Student"></jsp:useBean>
<h1>application中取值完毕!</h1>
<!-- jsp:getProperty 获取javaBean 属性值 -->
<h1>姓名:<jsp:getProperty property="name" name="student"/></h1>
<h1>年龄:<jsp:getProperty property="age" name="student"/></h1>
</body>
</html>

运行结果:

6. javabean 删除

Page 范围:pageContext.removeAttribute(“javaBean Name”);

request 范围:request.removeAttribute(“javaBean Name”);

session 范围:session.removeAttribute(“javaBean Name”);

application 范围:application.removeAttribute(“javaBean Name”);

我们先运行session设置数据的代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<%
	request.setCharacterEncoding("utf-8");
%>
<!-- 用jsp:useBean组件创建JavaBean -->
<jsp:useBean id="student" scope="session" class="com.java.model.Student"></jsp:useBean>
<!-- 用jsp:setProperty来设置javaBean属性值 -->
<jsp:setProperty property="name" name="student" value="张飞"/>
<jsp:setProperty property="age" name="student" value="55"/>
<h1>session数据设置完毕!</h1>
</body>
</html>

 

再运行javabeanDelete删除代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<%
	session.removeAttribute("student");
%>
<h1>session中javabean已经删除!</h1>
</body>
</html>

再运行获取数据的target2.jsp代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>
<!-- 用jsp:useBean组件创建JavaBean -->
<jsp:useBean id="student" scope="session" class="com.java.model.Student"></jsp:useBean>
<h1>session中取值完毕!</h1>
<!-- jsp:getProperty 获取javaBean 属性值 -->
<h1>姓名:<jsp:getProperty property="name" name="student"/></h1>
<h1>年龄:<jsp:getProperty property="age" name="student"/></h1>
</body>
</html>

可以看到javabean中的对象student已经成功删除!

猜你喜欢

转载自blog.csdn.net/qq_37084904/article/details/89052655
今日推荐