列出Java Web应用程序中的servlet(在tomcat中运行)

Juh*_*uh_ 3 java gwt tomcat servlets

我试图重新打包一个相对较大的Java Webapp,但我没有编写代码,并且该项目的配置丢失了。我设置了第一个包装,并将其部署在tomcat中。现在要了解它,我想获得成功启动或失败的servlet的列表,以及相应的访问URL。

  • 有没有办法获取该列表(可能是从一些启动日志中获取)?

一些细节:webapp使用gwt(我不掌握),我在ubuntu上使用tomcat7。如果可行,我不反对使用其他servlet容器的解决方案。

K13*_*139 5

我会写一个简单的方法JSP or ServletContextListenerServletRegistratioins从servlet上下文中读取所有内容并显示它们。

因此,您的JSP / ServletContextListener将从中读取数据

servletContext.getServletRegistrations();
Run Code Online (Sandbox Code Playgroud)

并显示它。

编辑

@WebServlet(urlPatterns = "/mappings")
public class TestServlet extends HttpServlet {

    private static final long serialVersionUID = -7256602549310759826L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        PrintWriter writer = resp.getWriter();

        Map<String, ? extends ServletRegistration> registrations = req
                .getServletContext().getServletRegistrations();

        for (String key : registrations.keySet()) {
            ServletRegistration registration = registrations.get(key);
            writer.write("Name: " + registration.getName());
            writer.write("<br>Mappings:");
            for (String mapping : registration.getMappings()) {
                writer.write(mapping);
            }
        }

        // of course you can write that to log or console also depending on your
        // requirement.
    }

}
Run Code Online (Sandbox Code Playgroud)