spring MVC简单拦截器

><!-- 声明改变request的拦截器 -->
<mvc:interceptors>
    <mvc:interceptor>
        <!-- 声明request的拦截器拦截的url --> 
        <mvc:mapping path="/origin/**/*"/>
        <!-- 声明改变request的拦截器不拦截的url --> 
       <mvc:exclude-mapping path="/**/static/*"/>
       <mvc:exclude-mapping path="/**/*.css"/>
       <mvc:exclude-mapping path="/**/*.js"/> 
        <bean class="com.qxwljs.jxp.sdk.interceptor.ApiGrantValidateInterceptorOrigin"></bean>
     </mvc:interceptor> 
</mvc:interceptors>

origin门户登陆权限验证拦截器java类

public class ApiGrantValidateInterceptorOrigin extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
    throws Exception {
    try {
        String loginname = (String) request.getSession().getAttribute("LOGIN_SESSION");//获取session中当前登陆者账号
        if(StringUtils.isNotBlank(loginname)){
            return true;
        }else if(request.getRequestURI().contains("/origin/login")){//获取request中的url
            return true;
        }else if(request.getRequestURI().contains("/origin/ajax")){//获取request中的url
            return true;
        }else{
        //如果未登录通过request转发并带着request,response
            request.getRequestDispatcher("/origin/login").forward(request, response);
            return true;
        }
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}   

}

>

forward(转发)和redirect(重定向)的区别

  1. 从地址栏显示来说

    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
    redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
    
  2. 从数据共享来说

    forward:转发页面和转发到的页面可以共享request里面的数据.
    redirect:不能共享数据.
    
  3. 从运用地方来说

    forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
    redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
    
  4. 从效率来说

    forward:高.
    redirect:低
    

在转发之前,在request中设置值
request.setAttribute(“root”, “123456”);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值