我是做到这里,才用了注释的方式拿到了ls。
step8:
这里的话,拦截器,首先说下流程
拦截器流程
我发起请求->进拦截器->进action
这里多拦截器的情况我就不说了,反正有种就近原则的味道。
这里的拦截器类
LoginChk.java
package com.ssmlogin.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 LoginChk implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
// TODO 自动生成的方法存根
// 权限检查,只有在session中存在用户名,这个时候才能跳转
System.out.println("进入拦截器。。。"+request.getAttribute("username")+":"+request.getSession().getAttribute("username"));
if(request.getSession().getAttribute("username") != null)
{
return true;
}
else
{
System.out.println("权限不足!");
request.setAttribute("message", "权限不足,请登录");
request.getRequestDispatcher("/index.jsp").forward(request, response);
return false;
}
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
// TODO 自动生成的方法存根
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
// TODO 自动生成的方法存根
}
}
就注意一下,pre方法返回true才继续流程,不然就停止了。
至于为什么,可以跟一下源码。
注册拦截器
自己定义的一定要注册,注册部分代码,在spring-mvc.xml中:
<!-- 注册拦截器 -->
<mvc:interceptors >
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/login"/>
<mvc:exclude-mapping path="/register"/>
<bean class="com.ssmlogin.interceptor.LoginChk" />
</mvc:interceptor>
</mvc:interceptors>
配置也很简单,在除了注册和登录的其他情况,都要拦截,这里注册还未写。
配置到这里就好了,
这里测试呢,可以直接访问/welcome,应该就会有相关提示了。
如果我的内容在哪里有问题,欢迎私信指正。