Struts2自定义拦截器
1. 需求
自定义拦截器实现,用户登录的访问控制。
2. 定义拦截器类
public class LoginInterceptor extends AbstractInterceptor
{ @Override
public String intercept(ActionInvocation ai) throws Exception
{
// TODO Auto-generated method stub
System.out.println("--------------intercept");
String methodName = ai.getProxy().getMethod(); //获得被拦截的方法名字
System.out.println("=============" + methodName);
if (methodName.equals("userLogin"))
{
return ai.invoke();//放行:继续向下执行
}
//获得登陆成功之后,会话对象封装的数据
Object obj = ai.getInvocationContext().getSession().get("user");
if (obj == null)
{
return Action.LOGIN; //跳转到登陆页面
} else
{
return ai.invoke();//放行:继续向下执行
}
}
}
3. 配置拦截器
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="user" namespace="/" extends="struts-default">
<interceptors>
<!-- 声明自定义拦截器 -->
<interceptor name="loginInterceptor" class="com.bjsxt.util.LoginInterceptor"></interceptor>[A2]
<!-- 自定义拦截器栈 -->
<interceptor-stack name="mystack">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="loginInterceptor"></interceptor-ref>
</interceptor-stack>
</interceptors> <!-- 全局的跳转结果 -->
<global-results>
<result name="login">WEB-INF/jsp/login.jsp</result>
</global-results> <action name="userAction_*" class="com.bjsxt.action.UserAction"
method="{1}">
<!-- 引用自定义拦截器栈 -->
<interceptor-ref name="mystack"></interceptor-ref>
<result name="input">/index.jsp</result>
<result>/index.jsp</result>
<result name="show">WEB-INF/jsp/show.jsp</result>
</action>
<action name="defAction">
<result>WEB-INF/jsp/show.jsp</result>
<!-- 引用自定义拦截器栈 -->
<interceptor-ref name="mystack"></interceptor-ref>
</action>
</package>
</struts>
Struts2自定义拦截器的更多相关文章
- Struts2自定义拦截器Interceptor以及拦截器登录实例
1.在Struts2自定义拦截器有三种方式: -->实现Interceptor接口 public class QLInterceptorAction implements Interceptor ...
- struts2自定义拦截器 设置session并跳转
实例功能:当用户登陆后,session超时后则返回到登陆页面重新登陆. 为了更好的实现此功能我们先将session失效时间设置的小点,这里我们设置成1分钟 修改web.xml view plainco ...
- 12.Struts2自定义拦截器
12.自定义拦截器 拦截器是Struts2的一个重要特性.因为Struts2的大多数核心功能都是通过拦截器实现的. 拦截器之所以称之为“拦截器”,是因为它可以拦截Action方法的执行, ...
- 【Java EE 学习 35 下】【struts2】【struts2文件上传】【struts2自定义拦截器】【struts2手动验证】
一.struts2文件上传 1.上传文件的时候要求必须使得表单的enctype属性设置为multipart/form-data,把它的method属性设置为post 2.上传单个文件的时候需要在Act ...
- Struts2 自定义拦截器
自定义拦截器(权限管理),包含了对ajax和表单请求的拦截 package com.interceptor; import java.io.IOException; import java.io.Pr ...
- struts2自定义拦截器与cookie整合实现用户免重复登入
目的:测试开发时,为了减少用户登入这个繁琐的登入验证,就用struts2做了个简单的struts2拦截器,涉及到了与cookie整合,具体的看代码 结构(两部份)=struts2.xml+自定义拦截器 ...
- 5、Struts2自定义拦截器
一.拦截器相关知识 1.Struts2框架剖析 Holly版本生活案例: 影视公司(拍电影) ActionMapper 传媒公司(包装明星) ActionMapping 明星 ...
- Struts2自定义拦截器处理全局异常
今天在整理之前的项目的时候想着有的action层没有做异常处理,于是想着自定义拦截器处理一下未拦截的异常. 代码: package cn.xm.exam.action.safeHat; import ...
- Struts2自定义拦截器——完整实例代码
比如一个网上论坛过滤系统,将网友发表的不文明.不和谐的语言,通过拦截器对这些文字进行自动替代. 该项目包含: 1.自定义拦截器(MyInterceptor.java) 2.发表评论的页面(news.j ...
随机推荐
- 【PHP面向对象(OOP)编程入门教程】1.什么是面向对象?
面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成 ...
- FineUI第十三天---`列布局
这是经典的列布局: <x:Panel runat= <Items> ...
- Try-Catch机制使用场景分析
(一)在什么场景下加Try-Catch机制 1)以业务逻辑功能为单位,在最上层加Try-Catch机制.为什么要这样做呢?这主要是增加程序的健壮性,防止因抛出异常过多,导致程序崩溃. try { ...
- angularjs表达式中的HTML内容,如何不转义,直接表现为html元素
在模板中直接: 在ionic中直接使用: <p class="contentwen" ng-bind-html="detial.content">& ...
- Android 中的 Intent 简介
Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据. ------------------------------- ...
- Python面试题库
1.Python输出中文怎么解决 方法一:用encode和decode如:import os.pathimport xlrd,sys Filename=’/home/tom/Desktop/1234. ...
- 【函数】plsql 函数的默认值
1.创建函数 CREATE OR REPLACE FUNCTION fk_url_format(url VARCHAR2,charset VARCHAR2 :='UTF-8')RETURN VARCH ...
- SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
在用php返回json数据的时候如果出现这种错误,先检查一下php中是否有使用var_dump()函数 这个函数会在页面输出测试变量的结构,浏览器会将这个当做json数据,所以就报错了....
- 使用 PHP 7 给 Web 应用加速
PHP 20周年了!?? PHP 首发通告,1995年6月8日 发布于 COMP.INFOSYSTEMS.WWW.AUTHORING.CGI 主题:正式宣布:个人主页工具(Personal Home ...
- 基础知识《七》---Java多线程详解