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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python for跳过下一个循环_python循环三次跳出循环

    python for跳过下一个循环_python循环三次跳出循环python中如何退出for循环Python中的for循环与其它语言不大一样,但跳出循环还是与大多数语言一样,可以使用关键字continue跳出本次循环或者break跳出整个for循环。break语句:Python中的break语句,就像在C语言中,打破了最小封闭for或while循环。break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。br…

    2022年8月12日
    7
  • csv格式怎么转成excel_比较好一点的Excel转PDF

    csv格式怎么转成excel_比较好一点的Excel转PDF需求说明假如有一个csv文件,打开之后不是想要的编码格式,或者一些数字全都是科学计数法计数。下面你按照下面文档一步一步操作就可以将CSV格式转化成EXCEL格式。1.新建一个excel空文档,如

    2022年8月1日
    7
  • poj1050最大子矩阵和

    poj1050最大子矩阵和

    2022年2月6日
    35
  • Hans Berger脑电图之父的人生摘要「建议收藏」

    Hans Berger脑电图之父的人生摘要「建议收藏」摘要:在1938年当脑电图被学术界接受之时,第二次世界大战要开始了,因为英美法都是敌对国,Berger访美计划搁浅。同时大概因为只是英美法学者对脑电图重视,德国本土学者根本不相信,德国当时的纳粹政权禁止研究脑电图。【转载】HansBerger(1873-1941)(上图)是德国精神病学家,精神生理学家,他对神经科学的贡献是发明了和命名了脑电图-Electroencephalography,EEG,德语是Elektrenkephalogramm。此外,Berger发现了“阿尔法波-AlphaWave”,

    2022年8月11日
    5
  • CriticalSection_protection initialization

    CriticalSection_protection initialization如果EnterCriticalSection将一个线程置于等待状态,那么该线程在很长时间内就不能再次被调度。实际上,在编写得不好的应用程序中,该线程永远不会再次被赋予CPU时间。TryEnterCriticalSection函数决不允许调用线程进入等待状态。它的返回值能够指明调用线程是否能够获得对资源的访问权。TryEnterCriticalSection发现该资源已经被另一个线程访问,它就返回F

    2022年9月20日
    1
  • CAS Service 部署流程(包含hppts的配置)

    CAS Service 部署流程(包含hppts的配置)一,通过maven命令打成war包然后部署到tomcat这步直接跳过了很简单百度搜索一样就可以二,这个时候访问http://localhost/cas/login(注意不是https)cas默认账户密码:casuser/Mellon如何改成https形式的访问 自签名服务端需要导入证书 PS: passport.sso.c…

    2022年10月2日
    0

发表回复

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

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