本文转自与博客园一杯凉茶的博客.

前面学习了一大堆,什么JSP,Servlet、jstl、el等等等,大多是一些死的东西,只要会其语法,知道怎么用就行了,所以做了一个小小的只有增删改查的小demo,为的就是熟悉这些知识。灵活运用起来。最主要是的开发思想,技术就那么一些,拿到demo需求后,我们该如何下手去做,怎么想,怎么开发的呢?我把我自己写该demo时的思路记录下来。

一、需求分析

讲过一点,这个非常的简单,就增删改查的运用,

注册、登录、查询所有用户、查询详情、修改、删除

有两个权限,

一个权限是管理员权限,登录进系统后,就能看到所有用户的信息并且能够对所有用户的信息加以修改,删除等操作。

另一个是普通用户权限,登录进系统,只能看到自己的相关信息,并且可以修改自己的信息(密码等)

主页面模块

首先进入的就是主页面模块,会进行判断,看用户是否登录(查看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中了,导致其中的代码量非常庞大,估计也就只有我能看得懂,哈哈~但是功能流程大概是完成了。能跑起来,达到了预期的效果,唯一不足的就是太乱了,对于流程还不是很清楚,到后面我相信会越来越熟练,写一个登录模块,应该需要哪些功能,进行哪些判断,这些都应该是熟能生巧的事。好好加油把。

上一篇:深入学习Java Web(八): MVC和三层架构

后台是怎么判断管理员用户还是普通用户_深入学习 Java Web(九) :用户管理系统...相关推荐

  1. discuz设置用户每天回帖数_如何用Redis统计独立用户访问量,除了Hash跟Bitset,还有这个...

    众所周至,拼多多的待遇也是高的可怕,在挖人方面也是不遗余力,对于一些工作3年的开发,稍微优秀一点的,都给到30K的Offer,当然,拼多多加班也是出名的,一周上6天班是常态,每天工作时间基本都是超过1 ...

  2. mysql中用户权限的授予_如何在MySQL中创建用户和授予权限

    如何创建MySQL用户并授予权限?为了实现良好的安全性,需要为每个应用程序创建单独的用户帐户,而不是root用户访问数据库.这将确保应用程序无法访问其他应用程序的数据库.因此需要mysql管理员(ro ...

  3. python123注册登录_用Python实现web端用户登录和注册功能的教程

    用户管理是绝大部分Web网站都需要解决的问题.用户管理涉及到用户注册和登录. 用户注册相对简单,我们可以先通过API把用户注册这个功能实现了: _RE_MD5 = re.compile(r'^[0-9 ...

  4. Java Web实现用户登录功能

    java web 学习记录一下 mvc结构实现mysql 连接 什么是mvc MVC是模型(model).视图(view).控制(controller)这三个单词上的首字母组成.它是一种应用模型,它的 ...

  5. 后台是怎么判断管理员用户还是普通用户_JavaWeb图像可视化管理系统之后台搭建(一)环境配置与后台设计...

    这个系列文章用来记录一个完整的JavaWeb项目后台的搭建,完整代码也包含前端部分,适合新手,一共两篇. 作者自己也是新手,刚开始写自己的技术文章,其中不合规范之处,还希望各位一定要积极指正. 第一篇 ...

  6. 后台是怎么判断管理员用户还是普通用户_用户浏览器被阿里私自【托管】?仔细一查,这事并不简单...

    大家好,我是启人. 可能很多挨踢友之前都有过浏览器被人私自篡改的经历. 比如强制更改首页,替换默认搜索引擎. 不过这种情况在各种驱动级(也就是内核级)电脑管家的强力封杀下,现在基本不存在了. 但是,千 ...

  7. java web 用户管理_Java Web(九) 用户管理系统

    前面学习了一大堆,什么JSP,Servlet.jstl.el等等等,大多是一些死的东西,只要会其语法,知道怎么用就行了,所以做了一个小小的只有增删改查的小demo,为的就是熟悉这些知识.灵活运用起来. ...

  8. c++ 服务 以当前用户拉起进程_渗透技巧——通过CredSSP导出用户的明文口令

    0x00 前言 在渗透测试中,为了获得Windows系统中的用户口令,通常会选择读取lsass进程的内存.这种方法不仅需要获得系统的管理员权限,而且在更多情况下需要绕过系统对lsass进程的保护. 我 ...

  9. 用python写注册登录_用Python实现web端用户登录和注册功能的教程

    用户管理是绝大部分Web网站都需要解决的问题.用户管理涉及到用户注册和登录. 用户注册相对简单,我们可以先通过API把用户注册这个功能实现了: _RE_MD5 = re.compile(r'^[0-9 ...

最新文章

  1. 【C 语言】二级指针内存模型 ( 指针数组 | 二维数组 | 自定义二级指针 | 将 一、二 模型数据拷贝到 三 模型中 并 排序 )
  2. MySQL 每秒57万的写入,带你飞呀!
  3. 安装Tensorflow出现错误提示conda activate tensorflow-cpu Could not find conda environment: tenso
  4. Tomcat源码解析六:Tomcat类加载器机制
  5. C++判断字符是字母或数字
  6. LwIP之网络技术基础
  7. 信息学奥赛C++语言:优惠购物
  8. python 自动化办公 uibot_【插件开发】使用 Python 扩展 UiBot 的功能
  9. Linux的常用指令
  10. Eclipse-Mybatis-generatorConfig.xml
  11. mongodb创建集合命令db.createCollection详解
  12. springboot中的controller注解没有生效
  13. CRC8算法的解读,以及在E2E通信保护的应用
  14. Linux中安装VIM命令
  15. 商品进销差价_商品进销差价如何计算及账务处理怎么做?
  16. 数据统计平台设计与实现
  17. BM33-二叉树的镜像
  18. 小学生学计算机图片大全集,小学生电脑绘画作品欣赏
  19. postgresql索引_PostgreSQL中的索引— 10(Bloom)
  20. 雨阳打字通 v1.8 发布

热门文章

  1. java购物车设计_Java面向对象课程设计——购物车
  2. U盘启动盘制作以及系统安装教程
  3. PC版QQ的“版本太旧, 无法继续使用“ 及升级后的R6030运行时错
  4. 接口中的变量为什么不能是普通变量,只能是static final
  5. 四元数姿态解算详细步骤
  6. 《嵌入式 - 嵌入式大杂烩》PNP与NPN三极管的原理与使用方法
  7. dbca -silent静默安装12c rac数据库
  8. backtrack回溯算法
  9. RK3568关于RK808的定时开关机
  10. elasticsearch查询之图书智能推荐