当前位置: 首页 > news >正文

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


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的资源都要被拦截。
  • 在拦截器时看看有没有登陆,只要登陆了就放行!

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

相关文章:

  • HOWTO fix Windows Update error 0x80244019
  • 事件的捕获、冒泡、委托
  • 编写第一个HTML5文件
  • Spring学习笔记下载
  • Wordcloud各参数含义
  • Android多工程(project)开发实例
  • eclipse中项目svn转gitLab全过程
  • webRTC开启摄像头
  • 白话 KMP 算法
  • python web开发之flask框架学习(2) 加载模版
  • 异步任务 -- FutureTask
  • (二)学习JVM —— 垃圾回收机制
  • 搭建私有CA和证书认证
  • Linux rpm 命令参数使用详解
  • 智能合约开发环境搭建及Hello World合约
  • SegmentFault for Android 3.0 发布
  • [译]如何构建服务器端web组件,为何要构建?
  • __proto__ 和 prototype的关系
  • co.js - 让异步代码同步化
  • Hibernate最全面试题
  • in typeof instanceof ===这些运算符有什么作用
  • input实现文字超出省略号功能
  • k8s 面向应用开发者的基础命令
  • SSH 免密登录
  • ucore操作系统实验笔记 - 重新理解中断
  • ViewService——一种保证客户端与服务端同步的方法
  • Vue2.0 实现互斥
  • 当SetTimeout遇到了字符串
  • 类orAPI - 收藏集 - 掘金
  • 如何胜任知名企业的商业数据分析师?
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 移动端解决方案学习记录
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • # include “ “ 和 # include < >两者的区别
  • (175)FPGA门控时钟技术
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (zhuan) 一些RL的文献(及笔记)
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (黑马C++)L06 重载与继承
  • (力扣)1314.矩阵区域和
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (轉貼) UML中文FAQ (OO) (UML)
  • .Net 应用中使用dot trace进行性能诊断
  • .NET 中创建支持集合初始化器的类型
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .Net的DataSet直接与SQL2005交互
  • @JoinTable会自动删除关联表的数据
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [2544]最短路 (两种算法)(HDU)
  • [C++] 统计程序耗时
  • [CISCN 2023 初赛]go_session