SoftWay EN
FoxyUI 4.0 • Java 21 • Tomcat 10/11

Dezvoltare web în Java fără stivă JavaScript

FoxyUI este un framework web cu interfața randată pe server. Compui interfața din componente Java și tratezi evenimentele pe server; browserul primește doar fragmentele HTML care s-au schimbat. Fără Node.js, fără bundler, fără stare de sincronizat pe client — doar un fișier WAR.

Cum funcționează FoxyUI

Logica de business, validarea și interfața stau într-un singur loc — codul tău Java — peste standarde deschise verificate.

🧱

Arbore de componente Java

Compui Card, Button, TextField, layout-uri și altele, cu un API fluent și tipizat.

⚡

Actualizări HTML parțiale

Construit pe HTMX: după un eveniment serverul trimite doar fragmentele schimbate (out-of-band swaps). Fără DOM virtual, fără reîncărcări complete.

☕

Jakarta Servlet 6 și Java 21

Rulează pe Tomcat 10/11 sau Jetty 12 și folosește fire virtuale pentru concurență mare.

📊

Grafice doar din CSS

Grafice cu bare, coloane, linii și sectoare, desenate din tabele HTML semantice cu Charts.css — fără bibliotecă JS de grafice.

📡

Actualizări în timp real

WebSocket și Server-Sent Events pentru dashboard-uri live, notificări și telemetrie.

🛡️

Sigur din start

Protecție CSRF, validare pe server și o suprafață minimă pe client. Teme luminoasă și întunecată incluse.

Aplicația și codul Java din spatele ei

Simulări în browser ale unor aplicații FoxyUI reale. Alege una, folosește-o și citește codul Java care o definește. Demo-urile și codul sunt în engleză.

📄 Calculator2.java

            

FoxyUI față de o stivă SPA tipică

CriteriuFoxyUIReact / Next.js SPASpring MVC + JSP
LimbajeDoar JavaJava + TypeScriptJava + șabloane
Build frontendNiciunulnpm, Vite/WebpackNiciunul
Actualizarea interfețeiDoar fragmentele schimbateDOM virtual în browserReîncărcarea paginii
JS în browser~25 KB350 KB – câțiva MBVariabil
Starea aplicațieiDoar pe serverDublată client + serverServer
InstalareUn WARServer Node sau CDN + APIWAR

Prima ta pagină FoxyUI în patru pași

  1. Creează un proiect web

    Orice proiect Maven sau Eclipse Dynamic Web Project pentru Java 21 și Jakarta Servlet 6 (Tomcat 10/11).

  2. Adaugă JAR-ul FoxyUI

    Copiază foxyui-4.0.jar în WEB-INF/lib/. Este singura dependență — nimic de instalat pe partea de client.

  3. Scrie o pagină în Java

    public class HelloPage extends FoxyPage {
        private final TextField name = new TextField();
        private final Label greeting = new Label();
        private final Button hello = new Button("Say hello");
    
        @Override
        public void init() {
            hello.onClick(e -> greeting.setText("Hello, " + name.getValue() + "!"));
            add(new Card().add(name, hello, greeting));
        }
    }
  4. Înregistrează ruta și instalează

    FoxyConfig.setProductionMode(true);
    FoxyAppRegistry.registerPage("/hello", "hello", HelloPage::new);

    Mapează FoxyServlet în web.xml, construiește WAR-ul (mvn package sau Eclipse Export → WAR) și instalează-l în Tomcat.

Mai multe detalii tehnice Codul sursă, referința completă a API-ului, note de arhitectură și mai multe exemple. github.com/Ste3fan/FoxyUI

Adaugi AI în aplicație? Descoperă SamurAI.

Un framework Java fără dependențe pentru fluxuri de agenți AI, cu 31 de furnizori LLM.

Descoperă SamurAI →

Întrebări frecvente

Ce este FoxyUI?

FoxyUI este un framework web cu interfața randată pe server, creat de SoftWay. Construiești interfața ca un arbore de componente Java; evenimentele sunt tratate pe server și doar fragmentele HTML schimbate sunt trimise browserului.

Am nevoie de Node.js, npm sau un framework JavaScript?

Nu. FoxyUI vine ca un singur JAR. Un runtime mic de tip HTML-over-the-wire (circa 25 KB) e servit de framework; nu există pas de build pentru frontend.

Unde poate rula o aplicație FoxyUI?

În orice container Jakarta Servlet 6 cu Java 21+, de exemplu Apache Tomcat 10/11 sau Eclipse Jetty 12. Aplicațiile sunt împachetate ca WAR standard.

Este FoxyUI potrivit pentru producție?

Da. Are mod de producție și protecție CSRF integrată, iar toată starea și validarea rămân pe server.