Bereitstellung zusätzlicher Servlets 25.02
webforJ leitet alle Anfragen standardmäßig über den WebforjServlet, der in web.xml auf /* gemappt ist. Dieser Servlet verwaltet den Lebenszyklus von Komponenten, Routing und UI-Aktualisierungen, die Ihre webforJ-Anwendung antreiben.
In einigen Szenarien müssen Sie möglicherweise zusätzliche Servlets neben Ihrer webforJ-Anwendung bereitstellen:
- Integration von Drittanbieterbibliotheken, die eigene Servlets bereitstellen
- Implementierung von REST-APIs oder Webhooks
- Verarbeitung von Datei-Uploads mit benutzerdefinierten Prozessen
- Unterstützung von veraltetem servlet-basiertem Code
webforJ bietet zwei Ansätze zur Bereitstellung benutzerdefinierter Servlets alongside Ihrer Anwendung:
The webforj-adding-servlets skill can add REST endpoints, webhooks, and custom servlets. After installing the webforJ AI plugin, ask your assistant:
- "Add a REST endpoint at /api/orders."
- "Wire up a webhook handler for Stripe."
- "Mount Swagger UI at /api/docs."
Ansatz 1: Neumapping von WebforjServlet
Dieser Ansatz remappt den WebforjServlet von /* auf einen spezifischen Pfad wie /ui/*, wodurch der URL-Namespace für benutzerdefinierte Servlets freigegeben wird. Während dies eine Änderung von web.xml erfordert, erhalten benutzerdefinierte Servlets direkten Zugriff auf ihre URL-Muster ohne Proxy-Überkopf.
<web-app>
<!-- WebforjServlet neu gemappt zur Handhabung nur von /ui/* -->
<servlet>
<servlet-name>WebforjServlet</servlet-name>
<servlet-class>com.webforj.servlet.WebforjServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>WebforjServlet</servlet-name>
<url-pattern>/ui/*</url-pattern>
</servlet-mapping>
<!-- Benutzerdefinierter Servlet mit eigenem URL-Muster -->
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>com.example.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/hello-world</url-pattern>
</servlet-mapping>
</web-app>
Mit dieser Konfiguration:
- webforJ-Komponenten sind unter
/ui/zugänglich - Benutzerdefinierter Servlet verarbeitet Anfragen an
/hello-world - Kein Proxy-Mechanismus involviert - direkte Routing im Servlet-Container
Wenn Sie webforJ mit Spring Boot verwenden, gibt es keine web.xml-Datei. Stattdessen konfigurieren Sie das Servlet-Mapping in application.properties:
webforj.servlet-mapping=/ui/*
Diese Eigenschaft remappt WebforjServlet von dem Standard /* auf /ui/*, wodurch der URL-Namespace für Ihre benutzerdefinierten Servlets freigegeben wird. Schließen Sie keine Anführungszeichen um den Wert ein - diese werden als Teil des URL-Musters interpretiert.
Ansatz 2: WebforjServlet Proxy-Konfiguration
Dieser Ansatz behält den WebforjServlet bei /* und konfiguriert benutzerdefinierte Servlets in webforj.conf. Der WebforjServlet fängt alle Anfragen ab und proxied Übereinstimmungen zu Ihren benutzerdefinierten Servlets.
Standard web.xml Konfiguration
<servlet>
<servlet-name>WebforjServlet</servlet-name>
<servlet-class>com.webforj.servlet.WebforjServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>WebforjServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<!-- Benutzerdefinierter Servlet mit eigenem URL-Muster -->
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>com.example.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/hello-world</url-pattern>
</servlet-mapping>
</web-app>
webforJ.conf Konfiguration
servlets: [
{
class: "com.example.HelloWorldServlet",
name: "hello-world",
config: {
foo: "bar",
baz: "bang"
}
}
]
Mit dieser Konfiguration:
WebforjServletverarbeitet alle Anfragen- Anfragen an
/hello-worldwerden anHelloWorldServletweitergeleitet - Der optionale Schlüssel
configbietet Name/Wert-Paare als Initialisierungsparameter für den Servlet