移动商城第十三篇【用户拦截器】


tags: 移动商城项目


移动商城第十三篇【用户拦截器】

当用户点击“我的商城”的时候,该用户是需要登陆后才能进入该页面的。

并且,“我的商城”中的数据也是需要用户登陆后才能进入的。因此我们需要配置拦截器。

修改“我的商城”超链接,和提供对应的controller方法



    <p class="l"><a href="#" title="商城首页">商城首页</a><samp>|</samp><a href="${path}/user/login/index.do" title="我的商城">我的商城</a></p>
复制代码

提供对应的controller方法




    /**
     * 跳转到我的商城页面
     * @return
     */
    @RequestMapping("/login/toPersonal.do")
    public String toPersonal() {

        return "person/index";
    }
复制代码

上面的那些超链接都是需要用户登陆了才能访问的。

编写拦截器



package com.rl.ecps.interceptor;

import com.rl.ecps.model.TsPtlUser;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

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

/**
 * Created by ozc on 2017/10/10.
 */
public class LoginInteceptor implements HandlerInterceptor {


    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        //得到session
        HttpSession session = request.getSession();
        TsPtlUser user = (TsPtlUser) session.getAttribute("user");

        /**
         * 如果没有登陆,就跳转到登陆页面,登陆了就放行。
         */
        if (user == null) {
            response.sendRedirect(request.getContextPath() + "/user/toLogin.do");
            return false;
        } else {
            return true;
        }

    }

    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

    }

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }
}

复制代码

注册拦截器



	<!--注册拦截器,只要是/login下路径的,我都要拦截!-->
	<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/user/login/**"/>
			<bean class="com.rl.ecps.interceptor.LoginInterceptor"></bean>
		</mvc:interceptor>
	</mvc:interceptors>

复制代码

总结

  • 定义一个拦截器对特定的资源进行拦截。只要是/login的资源都要被拦截。
  • 在拦截器时看看有没有登陆,只要登陆了就放行!

如果您觉得这篇文章帮助到了您,可以给作者一点鼓励

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值