SpringMVC登陆拦截器
-
SpringMVC web MVC的处理拦截器类似Servlet开发中的过滤器Filter,用于处理器的预处理和后处理
登录拦截器
package com.wzx.Interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginInterceptor implements HandlerInterceptor {
//controller执行前调用
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("controller执行前调用");
//拦截(排除不需要拦截的路径)
System.out.println("客户端访问资源的路径" + request.getRequestURI());
if (request.getRequestURI().endsWith("login")) {
return true;
}
//如果已经登录
if (request.getSession().getAttribute("user")!=null) {
return true;
}
//进入登录页面
request.getRequestDispatcher("/views/login/login.jsp").forward(request, response);
return false;
}
//controller执行后未返回视图调用此方法
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("controller执行后未返回视图调用此方法");
}
//controller执行后且视图返回后调用此方法
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("controller执行后且视图返回后调用此方法");
}
}
在Springmvc中配置拦截器
<!--拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<!--拦截那些请求-->
<mvc:mapping path="/**"/>
<!--mvc:exclude-mapping path=""/>排除-->
<bean class="com.wzx.Interceptor.LoginInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
LoginController
package com.wzx.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpSession;
@RequestMapping("login")
@Controller
public class LoginController {
@RequestMapping("goLogin")
public String goLogin() {
return "login/login";
}
@RequestMapping("l ogin")
public String login(String username, String password, HttpSession session) {
if ("wzx".equals(username) && "123".equals(password)) {
session.setAttribute("user", username);
return "login/main";
}
return "login/login";
}
}
本文作者:志旋
本文链接:https://www.cnblogs.com/wuzhixuan/p/12890676.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步