SSH—Struts2拦截器的应用(防止未登录用户进行操作)
前言
类似于京东、淘宝这些平台,如果单纯的去浏览页面上的一些商品显示,一点问题都没有,但是当你点击商品的订单详情或者想查看一下自己的购物车,那么就会出现通过登录进去的界面,这个就是今天要说的这个拦截器的功能。
内容
需求
通过拦截器防止用户随意对界面或者个人账户进行随意的增删改查。
解决方式
1、定义一个拦截器类(类里面通过判断是否有用户存在session里面,如果没有就拦截要访问的页面)
2、在struts2配置文件中配置拦截器
3、
在要拦截的action中使用拦截器接口
原理图
Demo部分
- java类
/*
* 说明:后台权限校验的拦截器(对没有登录的用户,是不可访问的)
* 作者:周丽同
*/
public class PrivilegeInterceptor extends MethodFilterInterceptor{ @Override
//执行拦截的方法
protected String doIntercept(ActionInvocation actionInvocation) throws Exception {
// TODO Auto-generated method stub
//判断session中是否保存了后台用户的信息
AdminUser existAdminUser = (AdminUser) ServletActionContext.getRequest().getSession().getAttribute("existAdminUser");
if(existAdminUser == null){
//没有登录就进行访问了
ActionSupport actionSupport = (ActionSupport) actionInvocation.getAction();
actionSupport.addActionError("亲,您还没有登录,没有权限访问!");
return "loginFail";
}else{
//已经登录过了
return actionInvocation.invoke();
}
}
}
- Struts.xml配置
<!-- 定义拦截器 -->
<interceptors>
<interceptor name="PrivilegeInterceptor" class="cn.itcasst.shop.interceptor.PrivilegeInterceptor"></interceptor>
</interceptors>
<!-- 配置后台一级分类管理的action -->
<action name="adminCategory_*" class="adminCategoryAction" method="{1}">
<result name="findAll">/admin/category/list.jsp</result>
<result name="saveSuccess" type="redirectAction">adminCategory_findAll.action</result>
<result name="deleteSuccess" type="redirectAction">adminCategory_findAll.action</result>
<result name="editSuccess">/admin/category/edit.jsp</result>
<result name="updateSuccess" type="redirectAction">adminCategory_findAll.action</result>
<!-- 采用拦截器拦截部分 -->
<interceptor-ref name="PrivilegeInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
小结
以上是本菜鸟对struts拦截器的一些片面的理解,希望在路过大神可以对本菜鸟指点一二。
感谢您的宝贵时间······
SSH—Struts2拦截器的应用(防止未登录用户进行操作)的更多相关文章
- struts2拦截器实现session超时返回登录页面(iframe下跳转到其父页面)
需求:session超时时,返回登录页面,由于页面嵌套在iframe下,因此要跳转到登录页面的父页面,但是首页,登录页面等不需要进行跳转 实现: java文件:SessionIterceptor.ja ...
- 防止未登录用户操作—struts2拦截器简单实现(转)
原文地址:http://blog.csdn.net/zhutulang/article/details/38351629 尊重原创,请访问原地址 一般,我们的web应用都是只有在用户登录之后才允许操作 ...
- struts 用拦截器进行用户权限隔离,未登录用户跳到登录界面 *** 最爱那水货
一般,我们的web应用都是只有在用户登录之后才允许操作的,也就是说我们不允许非登录认证的用户直接访问某些页面或功能菜单项.对于个别页面来说,可能不需要进行拦截,此时,如果项目采用struts view ...
- Struts2 拦截器—拦截action
对于拦截器的基本使用这里我就懒得打字了,我这里就讲下如何用 Struts2 拦截器 拦截action.这是我个人的想法,如果有什么不对的,或者你们有什么更好的方法.请多多留言! 拦截器的默认拦截的方法 ...
- 从struts2拦截器到自定义拦截器
拦截器可谓struts2的核心了,最基本的bean的注入就是通过默认的拦截器实现的,一般在struts2.xml的配置中,package内直接或间接继承了struts-default.xml,这样st ...
- Struts2拦截器登录验证
Struts2拦截器 Struts2拦截器的概念和Spring Mvc拦截器一样. Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截 ...
- struts2拦截器interceptor的配置方法及使用
转: struts2拦截器interceptor的配置方法及使用 (2015-11-09 10:22:28) 转载▼ 标签: it 365 分类: Struts2 NormalText Code ...
- Struts2拦截器详解
一.Struts2拦截器原理: Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的 拦截器对象,然后串成一个列 ...
- Struts2拦截器的配置
struts2拦截器interceptor的三种配置方法方法1. 普通配置法 <struts> <package name="struts2" extends=& ...
随机推荐
- Hot resize Multipath Disk – Linux
This post is for the users of the great dm-multipath system in Linux, who encounter a major availabi ...
- 【OpenCV】图像代数运算:平均值去噪,减去背景
代数运算,就是对两幅图像的点之间进行加.减.乘.除的运算.四种运算相应的公式为: 代数运算中比较常用的是图像相加和相减.图像相加常用来求平均值去除addtive噪声或者实现二次曝光(double-ex ...
- react-router4.x 组件和api介绍
react-router实用4.2.0 react-router非常复杂整体,比vue-router强大很多,好好研究,对你自身能力提高很有帮助 安装 cnpm install react-route ...
- 2016.1.1 VS中宏的使用技巧点滴
Dim selection As TextSelection = DTE.ActiveDocument.Selection'定义 TextSelection 对象 selection.StartOfL ...
- CentOS 配置XWIN/VNC
Xwin服务器 CentOS上运维Xwin,在这之前需要理清一些关系: 一, X window 包括xserver 和x client.linux下的xserver 主要有xorg.xfree86, ...
- HotSpotVM创建过程(JNI_CreateJavaVM)详解
来自:<Java Performance>第3章 JVM Overview The HotSpot VM's implementation of the JNI_CreateJavaVM ...
- 安卓如何将TXT文件写到特定路径
其实就一个方法,就不贴所有代码了. /** * 写入文件方法 * @param content */ public static void write(String content) { try { ...
- XMPP协议相关基础概念(Strophe学习笔记)
相关资料: XMPP官网http://xmpp.org/xmpp-software/libraries/ nginx的转发配置http://mineral.iteye.com/blog/448260 ...
- (内存地址hashcode与对象内容hashcode)分析== 和 equal()方法
==.equals()和hashCode()字符串测试 1.hashCode() 是根据 内容 来产生hash值的 2.System.identityHashCode() 是根据 内存地址 来产生ha ...
- 算法Sedgewick第四版-第1章基础-1.4 Analysis of Algorithms-005计测试算法
1. package algorithms.analysis14; import algorithms.util.StdOut; import algorithms.util.StdRandom; / ...