栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用嵌入式码头添加servlet过滤器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用嵌入式码头添加servlet过滤器

更新:对于Jetty版本9.2.2:

    Server server = new Server();    // Note: if you don't want control over type of connector, etc. you can simply     // call new Server(<port>);    ServerConnector connector = new ServerConnector(server);    connector.setHost("0.0.0.0");    connector.setPort(8085);    // Setting the name allows you to serve different app contexts from different connectors.    connector.setName("main");    server.addConnector(connector);    WebAppContext context = new WebAppContext();    context.setContextPath("/");    // For development within an IDE like Eclipse, you can directly point to the web.xml    context.setWar("src/main/webapp");    context.addFilter(MyFilter.class, "/", 1);    HandlerCollection collection = new HandlerCollection();    RequestLogHandler rlh = new RequestLogHandler();    // Slf4j - who uses anything else?    Slf4jRequestLog requestLog = new Slf4jRequestLog();    requestLog.setExtended(false);    rlh.setRequestLog(requestLog);    collection.setHandlers(new Handler[] { context, rlh });    server.setHandler(collection);    try {        server.start();        server.join();    } catch (Exception e) {        // Google guava way        throw Throwables.propagate(e);    }

原始答案===

如果您不想使用web.xml,请使用以下命令:

SocketConnector socketConnector = new SocketConnector();socketConnector.setPort(7000); // Change to port you wantServer server.setConnectors(new Connector[] { socketConnector });WebAppContext webapp = new WebAppContext();webapp.setContextPath("/"); // For rootwebapp.setWar("/"); // Appropriate file system path.// Now you can use the various webapp.addFilter() methodswebapp.addFilter(MyFilter.class, "/test", 1); // Will serve request to /test.// There are 3 different addFilter() variants.// Bonus ... request logs.RequestLogHandler logHandler = new RequestLogHandler();NCSARequestLog requestLog = new NCSARequestLog("/tmp/jetty-yyyy_mm_dd.request.log");requestLog.setRetainDays(90);requestLog.setAppend(true);requestLog.setExtended(false);requestLog.setLogTimeZone("GMT");logHandler.setRequestLog(requestLog);logHandler.setHandler(webapp);HandlerList handlerList = new HandlerList();handlerList.addHandler(logHandler);server.setHandler(handlerList);server.start();

如果确实要使用web.xml而不是addFilter()方法,只需确保您的webapp根路径中具有WEB-INF / web.xml并使用以下xml:

<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app   PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"   "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>    <filter>        <filter-name>filterName</filter-name>        <filter-class>com.x.y.z.FilterClass</filter-class>    </filter>    <filter-mapping>        <url-pattern>/test</url-pattern>        <filter-name>filterName</filter-name>    </filter-mapping></web-app>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414062.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号