spring mvc怎么加入权限控制,在未登录前,任何访问url都跳转到login页面;登录成功后跳转至先前的url
2016-05-27 13:11
761 查看
1要达到的目的:在未登录前,任何访问url都跳转到login页面;登录成功后才可以获取相关资源
2过程
2.1在spring mvc的xml文件中,配置拦截器
<!--配置拦截器, 多个拦截器,顺序执行 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 匹配的是url路径, 如果不配置或/**,将拦截所有的Controller -->
<mvc:mapping path="/" />
<mvc:mapping path="/user/**" />
<mvc:mapping path="/test/**" />
<bean class="com.alibaba.interceptor.CommonInterceptor"></bean>
</mvc:interceptor>
<!-- 当设置多个拦截器时,先按顺序调用preHandle方法,然后逆序调用每个拦截器的postHandle和afterCompletion方法 -->
</mvc:interceptors>
2.2拦截器类:
public class CommonInterceptor implements HandlerInterceptor {
private final String ADMINSESSION = "adminsession";
//拦截前处理
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object obj) throws Exception {
Object sessionObj = request.getSession().getAttribute(ADMINSESSION);
if(sessionObj!=null) {
return true;
}
response.sendRedirect("login.do");
return false;
}
//拦截后处理
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) throws Exception { }
//全部完成后处理
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception e) throws Exception { }
}
2过程
2.1在spring mvc的xml文件中,配置拦截器
<!--配置拦截器, 多个拦截器,顺序执行 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 匹配的是url路径, 如果不配置或/**,将拦截所有的Controller -->
<mvc:mapping path="/" />
<mvc:mapping path="/user/**" />
<mvc:mapping path="/test/**" />
<bean class="com.alibaba.interceptor.CommonInterceptor"></bean>
</mvc:interceptor>
<!-- 当设置多个拦截器时,先按顺序调用preHandle方法,然后逆序调用每个拦截器的postHandle和afterCompletion方法 -->
</mvc:interceptors>
2.2拦截器类:
public class CommonInterceptor implements HandlerInterceptor {
private final String ADMINSESSION = "adminsession";
//拦截前处理
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object obj) throws Exception {
Object sessionObj = request.getSession().getAttribute(ADMINSESSION);
if(sessionObj!=null) {
return true;
}
response.sendRedirect("login.do");
return false;
}
//拦截后处理
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) throws Exception { }
//全部完成后处理
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception e) throws Exception { }
}
相关文章推荐
- [疯狂Java]集合:SortedSet、TreeSet
- Java反射库中的安全漏洞在30个月后终于修复了(转)
- 349. Intersection of Two Arrays I &&II (Java)
- eclipse pydev 插件安装不显示问题
- Java学习笔记之ArrayList基本用法
- Java-文件输入输出演示(字符流)
- Java学习笔记之Iterator和ListIterator
- 组合模式(Composite)Java
- 用Java写的简单五子棋游戏(原创五子连珠算法)
- 建立一个能运行的spring-mvc程序,至少需要哪些配置以及jar包
- [Java 8] (9) Lambda表达式对递归的优化(下) - 使用备忘录模式(Memoization Pattern) .
- [Java 8] (8) Lambda表达式对递归的优化(上) - 使用尾递归 .
- Eclipse常见问题及解决
- Java递归调用改成非递归
- myeclipse,eclipse,java项目中如何隐藏文件夹,如何显示文件夹
- Java金额转换为汉语中人民币的大写
- JAVA学习(4)位运算
- java的反射机制(转)
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 与org.springframework.transaction
- java常用的100个类(转)