实验目的
- 了解JSP开发模型发展历程。
- 熟悉JSP Model1和JSP Model2模型的原理。
- 掌握MVC(Model-View-Controller,模型-视图-控制器)设计模式,其中控制器的角色由Servlet实现,视图的角色由JSP页面实现,模型的角色是由JavaBean实现。
二、实验环境
IDEA2019、Windows10、Servlet、JSP、JavaBean。
三、实验步骤
实现用户注册需要创建两个JSP页面,注册页面register.jsp和注册成功提示信息页面loginSuccess.jsp;一个负责处理用户注册的请求的Servlet类ControllerServlet;两个JavaBean类,封装注册表单信息的JavaBean类RegisterFormBean和封装用户信息的JavaBean类UserBean;一个访问模拟数据库的辅助类DBUtil,这些组件的关系如下图所示。
(1)UserBean是封装用户信息的JavaBean,ControllerServlet根据用户注册信息创建出一个UserBean对象,并将UserBean对象添加到DBUtil对象中users成员,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页面。
四、实验过程
1.本实验的文件结构如图1所示。

2.设置web.xml可以方便指定首页以进行注册页面的指定,指定Web页面首页为register.jsp文件,代码如图2所示。

3.对于ControllerServlet,代码如图3-图4所示。


4.对于DBUtil类文件,代码如图5-图6所示。


5.对于RegisterFormBean文件,代码如图7-图9所示。



6.对于UserBean文件,代码如图10所示。

7.对于注册页面Register.jsp,代码如图11-图13所示。



8.对于注册成功页面loginSuccess.jsp,代码如图14-图15所示。


五、实验结果与分析
1.对于普通用户注册界面,如图16所示。

2.在图16中点击“注册”,按钮,可以正常注册,使用了ControllerServlet,结果如图17所示。

3.在3秒后,跳转到了登录成功界面,结果如图18所示。

4.返回注册页面,再次以同样信息注册,会提示注册用户存在,如图19所示。

六、附件下载