前台后台的拦截功能
adminlogininterceptor和userlogininterceptor两个类起到一个拦截的功能,分别对前台未登录的用户和后台未登录的用户进行拦截并拒绝访问的操作,代码如下:
package com.example.meal_ordering_system.interceptor;
import com.example.meal_ordering_system.entity.Admin;
import com.example.meal_ordering_system.entity.Users;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class AdminLoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
//获取请求的RUi:去除http:localhost:8080这部分剩下的
String uri = request.getRequestURI();
//UTL:除了login.jsp是可以公开访问的,其他的URL都进行拦截控制
if (uri.indexOf("/admin/login")>=0) {
return true;
}
//获取session
HttpSession session = request.getSession();
Admin admin = (Admin) session.getAttribute("admin_session");
Users user=(Users)session.getAttribute("user_session");
//判断session中是否有用户数据,如果有,则返回true,继续向下执行
if (admin != null) {
return true;
}
//不符合条件的给出提示信息,并转发到登录页面
request.setAttribute("msg", "您还没有登录,请先登录!");
request.getRequestDispatcher("/public/admin/index.jsp").forward(request, response);
return false;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
}
package com.example.meal_ordering_system.interceptor;
import com.example.meal_ordering_system.entity.Users;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class UserLoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object o) throws Exception{
String uri=request.getRequestURI();
if(!uri.contains("/qiantai")){
HttpSession session=request.getSession();
Users user=(Users)session.getAttribute("USER_SESSION");
if(user!=null)
return true;
request.setAttribute("msg","您还没有登录,请先登录");
request.getRequestDispatcher("/public/qiantai/login.jsp").forward(request,response);
return false;
}
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
}

浙公网安备 33010602011771号