简体   繁体   中英

Handle Jersey/JAX-RS REST manually

I'm building an application where I'd like to intercept HTTP requests and decide whether or not to pass them to a JAX-RS implementation for processing.

I basically have a single filter-and-front-controller-servlet combination and would like the servlet to delegate routing either to Jersey or to my "standard" router.

I can see lots of examples of using Jersey as a servlet, or of starting up an HTTP server, but there doesn't seem to be a handy way to take an HttpServletRequest/HttpServletResponse pair and say "here you go Jersey, route this for me".

Am I missing something obvious?

In this case, I think a RequestDispatcher might helps

A RequestDispatcher object can be used to forward a request to another resource, so you can try something like the following:

public class FrontServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext sc = this.getServletContext();
        if (someCondition) {
            sc.getRequestDispatcher("/jersey/servlet").forward(req, resp);
        }else{
            sc.getRequestDispatcher("/standard/router").forward(req, resp);
        }
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM