(一)登录验证拦截器实现
1、步骤分析
2、将ch11的代码复制一份,重命名为ch12 interceptor-permission。删掉原项目中第二个拦截器MyInterceptor2的类文件,同时将springmvc.xml中有关第二个拦截器的声明删除。
3、(1)创建login.jsp,模拟登录。
在webapp文件夹下新建login.jsp,模拟登录:
<body>
模拟登录,zs登录系统
<%
session.setAttribute("name","zs");
%>
</body>
(2)创建logout.jsp,模拟退出系统。
在webapp文件夹下新建logout.jsp,模拟退出系统:
<body>
退出系统,从session中删除数据
<%
session.removeAttribute("name");
%>
</body>
4、创建拦截器。
在MyInterceptor类中,删掉postHandle()方法和afterCompletion()方法,然后修改preHandle()方法。
//验证登录的用户信息,正确return true,其他return false
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("11111-MyInterceptor拦截器的preHandle()方法执行了!");
String loginName = "";
//从session中获取name的值
Object attr = request.getSession().getAttribute("name");
if(attr !=null){
loginName = (String) attr;
}
//判断登录的用户是否符合要求
if(!"zs".equals(loginName)){
//不能访问
//给用户提示
request.getRequestDispatcher("/tips.js").forward(request,response);
return false;
}
//
return true;
}
5、验证视图tips.jsp
在webapp文件夹下新建tips.jsp文件:
<body>
tips.jsp 非zs不能访问系统
</body>
(二)知识点补充
2.1 SpringMVC执行流程
1、SpringMVC执行流程
在以前我们是先在容器中创建对象,然后使用getBean()方法从容器中拿到对象,但是现在框架中已经帮我们做好了,不用再使用getBean()方法取对象了。
2、分析程序执行流程:
3、简化分析流程