gpt4 book ai didi

jetty - 实现 HttpSessionListener 的嵌入式 jetty

转载 作者:行者123 更新时间:2023-12-04 03:14:56 25 4
gpt4 key购买 nike

我正在尝试使用带有代理 servlet 的嵌入式 jetty 实现 HttpSessionListener 接口(interface),我已经注册了 SessionListener,但它根本没有被调用,这是代码,

   public class JettyProxy {

public static void main(String[] args) throws Exception {
Server server = new Server();
CustomProxyServlet customProxyServlet = new CustomProxyServlet();


ServerConnector connector = new ServerConnector(server);
connector.setPort(8888);
server.addConnector(connector);

ConnectHandler proxy = new ConnectHandler();

server.setHandler(proxy);

ServletContextHandler context = new ServletContextHandler(proxy, "/",
ServletContextHandler.SESSIONS);
ServletHolder proxyServlet = new ServletHolder(customProxyServlet);

context.addServlet(proxyServlet, "/*");

if (context.getSessionHandler() == null) {
System.out.println("Session handler is null");
} else {
System.out.println("Session handler is not null");
}

if (context.getSessionHandler().getSessionManager() == null) {
System.out.println("Managaer it null");
} else {
System.out.println("Manager is not null");
}

context.getSessionHandler().addEventListener(new CustomSessionHandler());

server.start();
server.join();
}

}

SessionHandler 不为空,没有触发 session 创建事件,请帮助我,获取 session 事件的程序是什么?

最佳答案

你应该有一个 SessionManager。我通常使用:
org.eclipse.jetty.server.session.HashSessionManager.HashSessionManager()

org.eclipse.jetty.server.session.SessionHandler.SessionHandler(SessionManager 管理器)

那么你应该为上下文设置处理程序

context.setHandler(sessionHandler);

sessionHandler.addEventListener("Your Session Listener");

关于jetty - 实现 HttpSessionListener 的嵌入式 jetty ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17762832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com