11. SpringMVC 拦截器
2016-03-09 20:37
645 查看
本系列入门学习参考极客学院Spring入门系列视频学习记录总结而来
index.jsp 页面包含一个登陆引导链接和一个直接访问用户中心的测试链接
LoginController:
其他的就省略了,和前几篇例子没什么大的差别,
主要看如何定义拦截器以及使用拦截器:
定义拦截器:
springmvc.xml中配置使用拦截器:
此时若在index.jsp页面,想直接进入用户中心页面则将被拦截跳转至登陆页面
index.jsp 页面包含一个登陆引导链接和一个直接访问用户中心的测试链接
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>首页</title> </head> <body> <div style="margin:0 auto; padding-top: 100px; font-size: 18px;" align="center"> <p><a href="loginpage.html"> 登录 </a></p> <p><a href="user/home.html"> 用户中心 </a></p> </div> </body> </html>
LoginController:
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.dragon.springmvc.constant.Global; import com.dragon.springmvc.model.User; import com.dragon.springmvc.service.LoginService; @Controller public class LoginController { @Resource LoginService service; @Resource HttpServletRequest request; @RequestMapping("/loginpage") public String toLoginPage(){ return "/WEB-INF/jsp/login.jsp"; } @RequestMapping("/user/home") public String toUserHome(){ return "/WEB-INF/jsp/userhome.jsp"; } @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) { System.out.println(e.getMessage()); return "/WEB-INF/jsp/login.jsp"; } } }
其他的就省略了,和前几篇例子没什么大的差别,
主要看如何定义拦截器以及使用拦截器:
定义拦截器:
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import com.dragon.springmvc.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("/springmvc/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.xml中配置使用拦截器:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> <!-- 自动扫描 com.dragon 包下面的所有组件(使用了springmvc注解) --> <context:component-scan base-package="com.dragon" /> <mvc:interceptors> <mvc:interceptor> <!-- 拦截所有URL中包含/user/的请求 --> <mvc:mapping path="/user/**"/> <bean class="com.dragon.springmvc.interceptor.LoginInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> </beans>
此时若在index.jsp页面,想直接进入用户中心页面则将被拦截跳转至登陆页面
相关文章推荐
- java四舍五入保留两位小数方法整理
- Java+jSSC 串口从读取数据
- Java中的序列化Serialable高级详解
- 使用Eclipse签名打包,项目出现错误怎么办?
- java 模拟登陆正方教务系统
- struts 点击jar包中的文件Path must include project and resource name: /struts-default.xml
- 【JAVA】34、对象引用传递
- 第 3 章 流程控制语句
- Leetcode: 107. Binary Tree Level Order Traversal II(JAVA)
- Spring定时器的配置和使用
- 基于一阶HMM的中文词性标注(Java实现)
- spring 4 配置 datasource 四种方式
- Struts2学习笔记(二):最简单的一个例子
- Java反射机制 - -音
- struts动态方法调用之感叹号
- Spring整合CXF,发布RSETful 风格WebService
- Struts2基础学习总结
- Java - 线程
- Java - eclipse 使用日记
- IT十八掌作业_java基础第六天_接口与适配器模式、多态、内部类