Java web登录拦截器_SpringMVC拦截器(实现登录验证拦截器)
本例实现登陆时的验证拦截,采用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拦截器(实现登录验证拦截器)相关推荐
- java web logout_java – spring-security login?logout重定向到登录
我使用 spring-security 3.2.0.RC2与 java配置和两个HttpSecurity配置.一个用于REST API,一个用于UI. 当我发布到/ logout它重定向到/ logi ...
- 网络系统(Java web)开发与设计项目实战——实现用户登录与注册
项目概况 该用户登录功能通过连接SQL Server数据库实现数据的交互,使用MVC架构设计思想和MODEL1(JSP+JavaBean)实现.其中,Database类负责连接后台数据库进行数据交互: ...
- 太恐怖了 两天搞定一个项目 Java Web MVC 网络商城教程+源代码
两天搞定一个项目 Java Web MVC 网络商城教程+源代码 最近自学做了一个网络商城将以下是代码和教程 环境搭建–数据库设计–页面设计-后台设计 本项目使用的jdk版本是 运行项目前需要先配置好 ...
- 书城管理系统(Java web)
书城管理系统(Java web) 书城项目第一阶段:表单验证 验证用户名:必须由字母,数字下划线组成,并且长度为 5 到 12 位 验证密码:必须由字母,数字下划线组成,并且长度为 5 到 12 位 ...
- Java web登录拦截器_Spring MVC 拦截器实现登录
上篇博文我在博客中讲到如何使用spring MVC框架来实现文件的上传和下载,今天小钱给大家再来分享和介绍Spring MVC框架中相当重要的一块功能--拦截器. 关于拦截器的概念我在这里就不多说了, ...
- java 登录拦截器_springMVC 拦截器-用户登录拦截实战
各位小伙伴 咱们继续学习新知识 今天要分享的就是 拦截器 不知道小伙伴们平时上网的时候有没有注意到,尤其是上网购物的时候,不登录账号,就无法访问一些功能页面,比如你不登录账号,就没法查看购物车里面有什 ...
- springmvc java中转发_Springmvc中的转发重定向和拦截器的示例
本文介绍了Springmvc中的转发重定向和拦截器的示例,分享给大家,具体如下: 可变参数在设计方法时,使用 数据类型...来声明参数类型,例如: public static void functio ...
- java web 过滤器跟拦截器的区别和使用
2019独角兽企业重金招聘Python工程师标准>>> 1.首先要明确什么是拦截器.什么是过滤器 1.1 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Progr ...
- 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor
[Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...
最新文章
- BCH测试网上出现第一个UTXO证明
- 【HDOJ】2209 翻纸牌游戏
- XamarinEssentials教程移除键值首选项的键值
- mac系统学习和快捷键
- 数据结构(七)---循环队列的实现---java版
- POJ 1703 Find them, Catch them 种类并查集
- Linux下修改SSH登录端口
- PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现
- Docker学习总结(19)——Google开源的容器集群管理系统Kubernetes介绍
- php解决mysql主从同步_mysql 主从同步原理
- 哈曼基于英特尔计算平台(Apollo Lake和ACRN)展示新一代“智能驾驶舱”
- Java 阶乘(BigInteger)
- 计算幻术之路(一):被定义之前的增强现实
- NMS 非极大值抑制原理及实现
- oracle物理备份与恢复,ORACLE数据库备份与恢复详解
- C语言坐标打飞机,C语言实现打飞机小游戏
- python提速网站资源_三分钟学会Django缓存,让你的网站提速十倍以上
- 利用 Python 爬取58同城品牌公寓(附带租房指南)
- 【055】工信部领导莅临翼辉参观指导工作
- DVWA靶场系列1-环境搭建
热门文章
- caffe/common.cu error: function atomicadd has already been defined
- P2839 [国家集训队]middle(二分 套 主席树)
- HDU - 7031 Power Station of Art 思维 + 二分图模型
- P2468 [SDOI2010]粟粟的书架 主席树 + 二分 + 二维前缀和
- Codeforces Round #630 (Div. 2) F. Independent Set 树形dp
- Ozon Tech Challenge 2020 (Div.1 + Div.2) F. Kuroni and the Punishment 随机化
- P3168 [CQOI2015]任务查询系统 主席树 + 差分
- cf 1511 D. Min Cost String
- 洛谷P5212:SubString(SAM、LCT)
- 第46届ICPC亚洲区域赛(沈阳)L-Perfect Matchings【dp,组合数学】