在springmvc配置拦截器拦截未登录用户操作
来源:互联网 发布:php会员中心 源码 编辑:程序博客网 时间:2024/05/17 02:23
在项目里面每个功能基本上都要判断用户是否登录,如果没有登录就要跳转到登录页面,通过拦截器的话只需要写一次,就不需要在每个功能里面再进行判断用户session操作了,简化了开发过程,下面是我配置关于spirngmvc拦截器的过程供大家参考:
1 修改web.xml添加DispatcherServlet相关配置
配置好DispatcherServlet之后,DispatcherServlet会接受所有请求,包括静态资源的请求。
<servlet>
<servlet-name>SpringDispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringDispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
2 过滤掉一些静态请求(包括图片和js)
修改SpringDispatcher-servlet.xml,添加过滤的相关配置
<!-- 过滤下载路径的所有内容 --><mvc:resources mapping="/document/**" location="/document/" />
<!-- 过滤所有的css -->
<mvc:resources mapping="/document/**" location="/css/" />
<!-- 过滤所有的js -->
<mvc:resources mapping="/document/**" location="/js/" />
<!-- 过滤所有的图片 -->
<mvc:resources mapping="/document/**" location="/images/" />
3 在SpringDispatcher-servlet.xml配置拦截器
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptor>
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="com.claridy.common.util.UserInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
4 新建UserInterceptor,添加相关判断
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import com.claridy.domain.WebEmployee;
public class UserInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
WebEmployee webUser = (WebEmployee) request.getSession().getAttribute("sys_user");
String url = request.getRequestURI();
if (StringUtils.isNotBlank(url) && url.toLowerCase().indexOf("login") < 0 && url.toLowerCase().indexOf("validata") < 0) {
if (null == webUser) {
String localUrl = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/";
response.sendRedirect(localUrl + "login");
return false;
}else{
return true;
}
}
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
这个里面首先判断url里面是否包含登录,验证码等相关信息,如果包含就直接跳转不判断,如果不包含继续执行,判断登录用户session是否存在,不存在就跳转到登录页面。
5 测试添加的过滤器是否能够正常跳转
通过debug启动项目
通过单步调试,发现确实进入了预设的判断,页面跳转到登录画面
请大家多多关注我的头条号,谢谢大家!
- 在springmvc配置拦截器拦截未登录用户操作
- springmvc 自定义拦截器实现未登录用户的拦截
- struts2拦截器--拦截未登录用户
- springmvc拦截器,用户登录拦截过程
- springmvc实现方法拦截,用户未登录不能访问
- Struts拦截器拦截未登录的操作
- 实现对未登录用户进行相关操作的拦截
- springmvc登录拦截器
- SpringMVC登录拦截器
- SpringMVC配置拦截器实现登录控制
- SpringMvc拦截器的应用(防止未登录访问)
- 用户登录拦截器
- 防止未登录用户操作—struts2拦截器简单实现
- 防止未登录用户操作—struts2拦截器简单实现
- 防止未登录用户操作—struts2拦截器简单实现
- 防止未登录用户操作—struts2拦截器简单实现
- SSH—Struts2拦截器的应用(防止未登录用户进行操作)
- 防止未登录用户操作—struts2拦截器简单实现
- 前端面试题(5) 列举5种IE haslayout的属性及其值
- C#模拟http 发送post或get请求
- [NOIP模拟]BZOJ 2143 飞飞侠
- 慕课网——PHP进阶篇(数组)
- HttpClient androidStudio中的基础使用
- 在springmvc配置拦截器拦截未登录用户操作
- mysql安装-使用
- Java互联网架构-负载均衡原理与实现方案
- 实用SQL函数集合(五)《格式化函数》
- Inno Setup的常用脚本
- onvif测试工具的使用教程
- 关于前端命名规范的一些心得
- jvm-运行时内存结构
- 冒泡排序,选择排序,二分查找小结