mvc配置文件
1.全部拦截
<mvc:interceptors>
<bean class="org.xxx.springmvc.interceptors.inter1"></bean>
</mvc:interceptors>
2.常用写法
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/test/*.do"/>
<mvc:exclude-mapping path="/m01.do"/>
<bean class="org.xxx.springmvc.interceptors.inter1"></bean>
</mvc:interceptor>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="org.xxx.springmvc.interceptors.inter2"></bean>
</mvc:interceptor>
</mvc:interceptors>
实现方法
1.实现HandlerInterceptor接口
public class inter1 implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
System.out.println("pre");
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
System.out.println("post");
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
System.out.println("after");
}
}
2.实现HandlerInterceptorAdapter接口
public class inter2 extends HandlerInterceptorAdapter {
public inter2() {
super();
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return super.preHandle(request, response, handler);
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
super.afterCompletion(request, response, handler, ex);
}
@Override
public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
super.afterConcurrentHandlingStarted(request, response, handler);
}
}
应用
1.控制层
@Controller
public class UserController {
@RequestMapping("user/login")
public ModelAndView userLogin(HttpSession session){
ModelAndView mv=new ModelAndView();
System.out.println("user login");
User user=new User();
user.setId(10);
user.setUserName("admin");
session.setAttribute("userInfo",user);
mv.setViewName("success");
return mv;
}
@RequestMapping("user/regsiter")
public ModelAndView userRegsier(){
ModelAndView mv=new ModelAndView();
mv.setViewName("success");
return mv;
}
@RequestMapping("user/delete")
public ModelAndView userDelete(){
ModelAndView mv=new ModelAndView();
mv.setViewName("success");
return mv;
}
}
2.interator层
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
User user=(User) request.getSession().getAttribute("userInfo");
if(user == null){
response.sendRedirect(request.getContextPath()+"/login.jsp");
return false;
}
return true;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律