欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaWeb开发基础(JSP和JavaBean的认识,如何使用)

程序员文章站 2022-04-15 17:47:09
JavaWeb学习-JSP和JavaBean1、认识JavaBean2、在JSP中使用JavaBean3、JavaBean的范围1、认识JavaBeanJavaBean是一个遵循特定写法的Java类,在JavaBean中可以将控制逻辑、值、数据库访问和其他对象进行封装,并且可以被其他应用来调用。实际上,JavaBean就是一种Java组件技术。JavaBean的作用是向用户提供实现特定逻辑的方法接口,而具体的实现封装在组件的内部,不同的用户根据具体的应用情况使用该组件的部分或全部控制逻辑...

1、认识JavaBean

2、在JSP中使用JavaBean

3、JavaBean的范围


1、认识JavaBean

JavaBean是一个遵循特定写法的Java类,在JavaBean中可以将控制逻辑、值、数据库访问和其他对象进行封装,并且可以被其他应用来调用。实际上,JavaBean就是一种Java组件技术。JavaBean的作用是向用户提供实现特定逻辑的方法接口,而具体的实现封装在组件的内部,不同的用户根据具体的应用情况使用该组件的部分或全部控制逻辑

它通常具有如下特点:

  • Java类必须具有一个无参的构造函数(一般不写的话系统会自动生成)
  • 私有化的成员属性。
  • 私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。
public class Student {
	private String stuno;//学生学号
	private String stuname;//学生姓名
	private int age;//学生年龄
	
	//Student类对外提供的用于访问私有属性的public方法
	public String getStuno() {
		return stuno;
	}
	public void setStuno(String stuno) {
		this.stuno = stuno;
	}
	public String getStuname() {
		return stuname;
	}
	public void setStuname(String stuname) {
		this.stuname = stuname;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}	
}

从上面的例子可以看出,在JavaBean中不仅要定义其成员变量,还要对成员变量定义setter/getter方法。对于每一个成员变量要定义一个getter方法和一个setter方法。setter方法称为属性修改器getter方法称为属性访问器。属性修改器必须以小写的set前缀开始,后跟属性名,且属性名的第一个字母要改为大写,如上面的setStuname。属性访问器通常以小写的get前缀开始,后跟属性名,且属性名的第一个字母也要改为大写,如上面的getStuname。

特殊的JavaBean属性:

给Boolean类型设置属性,要将getter方法改为is方法

如:

private boolean member;
public boolean isMember()
{
    return isMember;
}
public void setMember(boolean isMember)
{
    this.isMember = isMember;
}

对于建立属性,MyEclipse提供了较为方便的做法。右击代码界面,在弹出的快捷菜单中选择Source|Generate Getters and Setteers命令

JavaWeb开发基础(JSP和JavaBean的认识,如何使用)

2、在JSP中使用JavaBean

2.1、为什么要在JSP中使用JavaBean?

在很多Javaweb项目中都要显示数据库中的内容。比如在学生信息管理系统中经常在页面中显示数据库中学生的信息,在这种情况下就必须要访问数据库。通常将访问数据库的代码写在JSP内。但是在JSP内嵌入大量的java代码可能会造成维护不方便。试想一下,如果JSP页面上需要进行复杂的HTML显示又要写大量的java代码,则对该页面的编写成员要求就高了,既要是html专家又得精通java。所以最好的办法就是将JSP中的Java代码移植到Java类中。而这些可能使用到的Java类就是JavaBean。

JavaWeb开发基础(JSP和JavaBean的认识,如何使用)

JSP访问数据库

JavaWeb开发基础(JSP和JavaBean的认识,如何使用)

Java类访问数据库

2.2、具体使用

1、定义JavaBean

  • 方法一:直接在JSP中实例化JavaBean
<%
    Student student = new Student();//使用student
>%

但这种方法是在JSP中使用Java代码。

  • 方法二:使用<jsp:useBean>标签

