Widget based web development in pure Java

JWt is a web GUI library in pure Java. Quickly develop highly interactive web UIs with widgets, without having to write a single line of JavaScript. JWt handles all request handling and page rendering for you, so you can focus on functionality.

Why choose JWt?

You don't want to focus on details like request handling or page rendering. You want your application to continue to work even when JavaScript is unavailable. You just want to write your web application in Java without sacrificing interactivity. JWt allows you to focus on functionality and create highly interactive, secure, and future proof applications quickly.

Save Time

Save Time

JWt handles all the nitty-gritty of requests and responses and client-side JavaScript, and allows you to focus on functionality in pure Java.

Built to Maintain

Built to Maintain

JWt's widget abstraction represents HTML elements as Java objects, allowing them to be easily composable and extendable.

Future Proof

Future Proof

Stay up to date with the latest web technologies without changing your code, thanks to JWt's stable API.

Secure

Secure

JWt is designed to be resilient against the most common types of exploits: XSS and CSRF vulnerabilities.

Contact us for more information
or a personalised quotation

Features

JWt has a lot to offer. It includes the essential basic widgets and building blocks to build web applications, but also offers built-in security, PDF rendering, a 2D and 3D painting system, a charting library, and an authentication framework. You can see the full list of features here, but here's a short overview:


Widget library

Many widgets are included in JWt. For every HTML element there's a corresponding widget. These widgets can emit signals when interacted with, so you can write web applications like desktop applications. Check out the widget gallery for an overview of the widgets that JWt has to offer.


Server side, client optimized

JWt employs a signal-slot system. Instead of worrying about the sending of Ajax requests and serving of pages, you can simply connect the click of a button to a callback function on the server. Take a look at this example in the widget gallery. JWt will use whatever technology available for communication: Ajax or WebSockets, but will fall back on full HTML page loads when JavaScript is unavailable. This makes JWt applications accessible to any browser or web crawler.


Built-in security

JWt automatically protects against misuse by only allowing visible and enabled widgets to be interacted with. This also helps to avoid CSRF attacks, which are doubly avoided because JWt does not store session information in cookies. By using the widget abstraction, JWt discourages the inserting of raw HTML into a web page, preventing XSS attacks. JWt also includes an authentication and registration system with support for OAuth providers like Google, Facebook, and OpenID Connect.


PDF rendering

Create PDFs and render HTML as PDF with JWt's PDF rendering system. Check out PDF rendering in the widget gallery.


2D and 3D painting system

Use a single 2D drawing API with many backends (PNG, JPEG, SVG, HTML canvas, VML, and PDF) so you only need to write your drawing code once to support any web browser and save to many formats. Write server-side (OpenGL) and client-side (WebGL) 3D graphics with a uniform API. JWt's 2D and 3D charting libraries were built on top of this graphics API. Check out the examples in the widget gallery.


Deployed as a Java servlet

JWt acts just like any Java servlet, so it can be deployed using your servlet container of choice. It has support for JSR 356 WebSockets built-in, so you can harness the power of WebSockets, without writing specific code for it.

Latest News

Wt & JWt 3.3.8

  • Posted by Roel
  • 16 August 2017

We uploaded a final Wt and JWt 3.3.8!

Here are the main links:

This release fixes several bugs, and introduces a few small features, like OpenID Connect support.

There’s no Wt 4.0.0 RC3 yet, since few things have changed between the last RC to warrant a release yet. We’ll work on merging some new features now (like SQL Server support in Wt::Dbo) and refocus on getting Wt 4 ready for release.

Some users of (J)Wt