Jetty setInitParameter不初始化任何参数

jos*_*inm 6 java servlets jetty

我已经嵌入了Jetty,我正在尝试设置初始化参数.

主类Main创建一个Cgi的servlet,它扩展了CGI.

Main中,我有以下代码:

ServletContextHandler context2 = new ServletContextHandler(ServletContextHandler.SESSIONS);
context2.setContextPath("/cgi");
context2.setResourceBase("./cgi-bin");
context2.setInitParameter("commandPrefix", "perl");
context2.addServlet(new ServletHolder(new Cgi()), "/");
server.setHandler(context2);
Run Code Online (Sandbox Code Playgroud)

Cgi中,我查看参数:

public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println(servletConfig.getInitParameter("commandPrefix"));
        super.init(servletConfig);
}
Run Code Online (Sandbox Code Playgroud)

每次,它都会为getInitParameter调用输出null .然后,当Cgi确实需要使用它时,它不会,因为它没有设置.为什么会发生这种情况?

Tim*_*Tim 10

你正在设置InitParameter ServletContextHandler,但你应该在它上面设置它ServletHolder.

(这有点令人困惑,我知道)