JAVA_OA(六):SpringMVC拦截器

说明

到这篇文章前,我们们所有的网页都是在可以直接在浏览器中输入XXX.do来直接访问

,甚至在得到jsp页面后,可以直接通过请求看到数据库的表格!

而这肯定是开发所不允许的.故而,是时候让拦截器登场了,而他也正是一个基本的登录实例所必须的组件.

a 创建拦截器组件,实现HandlerInterceptor接口


public class LoginInteceptor implements HandlerInterceptor{

//  其中要实现三个方法
//afterCompletion,postHandle,preHandle

//preHandle在处理器执行前被调用这个方法,如果返回的结果为true ,那么继续执行后续的操作,如果为false,后面的程序将不再执行
    /**
     * 拦截器 拦截请求完事调用
     */
    public void afterCompletion(HttpServletRequest arg0,
            HttpServletResponse arg1, Object arg2, Exception arg3)
            throws Exception {
        System.out.println("afterCompletion");
    }

    /**
     * 拦截器 拦截请求之后调用
    */

    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
            Object arg2, ModelAndView arg3) throws Exception {
        System.out.println("postHandle");
    }

    /**
     * 拦截器 拦截请求之前调用
     */

    public boolean preHandle(HttpServletRequest req, HttpServletResponse res,

        System.out.println("preHandle");

            //以下是具体代码
            HttpSession session=req.getSession();
            String str=(String) session.getAttribute("login");
            if(null==str||"".equals(str)){

                // getContextPath而非直接写路径->防止硬编码->避免项目改名时,修改大量代码.

                res.sendRedirect(req.getContextPath()+"/login.jsp");
                return false;
            }
            if(str.equals("true")){
                return true;
            }else{
                res.sendRedirect(req.getContextPath()+"/login.jsp");
                return false;

            }
            //以上是具体代码

        }

        /**
         * 如果返回的是 false 此请求 就此拦截
         * 如果返回的是true  继续走你下面的程序
         */

    }

...

}

b 注册拦截器组件


<!-- 配置我们的拦截器   -->
   <mvc:interceptors>
      <mvc:interceptor>
        <mvc:mapping path="/**"/>
        <!--对所有访问进行拦截-->
        <!-- 对/user/login.do进行拦截处理-->
        <mvc:exclude-mapping path="/user/login.do"/>
        <bean id="loginInterceptor" class="com.throne.util.UserInteceptor"></bean>
      </mvc:interceptor>
   </mvc:interceptors> 
**smart-web2** 是一套相对简单的OA系统;包含了流程设计器,表单设计器,权限管理,简单报表管理等功能; 系统后端基于SpringMVC+Spring+Hibernate框架,前端页面采用JQuery+Bootstrap等主流技术; 流程引擎基于Snaker工作流;表单设计器基于雷劈网WEB表单设计器。 系统主要功能有: >1.系统管理 >>系统管理包含有:基础信息管理、系统权限管理、版本管理、子系统管理。 > >2.流程管理 >>流程管理包含有:流程设计器、流程实例管理、流程页面模版管理等功能。 > >3.表单管理 >>表单管理包含有:表单设计器、表管理、表单帮助信息管理等。 > >4.我的办公 >>我的待办、我的已办; > >5.简单报表管理 >>简单报表管理包含:简单报表的设计、报表管理等。 使用说明 ======= ------- ---数据库MySQL5.6以上 ---下载后把data目录下的smart-web2.zip解压;然后解压出来的脚本文件(“smart-web2.sql”)导入到mysql数据库中;注:建库时,字符集编码为:utf8(utf8_general_ci) ---修改配置文件“jdbc.properties”,改成对应数据库的用户名和密码 ---“sysconfig.properties”系统配置文件;需要修改“root.dir”属性,设置为系统上传文件时用来存放的根目录 ----系统管理员用户名为:admin;密码为:123456 ----linux类系统需要修改mysql的配置文件,改为数据库表名不区分大小(lower_case_table_names=1) 环境要求 ------------ 1.jdk要求1.7及以上; 2.tomcat6或tomcat7; 3.eclipse版本4.4以上; 4.浏览器要求:IE8及以上(最理想的是IE10及以上),火狐,chrome等。
**smart-web2** 是一套的OA系统;包含了流程设计器,表单设计器,权限管理,简单报表管理等功能; 系统后端基于SpringMVC+Spring+Hibernate框架,前端页面采用JQuery+Bootstrap等主流技术; 流程引擎基于Snaker工作流;表单设计器基于雷劈网WEB表单设计器。 系统主要功能有: >1.系统管理 >>系统管理包含有:基础信息管理、系统权限管理、版本管理、子系统管理。 > >2.流程管理 >>流程管理包含有:流程设计器、流程实例管理、流程页面模版管理等功能。 > >3.表单管理 >>表单管理包含有:表单设计器、表管理、表单帮助信息管理等。 > >4.我的办公 >>我的待办、我的已办; > >5.简单报表管理 >>简单报表管理包含:简单报表的设计、报表管理等。 使用说明 ======= ------- ---数据库MySQL5.6以上 <br/> ---下载后把data目录下的smart-web2.zip解压;然后解压出来的脚本文件(“smart-web2.sql”)导入到mysql数据库中;注:建库时,字符集编码为:utf8(utf8_general_ci)<br/> ---修改配置文件“jdbc.properties”,改成对应数据库的用户名和密码 <br/> ---“sysconfig.properties”系统配置文件;需要修改“root.dir”属性,设置为系统上传文件时用来存放的根目录 <br/> ----系统管理员用户名为:admin;密码为:123456 <br/> ----linux类系统需要修改mysql的配置文件,改为数据库表名不区分大小(lower_case_table_names=1) <br /> 环境要求 ------------ 1.jdk要求1.7及以上;<br /> 2.tomcat6或tomcat7; <br /> 3.eclipse版本4.4以上;<br /> 4.浏览器要求:IE8及以上(最理想的是IE10及以上),火狐,chrome等。<br />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Font Tian

写的很好,请给我钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值