SSM项目 拦截器(csdn)————程序.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
SSM项目拦截器实现登录拦截 SSM项目中的拦截器是一种重要的机制,用于在控制器方法调用前后执行某些操作。在本文中,我们将详细介绍如何在SSM项目中实现登录拦截器,并配置其在SpringMVC框架中的使用。 拦截器的概念 在SpringMVC框架中,拦截器是一种特殊的组件,用于在控制器方法调用前后执行某些操作。拦截器可以用来实现登录认证、权限控制、日志记录、缓存管理等功能。拦截器可以在SpringMVC框架中独立存在,也可以与其他组件集成使用。 实现登录拦截器 要实现登录拦截器,需要继承HandlerInterceptor接口,并重写preHandle方法。在preHandle方法中,可以获取当前请求的URI,并检查用户是否已经登录,如果已经登录,则返回true,否则重定向到登录页面。 下面是登录拦截器的实现代码: ```java @Slf4j public class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String requestURI = request.getRequestURI(); log.info("被拦截的请求有:{}", requestURI); // 通过session,拿到用户登录信息 HttpSession session = request.getSession(); final Object userObj = session.getAttribute(ProjShow.USER_SESSION); if (userObj != null) { // 如果已经登录,不拦截 return true; } else { // 如果没有登录,打开登录页面 response.sendRedirect(request.getContextPath() + "/login.jsp"); return false; } } } ``` 配置拦截器 在SpringMVC框架中,需要在配置文件中配置拦截器。可以在mvc:interceptors元素中配置拦截器,并指定其拦截的路径。 下面是配置拦截器的示例代码: ```xml <mvc:interceptors> <mvc:interceptor> <!-- 拦截所有mvc控制器 --> <mvc:mapping path="/"/> <!-- 排除某些路径不拦截 --> <mvc:exclude-mapping path="/" /> <mvc:exclude-mapping path="/index.jsp" /> <mvc:exclude-mapping path="/regist.jsp" /> <mvc:exclude-mapping path="/login.jsp" /> <mvc:exclude-mapping path="/account/" /> <bean class="com.hc.interceptor.LoginInterceptor"/> </mvc:interceptor> </mvc:interceptors> ``` 指定静态资源不拦截 在web.xml文件中,需要指定静态资源不拦截,可以使用servlet-mapping元素指定静态资源的路径。 下面是web.xml文件中的示例代码: ```xml <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> <url-pattern>*.css</url-pattern> </servlet-mapping> ``` 过滤器与拦截器的区别 过滤器与拦截器都是用于拦截请求的机制,但它们有所不同。过滤器是servlet规范的一部分,任何Java Web工程都可以使用,而拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用。过滤器可以拦截所有资源,而拦截器只会拦截访问的控制器方法。 SSM项目中的拦截器可以实现登录认证、权限控制等功能,并可以与其他组件集成使用。
- 粉丝: 0
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助