springMVC拦截器进行登录验证
来源:互联网 发布:mac 快捷键 编辑:程序博客网 时间:2024/06/08 09:47
使用springMVC的拦截器对没有登录的用户进行拦截
public class LoginInterceptor implements HandlerInterceptor{
//只要url包含regist Regist login Login 这些字母,说明请求的地址是注册或者登录,就不需要拦截了
private static final String[] IGNORE_URI = {"regist","Regist","Login","login"};
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse arg1, Object response, Exception arg3)
throws Exception {
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
// TODO Auto-generated method stub
}
/**
* 对用户的具体拦截功能
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
//标识位
boolean flag = false;
//获取请求地址
String url = request.getRequestURL().toString();
//遍历非校验的常量数组,如果用户的请求地址包含这些数组中的字符串,则将标识位改为true,即不需要拦截
for (String s : IGNORE_URI) {
if(url.contains(s)){
flag = true;
}
}
//如果用户要进入登录或者注册页面,上一个功能将标识位改为true,这里也就不再执行,如果没有,
//则进行判断用户之前是否登录过,登录过则放行,没有登录则拦截
if(!flag){
//从session中获取用户
SysUser user = (SysUser) request.getSession().getAttribute("user");
//判断session中是否有用户
//没有用户,也就是没登录,就将错误信息保存到session中,重定向到登录页面
if(user == null){
request.getSession().setAttribute("msg", "请先登录");
//此处应该为转发
response.sendRedirect("WEB-INF/page/userLogin/login.jsp");
}else{
//有用户,也就是已经登录,将标识位改为true,不再拦截
flag = true;
}
}
return flag;
}
}
springMVC的配置文件
<!-- 拦截器的配置 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean id="loginInterceptor" class="com.iss.interceptor.LoginInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
- springMVC拦截器进行登录验证
- 简单的springmvc登录验证拦截器
- SpringMVC拦截器实现登录验证
- 使用springmvc拦截器进行登录控制
- springmvc登录拦截器
- SpringMVC登录拦截器
- SpringMVC学习笔记2_拦截器实现登录验证
- SpringMVC拦截器实现登录验证的例子
- springmvc拦截器验证
- springMVC+ajax进行登录验证
- 登录验证--拦截器
- springmvc+mybatis登录验证2.0(更新了使用session来进行保存用户值,注销后清除session),并进行了拦截器的设定
- SpringMVC 登录拦截器实现
- springMVC 拦截器 登录管理
- SpringMvc拦截器登录处理
- SpringMVC拦截器实现登录
- SpringMVC拦截器:登录拦截器
- springmvc拦截器,用户登录拦截过程
- word转pdf时存在的一些问题
- Spring Integration概述
- 简易的万年历程序C语言
- NI/NDK开发指南(五)——访问数组(基本类型数组与对象数组)
- ACdream 1108 The kth number (莫队算法)
- springMVC拦截器进行登录验证
- gsoap编译
- JNI/NDK开发指南(六)——C/C++访问Java实例方法和静态方法
- step 0.1
- 我是来立flag的
- MyBatis第二讲学习笔记 ,使用MyBatis对表执行增删改查操作——基于注解的实现
- JNI/NDK开发指南(七)——C/C++访问Java实例变量和静态变量
- ios oc中的静态方法和实例方法、单例模式
- LeetCode 67. Add Binary