第十一章:JSP开发模型及任务11按照Model2思想实现用户注册功能

学习目标

一:JSP开发模型
二:MVC 设计模式
三:任务11—按照Model2思想实现用户注册功能

学习内容

一:JSP开发模型

为了更方便地使用JSP技术,SUN公司为JSP提供了两种开发模型:JSPModel1和JSPModel2。Model1简单轻便,适合小型Web项目的快速开发;JSPModel2模型是在JSP Model1的基础上提出的,它提供了更清晰的代码分层,更适用于多人合作开发的大型项目,实际开发过程中,根据项目需求,选择合适的模型。

2.JSP Model1
Model1只有JSP和bean。它的中心是JSP页面,JSP页面中既有html页面脚本,又有<%java代码 %>,这样就在JSP页面中同时实现了业务逻辑和流程控制,一方面可以快速开发,另一方面,jsp职责过重,逻辑混乱,不好维护。

在这里插入图片描述

执行过程
(1) 首先Web客户端向JSP页面发出request请求;

(2) 在JSP页面取得请求所需的页面参数;

(3) 通过JSP调用业务逻辑层(javabean)的方法并返回结果;

(4) 在JSP中完成网页页面的渲染;

(5) 通过JSP向Web客户端返回处理结果

Model1的优缺点:

(1) 优点:架构简单,比较适合小型项目的开发。基本上使用JSP+持久层就可以完成一个小型项目的开发。
(2) 缺点:JSP页面有控制页面显示的代码又有与后台业务逻辑交互的Java代码,职责不单一,页面负担很重,影响页面运行速度;而且不方便后期的维护。如果不加选择地随意运用Model1,会导致JSP页面内被嵌入大量的脚本片段或Java代码,特别是当需要处理的请求量很大时,情况会更为糟糕。

二:MVC 设计模式

Model2表示的是基于MVC模式的框架。
MVC“Model”代表的是应用的业务逻辑(通过JavaBean,EJB组件实现);
MVC“View”是应用的表示层(由JSP页面产生);
MVC“Controller”是提供应用的处理过程控制(一般是一个Servlet),Servlet充当控制者的角色,负责管理对请求的处理,创建JSP页面所需的JavaBean和对象,同时根据用户的动作决定把哪个JSP页面传给用户。特别要注意,在JSP页面内没有处理逻辑,它仅负责检索原先由Servlet创建的对象或JavaBean,然后从Servlet中提取动态内容插入到静态模板中进行页面显示。所以简单来说,在Model2中,JSP进行页面显示,JavaBean进行逻辑处理,Servlet完成逻辑控制。
在这里插入图片描述

执行过程:
(1) 首先Web客户端向Servlet发出request请求;
(2) 通过Servlet取得请求所需的表单数据;
(3) Servlet向业务逻辑层调用业务逻辑方法并返回所需的数据;
(4) Servlet再重定向转到JSP页面,在JSP页面完成页面渲染;
(5) 通过JSP通过response向Web客户端返回处理结果

Model2架构模式的优缺点
(1) 优点:清晰地分离了表达和内容,明确了角色的定义以及开发者与网页设计者的分工,适合大型项目的开发。
(2) 缺点:分层过多,不适合小型项目的开发。

三:任务11—按照Model2思想实现用户注册功能

在这里插入图片描述
3.1任务介绍
本任务将按照JSPModel2的模型思想编写一个用户注册程序。该程序中包含两个jsp页面register.jsp和loginSuccess.jsp、一个Servlet类ControllerServlet、两个JavaBean类RegisterFormBean和UserBean,以及一个访问数据库的辅助类DBUtil,这些组件的关系如下图所示:

(1)UserBean是代表用户信息的JavaBean,ControllerServlet根据用户注册信息创建出一个UserBean对象,并将对象添加到DBUtil对象中,loginSuccess.jsp页面从UserBean对象中提取用户信息进行显示。

(2)RegisterFormBean是封装注册表单信息的JavaBean,用于对从ControllerServlet中获取到的注册表单信息中的各个属性(也就是注册表单内的各个字段中所填写的数据)进行检验。

(3)DBUtil是用于访问数据库的辅助类,它相当于一个DAO(数据访问对象)。DBUtil类中封装了一个HashMap对象,用于模拟数据库,HashMap对象中的每一个元素即为一个UserBean对象。

(4)ControllerServlet是控制器,它负责处理用户注册的请求。如果注册成功,就会跳到loginSuccess.jsp页面;如果注册失败,重新跳回到register.jsp页面并显示错误信息

(5)register.jsp是显示用户注册表单的页面,它将注册请求提交给ControllerServlet程序处理。

(6)loginSuccess.jsp是用户登录成功后进入的页面,新注册成功的用户自动完成登录,直接进入loginSuccess.jsp页面

3.2 创建项目,编写JavaBean
3.1编写UserBean类
UserBean用于封装用户信息,代码如下:

package cn.itcast.chapter11.model2.domain;

public class UserBean {
   
	
	    private String name;
	    private String password;
	    private String email;
	    public String getName() {
   
	        return name;
	    }
	    public void setName(String name) {
   
	        this.name = name;
	    }
	    public String getPassword() {
   
	        return password;
	    }
	    public void setPassword(Object passwrod2) {
   
	        this.password = (String) passwrod2;
	    }
	    public String getEmail() {
   
	        return email;
	    }
	    public void setEmail(String email) {
   
	        this.email = email;
	    }
		
		}
	
	

3.2编写RegisterFormBean类
用于封装注册表单信息

package cn.itcast.chapter11.model2.domain;
import java.util.HashMap;
import java.util.Map;
public class RegisterFormBean {
   
	private String name;
	private String password;
	private String password2;
	private String email;
	//定义成员变量errors,用于封装表单验证时的错误信息
	private Map<String, String> errors = new HashMap<String, String>();
	
	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;
	}
	public String getPassword2() {
   
		return password2;
	}
	public void setPassword2(String password2) {
   
		this.password2 = password2;
	}
	public String getEmail() {
   
		return email;
	}
	public void setEmail(String email) {
   
		this.email = email;
	}
	public boolean validate
  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值