参考: http://blog.51cto.com/12066352/2093750
利用拦截器功能,分别 - 拦截'前台'和'后台' 的session用户和session管理员操作.
代码: 首先创建前台拦截器类
public class BeforeInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 判断session是否存在 HttpSession httpSession = request.getSession(); Integer adminId = (Integer) httpSession.getAttribute("userid"); if (adminId == null) { // => 如果为空跳转到登录界面 response.sendRedirect("login"); return false; } else { return true; } } }
代码: 其次创建后台拦截器类
public class AfterInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 判断session是否存在 HttpSession httpSession = request.getSession(); Integer adminId = (Integer) httpSession.getAttribute("adminId"); if (adminId == null) { // => 如果为空跳转到登录界面 response.sendRedirect("loginAdmin"); return false; } else { // 如果不为空则放行 return true; } } }
代码:最后创建拦截器配置类 -> 针对 '方法'上的拦截,拦截需要拦截的方法上的注解
@Configuration public class WebConfigurer implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { //添加拦截器及需要拦截的方法 => 后台拦截 registry.addInterceptor(new AfterInterceptor()) .addPathPatterns("/adminDestroy", "/passwordAdmin", "/editPass") .addPathPatterns("/commentAdmin", "/delComment") .addPathPatterns("/consultationAdmin", "/delConsultation", "/consultationAnswer") .addPathPatterns("/introductionAdmin", "/delIntroduction") .addPathPatterns("/newsAdmin", "/delNews") .addPathPatterns("/noteAdmin", "/addNote", "/delNote") .addPathPatterns("/ordersAdmin", "/ordersItemQuery", "/editOrdersStatus") .addPathPatterns("/refundAdmin", "/agreeRefund", "/refuseRefund", "/refundAnswer") .addPathPatterns("/statAdmin") .addPathPatterns("/suggestAdmin", "/delSuggest", "/suggestAnswer") .addPathPatterns("/userAdmin", "/delUserAndInfo"); // 添加拦截器及需要拦截的方法 => 前台拦截 registry.addInterceptor(new BeforeInterceptor()) .addPathPatterns("/address", "/insertAddress", "/delAddr", "/editAddrs") .addPathPatterns("/insertInformation", "/information") .addPathPatterns("/collection", "/cancelCollect", "/addCollect") .addPathPatterns("/consultation", "/suggest", "/insertConsultation", "/insertSuggest", "/news") .addPathPatterns("/order", "/delOrdersOne", "/change", "/reCargo", "/cancel", "/orderinfo", "/commentlist", "/comment", "/commentListSubmit", "/refund", "/refundSubmit", "/deleteRefund") .addPathPatterns("/pay", "/success", "/walletlist") .addPathPatterns("/shopcart", "/delShopCartIntroduction", "/addShopCartToIntroduction", "/jiaNumber", "/jianNumber") .addPathPatterns("/password", "/updatePassword"); } }