servlet
在app里面加入@ServletComponentScan
一种为
@WebServlet(value = {"/hello"})
@Slf4j
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charser=uts-8");
PrintWriter writer = response.getWriter();
writer.print("nihao");
log.info("hhhhhh");
}
}
使用ServletRegistrationBean可以不用写
@WebServlet(value = {"/hello"})@ServletComponentScan
@Configuration
public class Myconfig {
@Bean
public ServletRegistrationBean servletRegistrationBean(){
ServletRegistrationBean servletRegistrationBean=new ServletRegistrationBean();
servletRegistrationBean.setServlet(new HelloServlet());
servletRegistrationBean.addUrlMappings("/hello");
return servletRegistrationBean;
}
监听器
在app里面加入@ServletComponentScan
@WebListener
@Slf4j
public class ServletListener implements ServletRequestListener {
@Override
public void requestDestroyed(ServletRequestEvent sre) {
log.info("有人");
}
@Override
public void requestInitialized(ServletRequestEvent sre) {
log.info("没人");
}
}
使用ServletListenerRegistrationBean可以不用写@WebListener@ServletComponentScan
@Bean
public ServletListenerRegistrationBean servletListenerRegistrationBean(){
ServletListenerRegistrationBean servletListenerRegistrationBean=new ServletListenerRegistrationBean();
servletListenerRegistrationBean.setListener(new ServletListener());
servletListenerRegistrationBean.setEnabled(true);
return servletListenerRegistrationBean;
}
Filter
依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibaba-dingtalk-service-sdk</artifactId>
<version>2.0.0</version>
</dependency>
@Slf4j
@WebFilter("/api/*")
public class TokenFilter1 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
Filter.super.init(filterConfig);
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request= (HttpServletRequest)servletRequest;
HttpServletResponse response= (HttpServletResponse)servletResponse;
String token = request.getParameter("token");
log.info("-------TokenFilter1开始------");
//log.info("获取到token->{}",token);
if(StrUtil.isEmpty(token)){
response.sendRedirect("/logout");
return;
}
StopWatch sw = new StopWatch();
sw.start();
filterChain.doFilter(servletRequest,servletResponse);
sw.stop();
log.info("-------TokenFilter1结束,耗时:{}------",sw.getTotalTimeSeconds());
}
@Override
public void destroy() {
Filter.super.destroy();
}
}
@Bean
public FilterRegistrationBean filterRegistrationBean(){
FilterRegistrationBean filter = new FilterRegistrationBean();
filter.setFilter(new TokenFilter1());
filter.addUrlPatterns("/api/*");
filter.setName("filter1");
filter.setOrder(2);
return filter;
}
@Bean
public FilterRegistrationBean logfilterRegistrationBean(){
FilterRegistrationBean filter = new FilterRegistrationBean();
filter.setFilter(new LogFilter2());
filter.addUrlPatterns("/api/*");
filter.setName("filter2");
filter.setOrder(1);
return filter;
}
logout为
package com.beiyou.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class LogOut {
@GetMapping("/logout")
public String logout(){
return "滚出去";
}
}