Servlet账户登陆优化

Servlet账户登陆优化

项目基于之前的文章继续升级:

主要升级:

  • 使用Session保持用户登陆状态
  • 使用servlet处理登陆和退出请求
  • 根据Session中的type类型判断用户类型,给定其对应的导航

讲解:

dologin的响应

代码变化:
登陆表单目标地址由dologin.jsp变为dologin,并且dologin只会响应POST请求,GET请求这个地址,直接跳转到login.jsp页面。

form表单

效果:
dologin的GET响应

dologin对POST请求正常处理,原因是重写了servlet。
代码如下:
dologin代码

这里有一个小坑,就是账户验证不成功直接显示的中文会有乱码,字符集问题搞了大半天还是没有解决,打算通过跳转错误页面来解决这个问题,正式部署生产项目不需要直接显示,都是通过对应信息的页面来处理,所以也不是什么大事,希望能早日找到原因。

登陆成功后

POST正确提交,并且验证成功后,会跳转到profile.jsp页面,profile.jsp通过读取Session过来的值判断状态,并且根据用户类型,显示对应的导航。

效果:
超级管理员账户登陆

物业账户登陆

业主账户登陆

实现代码如下:
根据用户类别转换导航

logout退出登陆

通过servlet增加注册session的功能,不管GET方式到这个地址,还是POST方式到这个地址都会进行正常退出账户登陆和清除session。

效果:
退出登陆

终端显示

实现代码:
logout.java

感兴趣的同学可以访问GitHub看到这个项目。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101229.html原文链接:https://javaforall.net

(0)
上一篇 2021年6月19日 下午1:00
下一篇 2021年6月19日 下午2:00


相关推荐

  • eclipsesvn使用教程_eclipse导入svn项目

    eclipsesvn使用教程_eclipse导入svn项目做好以上的准备后打开Eclipse编译器,点击编译器右上角的OpenPerspective打开SVN资源库界面,新建一个资源库选择资源库的位置,这里我们就用刚才搭好的svn://localhost/ts作为工程目录,点击Finish后如果成功则会看到版本服务器中工程的树形结构了(可能需要用户密码验证)。在svn://localhost/ts根目录上点右键,选择“验出”(英

    2026年4月13日
    3
  • JAVA四舍五入保留一位小数

    JAVA四舍五入保留一位小数newBigDecimal(speed).setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue()

    2022年5月11日
    58
  • 行为识别综述

    行为识别综述定义背景难点最新论文最新算法数据集1定义行为识别:行为识别(ActionRecognition)任务是从视频剪辑(2D帧序列)中识别不同的动作,其中动作可以在视频的整个持续时间内执行或不执行。行为识别似乎是图像分类任务到多个帧的扩展,然后聚合来自每帧的预测。尽管图像分类取得了很大的成功,但是视频分类和表示学习依然进展缓慢。2背景2.1方法2.1.1传统方法提取视频区域的局部高维视觉特征,然后组合成固定大小的视频级描述,最后利用分类器(SVM,RF等)进行最终预测2.

    2022年6月21日
    32
  • 距离和相似度度量方法

    距离和相似度度量方法http://blog.csdn.net/pipisorry/article/details/45651315在机器学习和数据挖掘中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。最常见的是数据分析中的相关分析,数据挖掘中的分类和聚类算法,如K最近邻(KNN)和K均值(K-Means)等等。不同距离度量的应用场景根据数据特性的不同,可以采用不同的度量方法。whi…

    2022年6月19日
    37
  • python怎么用科学计数法输出_python 输出数字,如何不以科学计数法输出?

    python怎么用科学计数法输出_python 输出数字,如何不以科学计数法输出?概述定义一个 2113 变量 用于记录次数 然 5261 后这个次数没输出一个 4102 数自己加 1 然后处理这个数 取 1653 整数 并且再次归零 代码详解使用循环输出列表 利用计数器控制输出数量 当输出到第十个 计数器归零 重新开始计数 print 输出增加 end 参数可以控制输出后以什么结尾这里使用 range 方法快速生成 10 90 的数字添加进 list 列表 results list range 10 90

    2026年3月17日
    1
  • springboot连接mysql数据库测试

    springboot连接mysql数据库测试springboot连接mysql数据库pom文件依赖<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>…

    2022年6月25日
    69

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号