项目结构:
controller
(2)
package mygroup.myarti.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@RequestMapping("/hello")
public String Myrqu() {
return "ok";
}
}
(2)
package mygroup.myarti.filter;
/*
过滤器
检查用户是否登陆
filterName = "loginCheckFilter" 过滤器自定义名称
urlPatterns = "/* 拦截所有请求
* */
import com.alibaba.fastjson.JSON;
import org.springframework.util.AntPathMatcher;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebFilter(filterName = "loginCheckFilter",urlPatterns = "/*")
public class LoginCheckFilter implements Filter {
//路径匹配器,支持通配符
public static final AntPathMatcher PATH_MATCHER = new AntPathMatcher();
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
//获取本次请求的URI
String requestURI = request.getRequestURI();
//定义放行的请求
String[] urls = new String[]{
//自定义可以放行的请求,比如登录注册请求,页面静态资源的请求等
"/login.html",
"/employee/logout",
"/backend/**",
"/front/**",
"/common/**",
"/user/sendMsg", //移动端发送短信
"/user/login", //移动端登录
};
//判断本次请求是否需要处理
boolean check = check(urls, requestURI);
//如果不需要处理,就放行
if (check){
filterChain.doFilter(request,response);
return;
}
//判断是否登陆
if (request.getSession().getAttribute("user") != null){ //查看存入的用户session是否为空
//获取当前用户id
Long empId = (Long) request.getSession().getAttribute("user");
// BaseContext.setCurrentId(empId);
filterChain.doFilter(request,response);
return;
}
//判断登陆状态,未登陆就通过输出流向客户端响应数据
// response.getWriter().write(JSON.toJSONString(""));
response.sendRedirect("/login.html");
return;
}
//判断路径的方法
public boolean check(String[] urls,String requestURI){
for (String url:urls){
boolean match = PATH_MATCHER.match(url,requestURI);
if (match){
return true;
}
}
return false;
}
}
(3)
package mygroup.myarti;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
@ServletComponentScan
public class MyspringbootWebApplication {
public static void main(String[] args) {
SpringApplication.run(MyspringbootWebApplication.class, args);
}
}
(4)
server.port=8081