springmvc 拦截器

package com.beyondsoft.base.filter;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import com.beyondsoft.base.context.SessionNameContext;
import com.beyondsoft.base.model.admin.AdminResource;

public class ManagerInterceptor extends HandlerInterceptorAdapter {

    public boolean preHandle(HttpServletRequest request,
            HttpServletResponse response,Object handler) throws Exception {
        String url = request.getRequestURI();

        String validStrUrl = url.substring(12, url.length());
        System.out.println("--validStrUrl---" + validStrUrl);
        HttpSession session = request.getSession();

        if (null == session.getAttribute(SessionNameContext.USERINFO)) {
            if (validStrUrl.equals("admin/manager/initlogin")) {
                return true;
            } else if (validStrUrl.equals("admin/manager/jqueryCheckCode")) {
                return true;
            } else if (validStrUrl.equals("admin/manager/login")) {
                return true;
             }
            else {
                request.getRequestDispatcher(
                        "/error.jsp").forward(request,
                        response);
                return false;
            }
        } else {
             if (validStrUrl.equals("admin/manager/exitlogin")) {
                return true;
            } else {
                @SuppressWarnings("unchecked")
                ArrayList<AdminResource> resourceList = (ArrayList<AdminResource>) session
                        .getAttribute(SessionNameContext.RESOURCELIST);
                int i = 0;
                for (AdminResource resource : resourceList) {
                    if (resource.getUrl().equals(validStrUrl)) {
                        i = 1;
                        break;
                    }
                }
                if (i == 1) {
                    return true;
                } else {
                    request.getRequestDispatcher(
                            "/error.jsp").forward(request,
                            response);
                    return false;
                }}} }}

            //servlet_mvc的配置
<?xml version="1.0" encoding="UTF-8"?>
<p:beans
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:p="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc spring-mvc-3.1.xsd
                        http://www.springframework.org/schema/beans spring-beans-3.1.xsd
                        http://www.springframework.org/schema/context spring-context-3.1.xsd
                        http://www.springframework.org/schema/tx spring-tx-3.1.xsd ">

    <!-- 启动Spring注解功能 -->
    <mvc:annotation-driven />
    <mvc:default-servlet-handler />
    <tx:annotation-driven transaction-manager="transactionManager" />
   
    <!-- 自动扫描bean,把作了注解的类转换为bean -->
    <context:component-scan base-package="com.beyondsoft.*">
        <context:exclude-filter type="regex" expression="com.beyondsoft.base.dao.*" />
    </context:component-scan>
   
    <!-- 映射视图 -->
    <p:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <p:property name="prefix" value="/WEB-INF/page/" />
        <p:property name="suffix" value=".jsp" />
    </p:bean>
    <!-- 拦截器 -->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/admin/**" />
            <p:bean class="com.beyondsoft.base.filter.ManagerInterceptor" />
        </mvc:interceptor>
    </mvc:interceptors>
    
</p:beans>
 

你可能感兴趣的:(拦截器,Class,import,package,public)