DRP(五)——JSP与JavaBean

本文介绍了JSP的运行机制,包括转换阶段和执行阶段,并深入探讨了如何使用JavaBean组件来封装业务逻辑,通过具体示例展示了如何在JSP页面中使用JavaBean。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSP运行机制


      JSP容器管理JSP页面生命周期的两个阶段:转换阶段和执行阶段。当有一个对JSP页面的客户请求到来时,JSP容器检验JSP页面的语法是否正确,将JSP页面转换为Servlet源文件,然后调用javac工具类编译Servlet源文件生成字节码文件,这一阶段是转换阶段。接下来,Servlet容器加载转换后的Servlet类,实例化一个对象处理客户端的请求,在请求处理完成后,响应对象被JSP容器接收,容器将HTML格式的响应信息发送到客户端,这一阶段是执行阶段。

JavaBean

为了分离页面中的HTML代码和Java代码,一个很自然的想法就是单独编写一个类来封装页面的业务逻辑。在JSP技术中,负责完成业务逻辑的类,可以用JavaBean组件来实现。

JavaBean组件本质上就是一个Java类,只不过这个类需要遵循一些编码的约定。在JSP页面中,既可以像使用普通类一样实例化JavaBean类的对象,调用它的方法,也可以利用JSP技术中提供的动作元素来访问JavaBean。

一个标准的JavaBean组件具有以下几个特性:

(1)它是一个公开的类

(2)它有一个默认的构造方法,也就是不带参数的构造方法.

(3)它提供setXXX()方法和getXXX方法来让外部程序设置和获取JavaBean的属性。

(4)它实现java.io.Serializable或者java.io.Externalizable接口,以支持序列化。

使用三个动作元素<jsp:useBean>,<jsp:Property>和<jsp:getProperty>来访问JavaBean

举例说明:

建立一个JavaBean类:UserBean

<span style="font-size:24px;">package org.sunxin.ch09.beans;

import java.io.Serializable;

public class UserBean implements Serializable {
	private String name;
	private int sex;
	private String education;
	private String email;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getSex() {
		return sex;
	}
	public void setSex(int sex) {
		this.sex = sex;
	}
	public String getEducation() {
		return education;
	}
	public void setEducation(String education) {
		this.education = education;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	
}</span>
reg.html

<span style="font-size:24px;"><!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=GB2312">
<title>用户信息填写</title>
</head>
<body>
	<form action="reg.jsp" method="post">
		<table> 
			<tr>
				<td>用户名:</td>
				<td><input type="text" name="name"></td>
			</tr>
			<tr>
				<td>性别:</td>
				<td>
					<input type="radio" name="sex" value="1" checked>男
					<input type="radio" name="sex" value="0">女
				</td>
			</tr>
			<tr>
				<td>学历</td>
				<td>
					<select size=1 name="education">
						<option value="" selected>...</option>
						<option value="高中">高中</option>
						<option value="大学">大学</option>
						<option value="硕士">硕士</option>
						<option value="博士">博士</option>
					</select>
				</td>
			</tr>
			<tr>
				<td>Email</td>
				<td><input type="text" name="mail"></td>
			</tr>
			<tr>
				<td><input type="reset" value="重填"></td>
				<td><input type="submit" value="提交"></td>
			</tr>
		</table>
	</form>
</body>
</html></span>
reg.jsp
<span style="font-size:24px;"><%@ page language="java" contentType="text/html; charset=GB2312"%>
<%
	request.setCharacterEncoding("GB2312");
%>

<jsp:useBean id="user" scope="session" class="org.sunxin.ch09.beans.UserBean"/>

<jsp:setProperty name="user" property="*"/>
<jsp:setProperty name="user" property="email" param="mail"/>
注册成功!</span>
userinfo.jsp
<span style="font-size:24px;"><%@ page language="java" contentType="text/html; charset=GB2312"%>

<jsp:useBean id="user" scope="session" type="org.sunxin.ch09.beans.UserBean"/>

你的姓名:<jsp:getProperty property="name" name="user"/><br>
你的性别:<%
	int sex=user.getSex();
	if(1==sex){
		out.println("男");
	}else if(0==sex){
		out.println("女");
	}
 %><br>
 你的学历:<jsp:getProperty property="education" name="user"/><br>
 你的E-mail:<jsp:getProperty property="email" name="user"/>
</span>
填写用户信息


注册成功:


注册成功后,信息保存到session中,访问:http://localhost:8080/userinfo.jsp


总结

       JSP技术还有很多,现在只是了解了解,以后用到然后再总结。

评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值