package com.jqmobile.core.server.servlet; import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.dispatcher.Dispatcher; import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter; import com.jqmobile.core.server.Application; import com.jqmobile.core.server.session.Session; public class CoreServletFilter extends StrutsPrepareAndExecuteFilter{ @Override protected void postInit(Dispatcher dispatcher, FilterConfig filterConfig) { super.postInit(dispatcher, filterConfig); Application.getApplication(); } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest)req; HttpServletResponse response = (HttpServletResponse) res; String path = request.getRequestURI(); if(path.endsWith(".client") || path.endsWith(".do")){ new CoreHttpServlet().handler(request, response); }else{ Session.activate(request); try{ super.doFilter(req, res, chain); }finally{ Session.release(); } } } }