import javax.servlet.Filter;
import org.apache.log4j.Logger;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.SessionManager;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.server.session.HashSessionIdManager;
import org.eclipse.jetty.server.session.HashSessionManager;
import org.eclipse.jetty.server.session.SessionHandler;
import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.servlet.FilterMapping;
//import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHandler;
import org.eclipse.jetty.servlets.GzipFilter;
import weblistener.HttpSessionListener;
public class WebServer {
private static Logger logger = Logger.getLogger(WebServer.class);
public void start() throws Exception {
Server server = new Server(Integer.parseInt(System.getProperty("zport")));
ServletHandler handler = new ServletHandler();
server.setHandler(handler);
HashSessionIdManager hashSessionIdManager = new HashSessionIdManager();
SessionHandler sessionHandler = new SessionHandler();
SessionManager sessionManager = new HashSessionManager();
sessionManager.setSessionIdManager(hashSessionIdManager);
sessionHandler.setSessionManager(sessionManager);
sessionHandler.addEventListener(new HttpSessionListener());
sessionHandler.setHandler(handler);
sessionHandler.setServer(server);
server.setSessionIdManager(hashSessionIdManager);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setHandler(sessionHandler);
context.setContextPath("/");
context.addServlet("webservlet.IndexServlet", "/index");
context.addServlet("webservlet.HomeServlet", "/home");
context.addServlet("webservlet.CategoryServlet", "/category");
context.addServlet("webservlet.ProductServlet", "/product");
context.addServlet("webservlet.SearchByPriceServlet", "/search-by-price");
context.addServlet("webservlet.SearchByOsServlet", "/search-by-os");
context.addServlet("webservlet.SearchByNameServlet", "/search-by-name");
context.addServlet("webservlet.SearchByManufacturerServlet", "/search-by-manufacturer");
context.addServlet("webservlet.OrderByPriceServlet", "/order-by-price");
context.addServlet("webservlet.SearchByScreenSizeServlet", "/search-by-screen-size");
context.addServlet("webservlet.SearchByRamServlet", "/search-by-ram");
context.addServlet("webservlet.OAuth2CallbackServlet", "/oauth2callback");
context.addServlet("webservlet.ajax.GetStoreByPhoneCodeAndProvinceServlet", "/ajax/get-store-by-phone-code");
context.addServlet("webservlet.ajax.GetJsonStoreByPhoneCodeAndProvinceServlet", "/ajax/get-json-store-by-phone-code-and-province");
context.addServlet("webservlet.ajax.GetLocalStorageDataServlet", "/ajax/get-local-storage-data");
context.addServlet("webservlet.ajax.GetPhoneArticle", "/ajax/get-phone-article");
context.addServlet("webservlet.ajax.GetTopComment", "/ajax/get-top-comment");
context.addServlet("webservlet.ajax.GetComment", "/ajax/get-comment");
context.addServlet("webservlet.ajax.GetPhoneTechSpec", "/ajax/get-phone-tech-spec");
context.addServlet("webservlet.ajax.LoginUser", "/ajax/login-user");
context.addServlet("webservlet.ajax.LogoutUser", "/ajax/logout-user");
context.addServlet("webservlet.ajax.InsertComment", "/ajax/post-comment");
context.addServlet("webservlet.ajax.InsertSubComment", "/ajax/post-sub-comment");
context.addServlet("webservlet.ajax.GetPhoneAutoComplete", "/ajax/get-phone-auto-complete");
context.addServlet("webservlet.ajax.GetMoreCategoryProduct", "/ajax/get-more-category-product");
context.addServlet("webservlet.ajax.GetMoreSearchByPrice", "/ajax/get-more-search-by-price");
context.addServlet("webservlet.ajax.GetMoreSearchByOs", "/ajax/get-more-search-by-os");
context.addServlet("webservlet.ajax.GetMoreSearchByName", "/ajax/get-more-search-by-name");
context.addServlet("webservlet.ajax.GetSuggestSearchByName", "/ajax/get-suggest-search-by-name");
context.addServlet("webservlet.ajax.GetMoreSearchByManufacturer", "/ajax/get-more-search-by-manufacturer");
context.addServlet("webservlet.ajax.GetMoreOrderByPrice", "/ajax/get-more-order-by-price");
context.addServlet("webservlet.ajax.GetMoreSearchByScreenSize", "/ajax/get-more-search-by-screen-size");
context.addServlet("webservlet.ajax.GetMoreSearchByRam", "/ajax/get-more-search-by-ram");
context.addServlet("webservlet.ajax.GetBoxRating", "/ajax/get-box-rating");
context.addServlet("webservlet.ajax.SearchSimilarPrice", "/ajax/search-similar-price");
context.addServlet("webservlet.ajax.InsertOrderSingle", "/ajax/insert-order-single");
context.addServlet("webservlet.ajax.UpdateNumLike", "/ajax/update-num-like");
context.addServlet("webservlet.ajax.UpdateNumLikeSubComment", "/ajax/update-num-like-subcomment");
ResourceHandler resourse_handle = new ResourceHandler();
resourse_handle.setDirectoriesListed(true);
resourse_handle.setResourceBase("static");
HandlerList handlers = new HandlerList();
FilterHolder gzipFilterHolder = this.createGzipFilterHolder();
handler.addFilter(gzipFilterHolder, this.createFilterMapping("/*", gzipFilterHolder));
handlers.setHandlers(new Handler[]{resourse_handle, /*handler,*/ context});
server.setHandler(handlers);
server.setStopAtShutdown(true);
// server.setSendServerVersion(true);
server.start();
server.join();
}
private FilterHolder createGzipFilterHolder() {
Filter gzip = new GzipFilter();
FilterHolder filterHolder = new FilterHolder(gzip);
filterHolder.setName("gzip");
return filterHolder;
}
private FilterMapping createFilterMapping(String pathSpec, FilterHolder filterHolder) {
FilterMapping filterMapping = new FilterMapping();
filterMapping.setPathSpec(pathSpec);
filterMapping.setFilterName(filterHolder.getName());
return filterMapping;
}
}
Không có nhận xét nào:
Đăng nhận xét