<jsp:useBean>标签用于在指定的域范围内查找指定名称的JavaBean对象,如果存在则直接返回该JavaBean对象的引用,如果不存在则实例化一个新的JavaBean对象并将它以指定的名称存储到指定的域范围中。
常用语法:
<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>
"id"属性用于指定JavaBean实例对象的引用名称和其存储在域范围中的名称。
"class"属性用于指定JavaBean的完整类名(即必须带有包名)。
"scope"属性用于指定JavaBean实例对象所存储的域范围,其取值只能是page、request、session和application等四个值中的一个,其默认值是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" class="com.zhukun.programmer.entity.Student" scope="page"></jsp:useBean>
	 <%
	     student.setStuno("200101");//为student对象的stuno属性赋值
	     student.setStuname("王强");//为student对象的stuname属性赋值
	     student.setAge(21);//为student对象的age属性赋值
	 %>
		<%--使用getXxx()方法获取对象的属性值 --%>
     <h2>姓名:<%=student.getStuno()%></h2>
     <h2>性别:<%=student.getStuname()%></h2>
     <h2>年龄:<%=student.getAge()%></h2>
</body>
</html>

在该例子中使用jsp:useBean动作实例化了Student对象,对象名为student

2、设置JavaBean属性

在实例开发应用中定义JavaBean之后需要在JSP页面设置JavaBean组件的属性。也就是调用setter方法。

  • 方法一:直接编写Java代码
<jsp:useBean id="student" class="com.zhukun.programmer.entity.Student" scope="page"></jsp:useBean>
	 <%
	     student.setStuname("王强");//为student对象的stuname属性赋值
	 %>
  • 方法二:使用<jsp:setProperty>标签

当值的来源是String常量时,jsp:setProperty的语法如下:

<jsp:setProperty property="属性名称" name="bean对象名" value="常量"/>
<%@ 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" class="com.zhukun.programmer.entity.Student" scope="page"/>
	<jsp:setProperty property="stuno" name="student" value="200102"/>
 	<jsp:setProperty property="stuname" name="student" value="李刚"/>
 	<jsp:setProperty property="age" name="student" value="24"/>
		<%--使用getXxx()方法获取对象的属性值 --%>
     <h2>姓名:<%=student.getStuno()%></h2>
     <h2>性别:<%=student.getStuname()%></h2>
     <h2>年龄:<%=student.getAge()%></h2>
</body>
</html>

JavaWeb开发基础(JSP和JavaBean的认识,如何使用)

当值来源是request参数时,jsp:setProperty的语法如下:

语法格式一:
<jsp:setProperty name="beanName" property="propertyName" value="string字符串"/>

语法格式二:
<jsp:setProperty name="beanName" property="propertyName" value="<%= expression %>" />

语法格式三:
<jsp:setProperty name="beanName" property="propertyName" param="parameterName"/>

语法格式四:
<jsp:setProperty name="beanName" 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>
	<form action="NewFile.jsp" >
		请输入学号:<input name="stuno" type="text"><br>
		请输入姓名:<input name="stuname" type="text"><br>
		请输入年龄:<input name="stuage" type="text"><br>	
		<input type="submit" value="提交">
	</form>
</body>
</html>

JavaWeb开发基础(JSP和JavaBean的认识,如何使用)

使用单个请求参数为bean的属性赋值

<%@ 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" class="com.zhukun.programmer.entity.Student" scope="page"/>
	<jsp:setProperty property="stuno" name="student" param="stuno"/>
		<%--使用getXxx()方法获取对象的属性值 --%>
     <h2>学号:<%=student.getStuno()%></h2>
</body>
</html>

JavaWeb开发基础(JSP和JavaBean的认识,如何使用)

用所有的请求参数为bean的属性赋值:

<%@ 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" class="com.zhukun.programmer.entity.Student" scope="page"/>
	<jsp:setProperty property="*" name="student"/>
		<%--使用getXxx()方法获取对象的属性值 --%>
     <h2>学号:<%=student.getStuno()%></h2>
     <h2>姓名:<%=student.getStuname()%></h2>
     <h2>年龄:<%=student.getAge()%></h2>
</body>
</html>

JavaWeb开发基础(JSP和JavaBean的认识,如何使用)

3、JavaBean的范围

<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>

scope说明它们之间的作用范围是不同的。
page:表示JavaBean对象的作用范围在实例化它的页面上,只在当前页面可用,在其他页面中不被认识。
request: 表示JavaBean实例除了可以在当前页面上可用之外,还可以在通过forward方法跳转的目标页面中被认识到。
session:表示JavaBean对象可以存在session中,该对象可以被同一个用户的所有页面认识。
application:表示JavaBean对象可以存在application中,该对象可以被所有用户的所有页面认识。

本文地址:https://blog.csdn.net/weixin_44279178/article/details/107890143

相关标签: Javaweb java web