基于Servlet的单表用户管理系统

2023-11-29 00:35:56 浏览数 (1)

1前言

此设计是一个用户管理系统。我只设计了用户注册和登录和对用户的增删查改等功能。用户的增删查改只能有管理员来进行操作,用户只能查看自己的信息和注销自己的账号。管理员不能注销自己的账号。另外,用户如果登录失败的话会有弹框提示登陆失败。用户注销成功也是会有弹框提示。用户注册成功也是有弹框提示注册成功。然后都是通过点击对于的超链接返回登录页面。

2系统各层及组件描述

2.1 项目目录图

2.2 系统各层及组件描述

2.2.1 Dao层(存放用户与数据库交互的接口和类)

组件:

IUserDao(用户接口,提供用户信息的登录,注册,注销,更新密码等功能)

UserDaoImpl(实现接口,实现接口方法用户的添加,删除,修改,查找等功能)

虽然实现类新增了方法,但是在该工程中没有用到该新增的方法。

2.2.2 DataPool层(存放数据池连接类)

组件:

DbcpPool(数据池类)

2.2.3 Factory层(存放用户的Dao工厂和Service工厂)

组件:

ServiceFactory工厂类,用来获得service对象

DaoFactory工厂类,用来获得Dao的对象

2.2.4 JavaBean层(存放用户的结构类)

组件:

User(用户类)

2.2.5 Service层(存放系统提供的服务类)

组件:

IUserService(用户服务接口,调用用户服务工厂)

UserServicelmpl类(用户服务接口实现类实现用户相关的服务)

2.2.6 Servlet层(存放流程控制的类)

组件:

middleServlet(用来跳转到注册页面,因为注册页面在WEB-INF文件夹里面不能直接跳转。需要借助一个Servlet类)

searchServlet(用来执行查询请求的Servlet类)

rootAddServlet(用来处理管理员添加用户请求的Servlet类,因为请求不一样,管理员添加用户的jsp页面和注册页面不一样)

userdeleteServlet(用来处理删除用户请求的Servlet类)

middle1Servlet(与middleServlet类功能一样,只是跳转到登录页面)

LoginServlet(接收登录页面发来的数据,调用相关的Service类进行处理)

RegisterServlet(接收注册页面发来的数据,调用相关的Service类进行处理)

updateServlet(用来处理更新用户信息请求的Servlet类)

2.2.7 web层

2.2.7.1 filter 类

用来处理中文字符乱码的问题

2.2.7.2 UI类

主要功能是Servlet和WEB-INF目录下的jsp的中转站。

2.2.8 MyException 层

设置我的异常类,处理我想要显示的异常,不过在该工程中只在idea上提示

2.2.9 css层

组件:

login.css:设置系统登录页面的CSS样式

aAndth .css:设置a标签和th标签的CSS样式

add.css:实现用户注册页面的CSS样式

2.2.10 js层

组件:

checkUserAdd.js:实现用户注册页面的事件处理

Jquery.3.6.0.js

2.2.11 Web模块层(存放jar包和jsp文件)

组件:

WEB-INF下的pages层

login.jsp (登录界面)

register.jsp (注册页面)

error.jsp        (注册用户时提示用户已存在的弹框)

loginError.jsp   (登录失败的提示弹框)

loginoutTrue.jsp (注销账户成功的提示弹框)

true.jsp         (注册用户成功的提示弹框)

update.jsp       (管理员更新用户信息的页面)

Web 目录下

message.jsp      (提示管理员不能随便注销的页面)

rootregister.jsp (管理员添加用户的页面)

rootShow.jsp     (管理员登录成功后显示信息的页面)

show.jsp         (普通用户登录成功后显示个人信息的页面)

lib层(依赖包)

3外部资源

jar包:

4数据库登录名和密码

登录名:root,密码:666666

5网站图

6心得体会

这次作业加深了我对Servlet和Dao和 UI 的关系。其中WEB-INF下的jsp文件一开始不知道如何识别,后来才发现原来UI就是WEB-INF和Servlet的中转站。还有这次由于网页的布局,让我学会了挺多CSS样式的设置。比如说那个颜色和位置。还有就是WEB-INF下的jsp一开始我不知道为什么识别不了我的CSS样式和js事件,后来才发现又是路径的问题。后来在网上找了

${pageContext.request.contextPath}

这一句,就可以识别,这一句的就是找当前位置的相对路径。然后再设置需要添加的url。还有就是不知道为什么我的网页执行多次的时候会卡住,一直在那转圈,后来听同学说,原来是因为没有关闭数据库连接,导致数据连接达到了最大允许连接数。后来,加了close之后就好了。但是再查询结果集的时候问题又来了。就是如何返回值类型为结果集合的话,不能关闭连接,但是我又需要结果集的数据怎么办呢,就要用到Bean的数组了,把查询结果集放到Bean数组中,然后这样就可以查询完之后关闭连接了。也不会怕达到最大允许连接数了,从而导致网页卡住了。

还有Dao原来是被Service调用,在Dao里面定义好方法,Servlet然后就直接调用Service就可以了。还有Filter,处理中文字符乱码。直接让整个Web应用下的中文字符乱码都解决好了。再也不用在每一个Servlet里面都处理中文字符乱码的代码了。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