java 拦截器安全证书_SpringMVC拦截器(实现登录验证拦截器)

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

当用户点击到网站主页时要进行拦截,用户登录了才能进入网站主页,否则进入登陆页面

核心代码

首先是index.jsp,显示链接

1

2

3 String path =request.getContextPath();4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";5 %>

6

7

8

9

10

11

12

首页

13

14

15

16

17

18

21

22

23

24

29

30

controller类

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

3 import javax.annotation.Resource;4 import javax.servlet.http.HttpServletRequest;5

6 import org.springframework.stereotype.Controller;7 import org.springframework.web.bind.annotation.RequestMapping;8 import org.springframework.web.bind.annotation.RequestMethod;9 import org.springframework.web.bind.annotation.RequestParam;10

11 import com.jikexueyuan.demo.springmvc.lesson4.constant.Global;12 import com.jikexueyuan.demo.springmvc.lesson4.exception.MyException;13 import com.jikexueyuan.demo.springmvc.lesson4.model.User;14 import com.jikexueyuan.demo.springmvc.lesson4.service.LoginService;15

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

19

20 @Controller21 public classLoginController extends BaseController {22

23 @Resource24 LoginService service;25

26 @Resource27 HttpServletRequest request;28

29 @RequestMapping("/exception")30 public voidexception() throws MyException{31 throw new MyException("测试springmvc中的异常捕获");32 }33

34 @RequestMapping("/loginpage")35 publicString toLoginPage(){36 return "/WEB-INF/jsp/login.jsp";37 }38

39 @RequestMapping("/user/home")40 publicString toUserHome(){41 return "/WEB-INF/jsp/userhome.jsp";42 }43

44 @RequestMapping("/logout")45 publicString logout(){46 request.getSession().removeAttribute(Global.USER_SESSION_KEY);47 return "redirect:/";48 }49

50 @RequestMapping(value = "/doLogin", method =RequestMethod.POST)51 publicString doLogin(@RequestParam String userName, @RequestParam String password){52

53 try{54 User user =service.doLogin(userName, password);55 request.getSession().setAttribute(Global.USER_SESSION_KEY, user);56 return "redirect:/user/home.html";57 } catch(Exception e) {58 return "/WEB-INF/jsp/login.jsp";59 }60

61 }62

63 }

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

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

1

2

3

4

5

6

7

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

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

3 import javax.servlet.http.HttpServletRequest;4 import javax.servlet.http.HttpServletResponse;5

6 import org.springframework.web.servlet.HandlerInterceptor;7 import org.springframework.web.servlet.ModelAndView;8

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

11 public classLoginInterceptor implements HandlerInterceptor {12

13 @Override14 publicboolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {15 Object user =request.getSession().getAttribute(Global.USER_SESSION_KEY);16 if (user == null) {17 System.out.println("尚未登录,调到登录页面");18 response.sendRedirect("/loginpage.html");19 return false;20 }21

22 return true;23 }24

25 @Override26 public voidpostHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {27 System.out.println("postHandle");28 }29

30 @Override31 public voidafterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {32 System.out.println("afterCompletion");33 }34

35 }

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值