1.把页面放入到WEB-INF中
1.1 放入到WEB-INF中后必须通过控制器转发页面
1.2 springmvc拦截器拦截的是控制器,不能拦截jsp
2. 通过拦截器拦截全部控制器,需要在拦截器内部放行login控制器
3. 代码实现
3.1 jsp页面:
<form action="login" method="post"> 用户名:<input type="text" name="username" ><br> 密码:<input type="password" name="password" ><br> <input type="submit" value="登录"> </form> |
3.2 实体类:
public class Users { private int id; private String username; private String password; get()/set()方法; } |
3.3 Controller控制器:
@Controller public class LoginController { @RequestMapping("{page}") public String main(@PathVariable String page){ System.out.println("main"); return page; } @RequestMapping("login") public String login(Users users, HttpSession session){ if(users.getUsername().equals("xinge") && users.getPassword().equals("123")){ session.setAttribute("users", users); return "main"; }else{ return "redirect:/index.jsp"; } } } |
3.4 拦截器页面(实现HandlerInterceptor类):
@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception { //System.out.println("request.getRequestURI():"+request.getRequestURI()); //System.out.println("request.getContextPath():"+request.getContextPath()); if(request.getRequestURI().equals("/springmvc7_loginInterceptor/login")){ return true; }else{ Object obj = request.getSession().getAttribute("users"); if(obj!=null){ return true; } response.sendRedirect("/springmvc7_loginInterceptor/index.jsp"); return false; } } |
3.5 springmvc.xml中配置拦截器
<mvc:interceptors> <bean class="com.interceptor.LoginInterceptor"></bean> </mvc:interceptors> |