*springMVC.xml 配置 *
<context:component-scan base-package="com.spring.mvc" /> <mvc:interceptors> <mvc:interceptor> <!--拦截的请求地址--> <mvc:mapping path="/views/system/*"/> <mvc:mapping path="/getUsersList"/> <!--进行排查不需要的拦截 如 getLogin 登陆的--> <mvc:exclude-mapping path="/views/system/getLogin"/> <!--<mvc:exclude-mapping path="/views/system/getLogin"/>--> <!--指定自定义的拦截器--> <bean class="com.spring.mvc.configs.InterHandlerController"> <property name="excludeUrls"> <list> <value>/blog/assets</value> <value>/blog/docs</value> <value>/blog/incubator-echarts-2.2.7</value> <value>/blog/nice-validator-master</value> <value>/blog/html/login.jsp</value> </list> </property> </bean> </mvc:interceptor> </mvc:interceptors> <!--开启注解的配置--> <mvc:annotation-driven></mvc:annotation-driven> <!--进行配置视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--前缀,页面从什么地方开始获取--> <property name="prefix" value="/"></property> <!--后缀,页面.结合名称--> <property name="suffix" value=".jsp"></property> </bean> <mvc:default-servlet-handler/>
创建config 包 在里面创建
//自定义的一个拦截器
public class InterHandlerController implements HandlerInterceptor {
private List<String> excludeUrls;
// 这个方法是在业务处理器请求之前被调用的
//如果不需要调用其他的组件去处理请求,这返回false
//如果拦截器对请求进行拦截处理后,还要进行调用其他的拦截器,则返回true
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//进行格式化字符集
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//获取的session中的数据
Users users=(Users) request.getSession().getAttribute("us");
//获取对应的请求地址
String requestURI = request.getRequestURI();
for (String excludeUrl : excludeUrls) {
if (requestURI.contains(excludeUrl)){
return true;
}
}
if (users==null) {
System.out.println("当前没有账号登陆");
//跳转到登陆页面
response.sendRedirect("blog\html\login.jsp");
}
return true;
}
//这个方法在业务处理完请求后,但是DispatcherServlet向客户端返回数据,在方法中对用户的请求进行处理 @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } //在DispatcherServlet 完全处理请求后被代用的, @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } public List<String> getExcludeUrls() { return excludeUrls; } public void setExcludeUrls(List<String> excludeUrls) { this.excludeUrls = excludeUrls; }
}
controller 层
@Controller
@SessionAttributes({"us"})
@RequestMapping("/views/system")
public class LoginController {
///views/system/views/system/getLogin
@PostMapping("/getLogin") public String getLogin(Users users, Model model){ System.out.println(users); model.addAttribute("us",users); if (users!=null) { System.out.println(users); return "blog/html/index"; } return "blog/html/login"; } @PostMapping("/getLogin1") public String getLogin1(Users users, Model model){ System.out.println(users); model.addAttribute("us",users); if (users!=null) { System.out.println(users); return "blog/html/index"; } return "blog/html/login"; } @PostMapping("/getLogin2") public String getLogin2(Users users, Model model){ System.out.println(users); model.addAttribute("us",users); if (users!=null) { System.out.println(users); return "blog/html/index"; } return "blog/html/login"; }
}
实体类
public class Users {
/** */ private Integer id ; /** */ private String name ; /** */ private String pwd; @Override public String toString() { return "Users{" + "id=" + id + ", name='" + name + '\'' + ", pwd='" + pwd + '\'' + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; }
}