ssm框架拦截器

1.ssm框架的拦截器是在springmvc-servlet.xml配置文件中进行配置

<!-- 拦截器 -->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**" />
            <bean class="cn.com.***.controller.common.SecurityInterceptor">
                <!-- 不需要session验证的地址 -->
                <property name="excludeUrls">
                    <list>
                        <value>/web/index</value>
                        <value>/web/aboutsPage</value>
                    </list>
                </property>
            </bean>
        </mvc:interceptor>
    </mvc:interceptors>

2.创建一个拦截器实体类,继承HandlerInterceptor,重写它的方法,preHandle是调用Controller具体方法之前拦截,postHandle是调用Controller具体方法之后拦截,afterCompletion是完成页面后调用,所以在preHandle里面写逻辑代码,如登入之后怎么做,没登录这么做,或者根据不同的登录平台进行跳转之类的逻辑

package cn.com.***.controller.common;

import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import cn.com.***.common.pojo.WSessionInfo;
import cn.com.***.common.result.Constant;

/**
 * 权限拦截器
 */
public class SecurityInterceptor implements HandlerInterceptor {

    private List<String> excludeUrls;// 不需要拦截的资源
    private List<String> wapUrls;//wapurl

    public List<String> getWapUrls() {
        return wapUrls;
    }

    public void setWapUrls(List<String> wapUrls) {
        this.wapUrls = wapUrls;
    }

    public List<String> getExcludeUrls() {
        return excludeUrls;
    }

    public void setExcludeUrls(List<String> excludeUrls) {
        this.excludeUrls = excludeUrls;
    }

    /**
     * 完成页面的render后调用
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object object,
            Exception exception) throws Exception {
    }

    /**
     * 在调用controller具体方法后拦截
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object object,
            ModelAndView modelAndView) throws Exception {
    }

    /**
     * 在调用controller具体方法前拦截
     */
    @SuppressWarnings("unchecked")
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception {
         //请求的路径
        String contextPath=request.getContextPath();
        String  url=request.getServletPath().toString();
        StringBuffer realUrl = request.getRequestURL();
        WSessionInfo sessionInfo = (WSessionInfo) request.getSession().getAttribute(Constant.SESSION_INFO);

          if (sessionInfo == null) {
            String isqian = url.substring(0, 4);
            if (isqian.equals("/wap")) {
              response.sendRedirect(contextPath + "/wap/adminLogin");
              return true;
            }if (isqian.equals("/web")) {
              response.sendRedirect(contextPath + "/web/index");
            } else if (realUrl.toString().equals(contextPath +"/web/index")) {
              response.sendRedirect(contextPath + "/wap/adminLogin");
              return true;
            }
          }
        return true ;

    }
}
时间: 2024-10-09 16:49:10

ssm框架拦截器的相关文章

【ssm】拦截器的原理及实现

一.背景: 走过了双11,我们又迎来了黑色星期五,刚过了黑五,双12又将到来.不管剁手的没有剁手的,估计这次都要剁手了!虽然作为程序猿的我,没有钱但是我们长眼睛了,我们关注到的是我们天猫.淘宝.支付宝之间的登录系统的关联,即只要我们在一个系统上登陆过了,在同门户的其他系统上就不用再次登陆了,这个涉及到的是我们的接下来下次要聊到的--SSO(单点登录):而这次我们要聊的,是我们的拦截器,因为只要我们没有登录,随便输入一个合法的地址涉及到订单或者隐私信息的内容时,就会被干到登录页面上去,这就是我们的

Struts2框架拦截器:

Struts 2框架提供了良好的预配置,并准备使用的盒拦截.下面列出了几个重要的拦截器: SN Interceptor & 描述 1 aliasAllows parameters to have different name aliases across requests. 2 checkboxAssists in managing check boxes by adding a parameter value of false for check boxes that are not chec

ssm==》拦截器

1>public class MyIntercepter implements HandlerInterceptor{ 2> <!-- 拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="com.zm.intercepter.MyIntercepter"></bean>

SpringMVC框架拦截器

 SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理. 一.定义Interceptor实现类 SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的.在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方式是要定义的Interceptor类要实现了Spring 的HandlerInterceptor 接口,或者是这个类继承实现了Han

【SSM】拦截器的原理、实现

一.背景: 走过了双11,我们又迎来了黑色星期五,刚过了黑五,双12又将到来.不管剁手的没有剁手的,估计这次都要剁手了!虽然作为程序猿的我,没有钱但是我们长眼睛了,我们关注到的是我们天猫.淘宝.支付宝之间的登录系统的关联,即只要我们在一个系统上登陆过了,在同门户的其他系统上就不用再次登陆了,这个涉及到的是我们的接下来下次要聊到的--SSO(单点登录):而这次我们要聊的,是我们的拦截器,因为只要我们没有登录,随便输入一个合法的地址涉及到订单或者隐私信息的内容时,就会被干到登录页面上去,这就是我们的

spring 18-Spring框架拦截器简介

拦截器是在用户和具体操作的Action之间做一个屏障 保证提交到Action上的数据是真实有效的数据 实现拦截器的操作处理接口:org.springframework.web.servlet.HandlerInterceptor public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception:在某一个控制器的方法执行之前调用 pu

Struts2(五)——核心拦截器

Struts框架一共为我们提供了35个拦截器,其中默认的拦截器有18个,框架访问action的异常处理,配置信息处理,转发重定向选择,上传等等等等,都是这18个拦截器中设置的,起着非比寻常的作用.而这些在struts-default.xml文件中都有设置,看一下吧: [html] view plaincopyprint? <interceptor-stack name="defaultStack"> <interceptor-ref name="except

自制MVC框架的插件与拦截器基础

上篇谈到我自己写的MVC框架,接下来讲讲插件及拦截器! 在处理一些通用的逻辑最好把它封装一个插件或者拦截器,以便日后可以直接拿过来直接使用.在我的框架中可以通过继承以下抽象类来实现插件或者拦截器. 1. AspectInterceptor抽象类 处理动态织入的AOP拦截器,Stephen.View框架中的拦截器抽象类,所有需要动态拦截器必须实现该类,该拦截器原理是通过aspectsharp实现的.该拦截器适用于控制层的拦截,且要使控制器类支持动态拦截必须给控制器加上DynamicAttribut

基于CXF框架的webservice简单的SC两端出入拦截器实现。

开发工具:  ECLIPSE(EE) + CXF(2.5.9) (I)可以现在eclipse中使用JDK来创建webservice基础服务.(没有CXF框架的webservice) (1)新建一个java project. (命名为FirstWebService) 新建一个interface接口.改接口就是相当于webservice中的SEI. (在接口类定义前使用JDK自带webservice注释[email protected] SEI方法则是使用@WebMethod生命方法.) (2)在定