1、模块介绍
以JSP+Servlet+JavaBean模式进行开发,系统流程图如下:
用户登录之前需要进行注册,在注册成功后通过注册的用户名和密码进行登录,登录失败可以根据系统提示重新登录,登录成功后进入主页。
2、关键技术
本实例采用MVC模式进行开发,战士了模型层(Model)、视图层(View)和控制层(Controller)的结构体系,程序设计结构如下图所示:
程序为用户提供了JSP页面进行战士,如用户注册页面reg.jsp、用户登录页面login.jsp等。这些JSP页面是程序的视图层(View),对于用户而言,通过这一层与程序进行交互,同时交互后的结果也是通过这一层回应给用户。
用户对程序的请求以及程序对用户所作出的回应由控制层(Conrtroller)掌管,本实例中表现为Servlet,如用户注册Servlet、用户登录Servlet等。当用户发送一个请求时,Servlet将判断用户的请求类型,进而提供相应的业务逻辑处理方法进行处理;请求由程序处理完毕后,又由Servlet控制返回处理的结果信息。此层也是程序的核心部分。
3、数据库设计
本实例只涉及一数据表,名称为tb_user。此表为用户信息表,用于存放用户的注册信息,其结构如图表示:
Column Name | Datatype | NOT NULL | AUTO INC | Default Value | Comment |
id | Integer | √ | √ | null | 主键 |
username | varchar(45) | √ | null | 用户名 | |
password | varchar(45) | √ | null | 密码 | |
sex | varchar(45) | √ | null | 性别 | |
photo | varchar(45) | √ | null | 头像 | |
varchar(45) | √ | null | 邮箱 | ||
tel | varchar(45) | √ | null | 联系电弧 |
4、JavaBean设计
本实例设计3个主要的JavaBean组件,分别为用户实例对象User、用户数据库操作对象UserDao类、数据库连接工具类DataBaseUtil。
①、用户实体对象
User类用于封装用户尸体对象,提供了用户对象的详细信息以及相应的get和set方法。
②、数据库连接工具类
对于经常用到的操作可以将其封装一个类,在类中提供了相应的操作方法,从而增强了代码的重用性。
③、用户数据库操作
与用户相关的数据库操作方法封装在UserDao类中,此类提供了实例中所用到的数据添加和查找方法,其中userIsExit()方法用于查找指定用户名在数据库是否存在,返回布尔值。
在用户提交注册信息时,需要判断所提交的用户名是否已被注册,如果用户名已被占用则不能再次被注册。用户名是用户信息的标识,在提交注册信息时可以使用userIsExit()进行判断
用户提交注册信息后,需要对用户信息进行持久化,以保证用户凭其信息可以登录。这就需要在UserDao类中提供用户信息持久化的方法,其名称为saveUser()。
注册成功后,用户即可通过注册的用户名及密码进行登录。对于程序而言,此操作实质就是根据用户所提供的用户名及密码查询用户信息,如果查询成功,证明在数据库中存在于之匹配的信息,则登录成功。这一操作通过UserDao类的login()方法实现。
5、实现过程
①用于注册
创建名为RegServlet的类(即处理用户注册请求的servlet对象),通过doPost()方法对用户注册请求 进行处理。在处理过程中,首先通过request获取用户的注册信息,然后通过UserDao类的userIsExit()方法判断所提交的用户名是否已被注册,如果没有注册则将用户提交的注册信息写入数据库中,否则进行错误处理;对于用户注册的结果信息由mesage.jsp页面予以显示。
创建视图层(为用户提供的注册页面),名称为reg.jsp,在其中提供给用户注册的表单。此表一post提交方式将请求发送到RegServlet,RegServlet类将根据用户提供的用户信息进行相应处理。
②用户登录
创建名为LoginServlet的类(即处理用户登录请求的Servlet),通过doPost()方法对用户登录进行处理。在获取用户提供的用户名和密码后,通过UserDao类的login()方法查询用户信息,如果查询到的用户信息不为null,则用户登录成功,将获取到的用户对象写入到Session中,否则进行相应的错误处理。
创建视图层(为用户提供的登录页面),名称为login.jsp,在其中提供登录表单。
③用户退出
用户退出请求由UserExitServlet类进行处理,它是一个Servlet对象。此类通过doGet()方法对退出请求进行操作,此操作需要将存放在session中的User对象逐出。
④提示信息页面
程序在处理业务请求后,需要告知用户处理结束,如用户注册成功、用户登录失败等,所以实例中提供了message.jsp页面。
⑤Servlet配置