注册功能:

前端JSP:提供表单注册信息以及访问路径,发送请求到Strus2。

Struts2 : 通过模型驱动接收并封装User对象,Spring依赖注入(无参构造+setter方法)获取业务层UserService,通过集成ActionSupport类获取Excute方法,在这个方法里面操作值栈,实现业务功能,请求跳转。

service  :  通过属性注入(无参构造+setter方法)Dao , 通过工具类对密码加密,调用dao中的save方法实现注册功能。

Dao      :  在Dao实现类继承Hibernate模版:HibernateDaoSupport ,调用模版中的save方法将注册信息持久化到数据库。

登录功能&权限拦截:

jsp:将表单信息提交到Struts2,Struts通过模型驱动的方式接收.

Struts2: UserAction的login方法里面,通过Spring依赖注入获取service,调用业务层的login方法实现登录业务。

service:拿到user对象 , 对其密码加密处理,调用Dao的login方法实现登录业务。

Dao: 调用Hibernate模版的find方法,返回一个List集合,如果List集合不为空,返回list.get(0)

Struts2:如果user为空,添加错误信息,返回登录页面。如果不为空,调用ActionContext.getContext.getSession.put()方法,将其存放到域对象里面

权限拦截:利用Struts2框架实现

创建一个拦截类PrivilegeInterceptor,继承MethodFilterInterceptor , 重写doIntercept方法。ServletActionContext.getRequest().getSession().getAttribute("existUser")获取当前页面的对象。

如果值为null, 存储错误信息,返回登录页面。如果有,则说明已经登录, return invocation.invoke()放行。

在Struts.xml中为每个action都配置一个拦截器,同时将注册、登录设置为excludeMethods,因为不需要拦截这两个。

一 注册功能&登录功能,权限拦截的更多相关文章

  1. 快速体验 Laravel 自带的注册、登录功能

    快速体验 Laravel 自带的注册.登录功能 注册.登录经常是一件很伤脑筋的是,Laravel 提供了解决方案,可以直接使用它.试过之后,感觉真爽! 前提:本地已安装好了 PHP 运行环境.mysq ...

  2. 使用JFinal框架连接数据库,实现注册、登录功能

    使用JFinal框架连接数据库,实现注册.登录功能 1.在Eclipse中新建Dynamic Web project项目 2.导入jfinal-2.2-bin-with-src.jar.c3p0-0. ...

  3. ssm整合实现注册与登录功能

    最简洁易懂的SSM整合源码都在这里了 激情提示: 1.本项目是用IDEA编写的,不管你是习惯何种ide工具,那也只是工具而已,源代码才是本质 2.本项目只拥有注册和登录功能,简易的功能和详细的注释,是 ...

  4. vue路由守卫用于登录验证权限拦截

    vue路由守卫用于登录验证权限拦截 vue路由守卫 - 全局(router.beforeEach((to, from, next) =>来判断登录和路由跳转状态) 主要方法: to:进入到哪个路 ...

  5. java在线聊天项目1.1版 ——开启多个客户端,分别实现注册和登录功能,使用客户端与服务端信息request机制,重构线程,将单独的登录和注册线程合并

    实现效果图: eclipse项目中初步整合之前的各个客户端和服务端的窗口与工具类,效果如下图: 已将注册服务器线程RegServer功能放到LoginServer中,使用客户端与服务端的request ...

  6. java在线聊天项目1.2版 ——开启多个客户端,分别实现数据库注册和登录功能后,成功登陆则登录框消失,好友列表窗出现

    登录框消失语句 dispose(); 好友列表窗出现 使用new FriendsFrame(phone,s); 登陆对话框代码修改如下: package com.swift.frame; import ...

  7. Struts2_day04讲义_使用Struts2完成用户登录的权限拦截器的代码编写

  8. 一步步开发自己的博客 .NET版(3、注册登录功能)

    前言 这次开发的博客主要功能或特点:    第一:可以兼容各终端,特别是手机端.    第二:到时会用到大量html5,炫啊.    第三:导入博客园的精华文章,并做分类.(不要封我)    第四:做 ...

  9. App后台开发运维和架构实践学习总结(4)——APP的注册和登录功能设计

    一.为什么需要注册和登录? 是否需要注册和登录的关键取决于产品形态. 如果用户注册登录对于用户需求.产品功能.商业模式本身带不来任何价值的话,就没必要设计这样的功能.比如一些实用工具类的产品:计算器. ...

随机推荐

  1. 【PAT甲级】1074 Reversing Linked List (25 分)

    题意: 输入链表头结点的地址(五位的字符串)和两个正整数N和K(N<=100000,K<=N),接着输入N行数据,每行包括结点的地址,结点的数据和下一个结点的地址.输出每K个结点局部反转的 ...

  2. Manjaro 安装 ibus-rime 输入法

    Manjaro 安装 ibus-rime 输入法 安装软件包: sudo pacman -S ibus ibus-rime yay -S ibus-qt 编辑/添加配置文件~/.xprofile: e ...

  3. Python:面向对象基础

    基本理论 什么是对象 万物皆对象 对象是具体的事物 拥有属性.行为 把许多零散的东西,封装成为一个整体 Python中一切东西都是对象,Python是一门特别彻底的面向对象编程语言(OOP) 其他编程 ...

  4. 批处理执行Testng

    @echo off set LIB=项目的jar路径 set CLASSPATH=%LIB%\jar\commons-beanutils-.jar;%LIB%\jar\testng.jar;%LIB% ...

  5. Spring Boot Security 使用教程

    虽然,我在实际项目中使用的是 shiro 进行权限管理,但 spring boot security 早已大名鼎鼎,虽然他的入门要相对复杂一点,但是设计视乎更加吸引人. 本章节就是以一篇快速入门 sp ...

  6. webpack搭建vue项目

    链接:https://blog.csdn.net/qq_42181069/article/details/81137180 __dirname : 文件的绝对路径

  7. AireOS WLC配置抓包

    这个Note主要列举在AireOS WLC上如何抓包.它实现的步骤也相对比较简单: 1.开启debug packet, 2.有数据被抓取到时,会以16进制的形式在WLC上输出, 3.我们将输出信息保存 ...

  8. SQL mybatis动态查询小结

    动态返回mysql某张表指定列的名字 <select id="queryColumns" resultType="map" parameterType=& ...

  9. Dart语言学习(十五) Dart函数方法

    Dart函数方法可分为两类: 一.内置方法/函数: print(); 二.自定义方法: 自定义方法的基本格式: 返回类型 方法名称(参数1,参数2,...){ 方法体 return 返回值; } vo ...

  10. TCP通讯代码

    服务端代码: import socket server_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 使用固定端口 server_ ...