SpringMVC-03-拦截器 + 小练习
拦截器与过滤器相似,但拦截器只能拦截控制器类的方法,而过滤器可以拦截所有请求。
自定义拦截器
------ 实现用户登录后跳转main.jsp页面,否则无法进入main.jsp页面
1、新建类实现HandlerInterceptor
package com.yyl.interceptor;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;public class DemoInterceptor implements HandlerInterceptor{// jsp执行完成后执行,记录日志、异常@Overridepublic void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)throws Exception {// TODO Auto-generated method stub}// 控制器执行完成后执行@Overridepublic void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)throws Exception {// TODO Auto-generated method stub}// 进入控制器前执行,return false,无法进入控制器@Overridepublic boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object arg2) throws Exception {//System.out.println("执行拦截器");String uri = req.getRequestURI();System.out.println(uri);if(uri.equals("/SpringMVC03-login/Login")){ // 验证是否执行进入登录控制器return true;}else{ //System.out.println("other");Object obj = req.getSession().getAttribute("user");if(obj!=null){ // 登录成功则进行跳转return true;} resp.sendRedirect("/SpringMVC03-login/login.jsp"); // 否则重定向到登录页面return false;} }}
2、springmvc.xml文件配置拦截器拦截对象
error.jsp
3、controller
import javax.servlet.http.HttpSession;import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;import com.yyl.pojo.User;@Controller
public class DemoController {@RequestMapping("Login")public String loginMethod(User u,HttpSession session){//System.out.println("进入login");if(u.getUsername().equals("admin") && u.getPassword().equals("123")){//简单验证session.setAttribute("user", u);return "/WEB-INF/page/main.jsp";}else{return "login.jsp";}}@RequestMapping("{page}")public String main(@PathVariable String page){return page;}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
