前面学习了一大堆,什么JSP,Servlet、jstl、el等等等,大多是一些死的东西,只要会其语法,知道怎么用就行了,所以做了一个小小的只有增删改查的小demo,为的就是熟悉这些知识。灵活运用起来。最主要是的开发思想,技术就那么一些,拿到demo需求后,我们该如何下手去做,怎么想,怎么开发的呢?我把我自己写该demo时的思路记录下来。
--WZY
一、需求分析
讲过一点,这个非常的简单,就增删改查的运用,
注册、登录、查询所有用户、查询详情、修改、删除
有两个权限,
一个权限是管理员权限,登录进系统后,就能看到所有用户的信息并且能够对所有用户的信息加以修改,删除等操作。
另一个是普通用户权限,登录进系统,只能看到自己的相关信息,并且可以修改自己的信息(密码等)
主页面模块
首先进入的就是主页面模块,会进行判断,看用户是否登录(查看cookie中是否有用户的帐号和密码的信息存在,如果有,则直接用该帐号密码进行登录,如果没有则什么都数据都不显示)
管理员登录进去后看到所有用户信息,能够对其任意用户点击进行详细信息的查看,并且能够修改,删除用户,并且能够有注册功能
普通用户登录进主页面,只能查看自己的相关信息。能进行修改信息操作。但是没有注册和删除用户的功能。
登录模块,
登录会对其进行判断是否是管理员还是普通用户,并且有记住密码的功能,点击了记住密码,那么在下次访问主页面时,就已经登录过了,使用cookie记住帐号密码的功能。
编写帐号密码时会进行校验(校验帐号密码格式是否合格,这个没做了,有兴趣可以去做做)
登录模块做的事情很简单,判断帐号密码是否正确,如果正确,那么将跳转到主页面,并将用户信息保存到session中,判断是否记住了密码,如果记住了密码,那么就应该将帐号密码保存到cookie中。判断是否是管理员还是用户。
注册模块
这个只有管理员才有权限做这个事情,注册模块,很简单,就是增加用户的操作,只是在注册填写信息的时候,需要做数据校验,限制用户输入一些非法数据,我没做,有闲情的人可以去做做。
二、技术分析
三层架构思想
JSP(jstl、el)
Servlet(request、response、session/cookie)
javabean
JDBC
MySql
三、编写思路
1、先将所有的包结构写出来,大体看起来就是三层架构思想。需要导的mysql的jar包也导入进去
2、从dao开始编写,
成功连接mysql数据库
将常用的增删改查方法写出来并测试成功
3、编写service层
由于此demo太过简单,没有什么业务逻辑,所以这service层,其实也就是调用一下dao层的增删改查方法。
4、编写web层,一个模块一个模块编写
主页模块
用户没登陆,显示如图所示。左上角会显示请登录和主页两个超链接,主页是回到主页面,请登录就是跳到登录页面
普通用户登录后,主页显示如图所示,自己本身的信息会用红色字体标识,并且权限只能是查看自己的详细信息和修改一些信息。左上角,会显示自己的名字,还有注销的功能,注销就是将该用户下线,使用别的帐号进行登录的操作,
管理员登录后,主页显示如图所示,管理员能看到所有用户的信息,并且能对他们进行修改,删除操作,而对自己并没有删除操作。而且,管理员会有注册用户的功能。
注册模块
这个很简单,但是缺陷就是没有数据校验的功能,只能填写正确的信息,比如不填写某项信息,也不出现什么提示信息。这个非常不好。并且后台会报异常。
登录模块
这个其实就一个技术,记住密码这里,使用了cookie技术。将帐号密码保存到了cookie上。登录之后就跳转到了主页面显示信息了。
查询模块
这个就做一个查询用户的详细信息,如果可以的话,自己可以进行扩展,比如通过用户名将该用户名的信息查询出来。使用模糊查询,等等都可以,这里就是最简单的。
修改
删除就直接删除掉了。。
四、总结
这个小的用户管理,花了我一天的时间,完全自己独立写的,其实如果熟悉业务流程,根本花不了那么长的时间,估计只需要2个小时不到就可以写出来了,虽然只有增删改查几个功能,但是对于新手来说,通过这个来让自己更加熟练的掌握学习到知识还是不错的,用到了很多基础的东西。比如前端显示页面中,标签、el的使用,并且将数据放到session域中,通过el表达式去拿到我们想要的数据,比如在后台,使用cookie保存帐号和密码,比如,请求转发和重定向的使用,比如request域传值,比如,request获取请求参数,比如,前端页面的一些css的使用,比如连接数据库的操作,对数据库进行增删改查的操作,原生的,最古老的写法。真的是非常累,全是重复性代码,但是会知道prepareStatement和Statement的区别是什么,为什么使用prepareStatement而不是Statement呢。最重要的收获是,大大小小的流程让我非常乱,在写主页面时,因为有几个页面都会跳转到主页面来,比如登录页面,登陆完就会跳到主页面来,比如我们直接访问,也会到主页面来,那么这两个就不同了,直接访问到主页面,就要进行cookie中是否用信息的判断,而登录完到主页面,要判断帐号密码是否正确,是不是管理员,该显示多少数据,等等一大堆,我全写在一个LoginServlet中了,导致其中的代码量非常庞大,估计也就只有我能看得懂,哈哈~但是功能流程大概是完成了。能跑起来,达到了预期的效果,唯一不足的就是太乱了,对于流程还不是很清楚,到后面我相信会越来越熟练,写一个登录模块,应该需要哪些功能,进行哪些判断,这些都应该是熟能生巧的事。好好加油把。