本例实现登陆时的验证拦截,采用SpringMVC拦截器来实现

核心代码

首先是index.jsp,显示链接

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

首页

登陆

用户中心

触发异常

controller类

package com.jikexueyuan.demo.springmvc.lesson4.controller;

import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.RequestParam;

import com.jikexueyuan.demo.springmvc.lesson4.constant.Global;

import com.jikexueyuan.demo.springmvc.lesson4.exception.MyException;

import com.jikexueyuan.demo.springmvc.lesson4.model.User;

import com.jikexueyuan.demo.springmvc.lesson4.service.LoginService;

/**

* 这个例子讲解了如何定义MVC三层注解,使用@Resource进行注入,以及使用@RequestMapping、@RequestParam 、@SessionAttributes

*/

@Controller

public class LoginController extends BaseController {

@Resource

LoginService service;

@Resource

HttpServletRequest request;

@RequestMapping("/exception")

public void exception() throws MyException{

throw new MyException("测试springmvc中的异常捕获");

}

@RequestMapping("/loginpage")

public String toLoginPage(){

return "/WEB-INF/jsp/login.jsp";

}

@RequestMapping("/user/home")

public String toUserHome(){

return "/WEB-INF/jsp/userhome.jsp";

}

@RequestMapping("/logout")

public String logout(){

request.getSession().removeAttribute(Global.USER_SESSION_KEY);

return "redirect:/";

}

@RequestMapping(value = "/doLogin", method = RequestMethod.POST)

public String doLogin(@RequestParam String userName, @RequestParam String password){

try {

User user = service.doLogin(userName, password);

request.getSession().setAttribute(Global.USER_SESSION_KEY, user);

return "redirect:/user/home.html";

} catch (Exception e) {

return "/WEB-INF/jsp/login.jsp";

}

}

}

当点击用户中心时,触发拦截,相关配置如下

在spring-mvc.xml中加上拦截配置,拦截所有URL中包含/user/的请求,当然请求用户中心时就会触发这个拦截器了

然后是bean指向的具体的interceptor类,如果session保存的用户信息为null,则跳到login页面,postHandle和afterCompletion方法都不执行,反之都执行

package com.jikexueyuan.demo.springmvc.lesson4.interceptor;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;

import org.springframework.web.servlet.ModelAndView;

import com.jikexueyuan.demo.springmvc.lesson4.constant.Global;

public class LoginInterceptor implements HandlerInterceptor {

@Override

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

Object user = request.getSession().getAttribute(Global.USER_SESSION_KEY);

if (user == null) {

System.out.println("尚未登录,调到登录页面");

response.sendRedirect("/loginpage.html");

return false;

}

return true;

}

@Override

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

System.out.println("postHandle");

}

@Override

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

System.out.println("afterCompletion");

}

}

至此,简单的springmvc拦截器就完成了。

Java web登录拦截器_SpringMVC拦截器(实现登录验证拦截器)相关推荐

  1. java web logout_java – spring-security login?logout重定向到登录

    我使用 spring-security 3.2.0.RC2与 java配置和两个HttpSecurity配置.一个用于REST API,一个用于UI. 当我发布到/ logout它重定向到/ logi ...

  2. 网络系统(Java web)开发与设计项目实战——实现用户登录与注册

    项目概况 该用户登录功能通过连接SQL Server数据库实现数据的交互,使用MVC架构设计思想和MODEL1(JSP+JavaBean)实现.其中,Database类负责连接后台数据库进行数据交互: ...

  3. 太恐怖了 两天搞定一个项目 Java Web MVC 网络商城教程+源代码

    两天搞定一个项目 Java Web MVC 网络商城教程+源代码 最近自学做了一个网络商城将以下是代码和教程 环境搭建–数据库设计–页面设计-后台设计 本项目使用的jdk版本是 运行项目前需要先配置好 ...

  4. 书城管理系统(Java web)

    书城管理系统(Java web) 书城项目第一阶段:表单验证 验证用户名:必须由字母,数字下划线组成,并且长度为 5 到 12 位 验证密码:必须由字母,数字下划线组成,并且长度为 5 到 12 位 ...

  5. Java web登录拦截器_Spring MVC 拦截器实现登录

    上篇博文我在博客中讲到如何使用spring MVC框架来实现文件的上传和下载,今天小钱给大家再来分享和介绍Spring MVC框架中相当重要的一块功能--拦截器. 关于拦截器的概念我在这里就不多说了, ...

  6. java 登录拦截器_springMVC 拦截器-用户登录拦截实战

    各位小伙伴 咱们继续学习新知识 今天要分享的就是 拦截器 不知道小伙伴们平时上网的时候有没有注意到,尤其是上网购物的时候,不登录账号,就无法访问一些功能页面,比如你不登录账号,就没法查看购物车里面有什 ...

  7. springmvc java中转发_Springmvc中的转发重定向和拦截器的示例

    本文介绍了Springmvc中的转发重定向和拦截器的示例,分享给大家,具体如下: 可变参数在设计方法时,使用 数据类型...来声明参数类型,例如: public static void functio ...

  8. java web 过滤器跟拦截器的区别和使用

    2019独角兽企业重金招聘Python工程师标准>>> 1.首先要明确什么是拦截器.什么是过滤器 1.1 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Progr ...

  9. 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor

    [Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...

最新文章

  1. BCH测试网上出现第一个UTXO证明
  2. 【HDOJ】2209 翻纸牌游戏
  3. XamarinEssentials教程移除键值首选项的键值
  4. mac系统学习和快捷键
  5. 数据结构(七)---循环队列的实现---java版
  6. POJ 1703 Find them, Catch them 种类并查集
  7. Linux下修改SSH登录端口
  8. PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现
  9. Docker学习总结(19)——Google开源的容器集群管理系统Kubernetes介绍
  10. php解决mysql主从同步_mysql 主从同步原理
  11. 哈曼基于英特尔计算平台(Apollo Lake和ACRN)展示新一代“智能驾驶舱”
  12. Java 阶乘(BigInteger)
  13. 计算幻术之路(一):被定义之前的增强现实
  14. NMS 非极大值抑制原理及实现
  15. oracle物理备份与恢复,ORACLE数据库备份与恢复详解
  16. C语言坐标打飞机,C语言实现打飞机小游戏
  17. python提速网站资源_三分钟学会Django缓存,让你的网站提速十倍以上
  18. 利用 Python 爬取58同城品牌公寓(附带租房指南)
  19. 【055】工信部领导莅临翼辉参观指导工作
  20. DVWA靶场系列1-环境搭建

热门文章

  1. caffe/common.cu error: function atomicadd has already been defined
  2. P2839 [国家集训队]middle(二分 套 主席树)
  3. HDU - 7031 Power Station of Art 思维 + 二分图模型
  4. P2468 [SDOI2010]粟粟的书架 主席树 + 二分 + 二维前缀和
  5. Codeforces Round #630 (Div. 2) F. Independent Set 树形dp
  6. Ozon Tech Challenge 2020 (Div.1 + Div.2) F. Kuroni and the Punishment 随机化
  7. P3168 [CQOI2015]任务查询系统 主席树 + 差分
  8. cf 1511 D. Min Cost String
  9. 洛谷P5212:SubString(SAM、LCT)
  10. 第46届ICPC亚洲区域赛(沈阳)L-Perfect Matchings【dp,组合数学】