package com.taobao.easyweb.web.filter;
import org.mortbay.jetty.handler.AbstractHandler;
import com.taobao.easyweb.core.agent.AgentFilter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class EasywebHandler extends AbstractHandler {
/**
* Handle a request.
*
* @param target
* The target of the request - either a URI or a name.
* @param request
* The request either as the {@link org.mortbay.jetty.Request}
* object or a wrapper of that request. The
* {@link org.mortbay.jetty.HttpConnection#getCurrentConnection()}
* method can be used access the Request object if required.
* @param response
* The response as the {@link org.mortbay.jetty.Response} object
* or a wrapper of that request. The
* {@link org.mortbay.jetty.HttpConnection#getCurrentConnection()}
* method can be used access the Response object if required.
* @param dispatch
* The dispatch mode: {@link #REQUEST}, {@link #FORWARD},
* {@link #INCLUDE}, {@link #ERROR}
* @throws java.io.IOException
* @throws javax.servlet.ServletException
*/
@Override
public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch) throws IOException, ServletException {
Filter filter;
if (target.startsWith("/ewagent/")) {
filter = new AgentFilter();
} else {
filter = new EasywebFilter();
}
filter.init(null);
filter.doFilter((ServletRequest) request, (ServletResponse) response, new FilterChain() {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse) throws IOException, ServletException {
}
});
}
}