Java / Jetty: How to Add Filter to Embedded Jetty

前端 未结 1 410
离开以前
离开以前 2020-12-16 01:26

I am working with embedded Jetty and I want to add a servlet filter to check for authentication before each request. I tried following this example but it looks like the si

1条回答
  •  清酒与你
    2020-12-16 01:47

    You are probably looking for EnumSet.of(DispatcherType.REQUEST), included a full example below:

    import java.io.IOException;
    import java.util.EnumSet;
    
    import javax.servlet.DispatcherType;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.eclipse.jetty.server.Server;
    import org.eclipse.jetty.servlet.ServletHandler;
    
    public class JettyFilter {
    
      public static void main(final String[] args) throws Exception {
        Server server = new Server(8080);
    
        ServletHandler handler = new ServletHandler();
        server.setHandler(handler);
    
        handler.addServletWithMapping(HelloServlet.class, "/*");
        handler.addFilterWithMapping(HelloPrintingFilter.class, "/*",
            EnumSet.of(DispatcherType.REQUEST));
    
        server.start();
        server.join();
      }
    
      public static class HelloServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
          response.setContentType("text/html");
          response.setStatus(HttpServletResponse.SC_OK);
          response.getWriter().println("

    Hello SimpleServlet

    "); } } public static class HelloPrintingFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.print("hello from filter"); } @Override public void init(FilterConfig arg0) throws ServletException { } @Override public void destroy() {} } }

    0 讨论(0)
提交回复
热议问题