Java代码
package com.share.interceptor;
import com.alipay.api.internal.parser.json.ObjectJsonParser;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.share.vo.R;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.PrintWriter;
public class ForceLoginIntercepter implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
response.setCharacterEncoding("utf-8");
HttpSession session = request.getSession();
if (session.getAttribute("login") != null){
return true;
}else{
PrintWriter writer = response.getWriter();
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(R.code(401).message("not-login").build());
writer.write(json);
writer.flush();
return false;
}
}
}
配置文件 spring-servlet.xml
<mvc:interceptors>
<mvc:interceptor>
<!-- /** 表示任意层级的任意路径-->
<mvc:mapping path="/**"/>
<!-- exclude-mapping 设置排除的地址路径 -->
<mvc:exclude-mapping path="/admin"/>
<mvc:exclude-mapping path="/**/*.html"/>
<mvc:exclude-mapping path="/**/*.js"/>
<mvc:exclude-mapping path="/**/*.ttf"/>
<mvc:exclude-mapping path="/**/*.png"/>
<mvc:exclude-mapping path="/**/*.jpg"/>
<mvc:exclude-mapping path="/**/*.css"/>
<bean class="com.share.interceptor.ForceLoginIntercepter"/>
</mvc:interceptor>
</mvc:interceptors>
Vue 钩子函数 页面加载后
mounted:function(){
axios.interceptors.response.use(resp=>{
console.log(resp);
if(resp.data.code == 401 && resp.data.message == "not-login"){
location.href="/video/admin/login.html";
}
return resp;
})
}