【SSH测试整合Demo】企业人事管理系统(三)

简介: 前面我们已经学习了怎么整合SSH框架了。是时候拿一个小项目来练练手了….我们现在要设计一个企业人事管理系统…

权限操作

  • 后台系统先登陆,才能操作员工: 添加/修改/删除
  • 没有登陆,只能查看列表,不能操作!

我们写一个拦截器,判断是否调用登陆或者列表展示的方法,如果不是就查看该用户有没有登陆。没有登陆就跳转到登陆界面

package zhongfucheng.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
/**
 * Created by ozc on 2017/5/17.
 */
public class PrivilegeInterceptor extends AbstractInterceptor {
    @Override
    public String intercept(ActionInvocation actionInvocation) throws Exception {
        //得到ActionContext
        ActionContext context = actionInvocation.getInvocationContext();
        //得到正在调用Action的方法名
        String methodName = actionInvocation.getProxy().getMethod();
        //获取session中管理员的对象
        Object o = context.getSession().get("admin");
        //判断正在调用什么方法
        if ("login".equals(methodName) || "list".equals(methodName)) {
            //调用了这两个方法,不用权限,直接调用把
            return actionInvocation.invoke();
        } else {
            //如果不是,那么检查
            // 没有登陆,就跳转到登陆界面呗
            if (o == null) {
                return "login";
            } else {
                // 有登陆,那么就可以执行呗
                return actionInvocation.invoke();
            }
        }
    }
}
  • 在Struts2配置文件中配置拦截器
<!-- 拦截器配置 -->
        <interceptors>
            <interceptor name="userInterceptor" class="cn.itcast.action.UserInterceptor"></interceptor>
            <interceptor-stack name="myStack">
                <interceptor-ref name="defaultStack"></interceptor-ref>
                <interceptor-ref name="userInterceptor"></interceptor-ref>
            </interceptor-stack>
        </interceptors>
        <!-- 执行指定的拦截器 -->
        <default-interceptor-ref name="myStack"></default-interceptor-ref>
  • 拦截器返回的login需要配置全局视图
<global-results>
            <!--回到展示列表页面-->
            <result name="listPage" type="redirectAction">user_list</result>
            <!--拦截器返回login-->
            <result name="login" type="redirect">/login.jsp</result>
        </global-results>
  • 效果:

微信图片_20220411193132.gif

总结

本篇主要使用SSH框架来开发一个比较简易的CRUD项目。让我们熟悉SSH框架开发的流程。

  • 设计实体
  • 编写每个实体的映射文件
  • 把映射文件加载到Hibernate中管理起来
  • 使用BaseDao来管理全部的Dao,使得每个Dao都有Curd的方法。这样就不用我们在每个Dao都写上Crud了
  • 如果普通的CURD方法满足不了我们,就可以在特定的Dao中写上自己想要的功能
  • Service层调用Dao层的方法
  • Controller调用Service层的方法实现功能,如果页面上需要后天的数据的话,那么我们先调用service获取得到数据,然后通过域对象(值栈对象)把数据存储起来,在页面上做展示。
目录
相关文章
|
3月前
|
安全 网络安全 数据安全/隐私保护
解决SSH测试连接GitHub时出现“connection closed by remote host”的问题。
然后使用 `ssh -T git@ssh.github.com`来测试连接。
399 0
|
6月前
|
监控 安全 测试技术
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
180 14
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
|
传感器 数据采集 监控
LabVIEW电池管理系统测试平台
LabVIEW电池管理系统测试平台
228 4
|
JavaScript Java 测试技术
大学生体质测试|基于Springboot+vue的大学生体质测试管理系统设计与实现(源码+数据库+文档)
大学生体质测试|基于Springboot+vue的大学生体质测试管理系统设计与实现(源码+数据库+文档)
306 0
|
安全 Java 数据库
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
这篇文章是关于Apache Shiro权限管理框架的详细学习指南,涵盖了Shiro的基本概念、认证与授权流程,并通过Spring Boot测试模块演示了Shiro在单应用环境下的使用,包括与IniRealm、JdbcRealm的集成以及自定义Realm的实现。
322 3
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
|
12月前
|
安全 测试技术 网络安全
企业为什么要做渗透测试
随着网络经济的蓬勃发展,越来越多的企业将交易平台迁移至互联网,随之而来的安全挑战也日益凸显。尽管企业在安全方面投入巨大,但往往遇到“安全性玻璃天花板”,即安全水平达到一定瓶颈后,再增加投入也无法显著提升安全效能。渗透测试作为一种有效的安全评估手段,正逐渐受到重视。它不仅能满足政策合规要求,还能帮助企业发现并修复潜在的安全漏洞,降低业务风险。渗透测试通过模拟真实攻击,全面评估系统的安全状况,为企业提供更精准的安全防护方案。
170 0
|
安全 测试技术 网络安全
企业为什么要做渗透测试
【10月更文挑战第29天】随着网络经济的兴起,互联网交易系统安全成为企业关注的重点。然而,企业在安全上的投入往往达到瓶颈,形成“安全性玻璃天花板”。渗透测试作为一种有效的安全评估方法,能帮助企业突破这一瓶颈。它不仅满足政策合规性要求,还能提高客户操作安全性,减少业务风险。渗透测试通过模拟黑客攻击,发现并修复系统潜在的安全隐患,使企业从被动防御转为主动应对。
100 0
|
测试技术 数据安全/隐私保护 索引
基于SpringBoot+Vue大学生体质测试管理系统【源码+论文+演示视频+包运行成功】(2)
基于SpringBoot+Vue大学生体质测试管理系统【源码+论文+演示视频+包运行成功】
153 0
|
Java 关系型数据库 MySQL
基于SpringBoot+Vue大学生体质测试管理系统【源码+论文+演示视频+包运行成功】(1)
基于SpringBoot+Vue大学生体质测试管理系统【源码+论文+演示视频+包运行成功】
295 0
|
JavaScript Java 测试技术
基于ssm+vue.js的在线测试管理系统附带文章和源代码设计说明文档ppt
基于ssm+vue.js的在线测试管理系统附带文章和源代码设计说明文档ppt
145 0