JWt

A Java Web Toolkit
Download

JWt Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • emweb
  • Publisher web site:
  • http://www.emweb.be/

JWt Tags


JWt Description

A Java Web Toolkit JWt is a Java library for developing interactive web applications that may be deployed within standard Java Servlet containers.JWt is widget-centric and inspired by desktop GUI APIs. To the developer, it offers complete abstraction of any web-specific implementation details, including event handling, graphics support, and pretty URLs.Unlike many page-based frameworks, JWt was designed for creating stateful applications that are at the same time highly interactive (leveraging techinques such as AJAX to their fullest) and accessible (supporting plain HTML browsers), using automatic graceful degradation or progressive enhancement.Interactive, secure and accessiblePage-based frameworks (based on PHP, JSP/JSF, Ruby on Rails, etc...) do not make abstraction of the underlying technologies (HTML/XHTML, JavaScript, CSS, AJAX, Forms, DHTML, SVG/VML/Canvas). As a consequence, a developer needs to be familiar with all of these evolving technologies and is also responsible for graceful degradation when browser support is lacking. The structure of the application follows mostly the page-centric paradigm of early day HTML. This means that not only will you need to implement a controller to indicate how a user moves from page to page, but when using advanced AJAX techniques you will need to design and maintain manually your client-server communication.Generating HTML code or filling HTML templates is prone to security problems such as XSS (Cross-Site-Scripting) by unwillingly allowing JavaScript to be inserted in the page, and CSRF (Cross-Site Request Forgery) by trusting cookies for authentication. These security problems are hard to avoid when as a developer you need to be able to insert self-written JavaScript to improve your web application and thus the framework cannot filter it out.In contrast, a web application developed with JWt is written in only one compiled language (Java), from which the library generates the necessary HTML/XHTML, Javascript, CGI, SVG/VML/Canvas and AJAX code. The responsibility of writing secure and browser-portable web applications is handled by Wt. For example, if available, Wt will maximally use JavaScript and AJAX, but applications developed using Wt will also function correctly when AJAX is not available, or when JavaScript is disabled, by progressively enhancing a plain HTML/CGI application to a rich AJAX application.By using standard Java and JVMs, JWt applications can benefit from any existing Java libraries and JVM features including support for scripting languages.Typical use scenarios: * Web-based enterprise applications with a database backend that require a responsive and dynamic user interface. * Web applications which maximally benefit from modern browser capabilities but with graceful degradation to adhere to W3C accessibility guidelines and be search engine friendly. * Porting of Java desktop applications to the web.Some benefits of using JWt * The library allows you to develop web applications much like you develop Java desktop applications, using your favourite JVM programming language, while benefitting fully from the powerful tools available for (Java) development such as flexible debugging and source code refactoring. * There are no fragile string-based bindings of parameters in templates or XML files, nor do you need to implement tedious (and security critical) request/response controller logic. * Just a library: no need for new conventions which imply behavior or requirements for organizing your source code. * JWt applications have automatic fall-back for non-JavaScript browsers where possible, allowing you to create fully accessible applications, which benefit from AJAX where available. * The toolkit generates standards compliant HTML or XHTML code. * You can include dynamic graphics using a portable, anti-aliased graphics API that uses inline VML, inline SVG or HTML 5 canvas. * The library provides sophisticated high-level widgets that allow plotting of charts and visualising complex tree structures. * Avoid XSS security risks since JWt has complete control over the presentation layer and proactively filters out active tags and attributes. There is no exposure of business logic which stays entirely at the server, and no need for exposing your data using a REST API. * Highly optimized load time and low bandwidth usage, which are affected only by screen complexity but not by application size or bulky JavaScript libraries. * Integrates well with modern object relational mapping techniques such as the Java Persistence API (e.g. Hibernate). Here are some key features of "JWt": Core library: · Supports all major browsers (Firefox/Gecko, Internet Explorer, Safari, Chrome, Konqueror, and Opera) but also plain HTML browsers (tested with Links and Lynx). · Simple deployment in standard servlet containers and JEE application servers. · No need for IDE plugins, because the library is a plain Java library. · Equal behavior with or without support for JavaScript or AJAX, as far as possible, by using graceful degradation or progressive enhancement (the latter using the progressive bootstrap method). · When AJAX is available, only changes are rendered. · Two-phased rendering of changes to the web page, with first visible, and in the background invisible changes (when AJAX is available). When AJAX is not available, only visible contents is rendered. · Support for browser history navigation (back/forward buttons and bookmarks), pretty URLs, and search engine optimization with a unified behavior for plain HTML or AJAX sessions. · Widget centric API that promotes component reuse and increases productivity. Event handling: · Uses an event listener system for server-side event handling, comparable to Java GUI frameworks (SWT, Swing). · Listen for keyboard, mouse, focus and scroll events, and get event details (such as mouse position, modifier buttons, or keyboard key). · Automatic synchronization of form field data. · Possibility to hook in custom JavaScript (e.g. for client-side only event handling), and emit Java signals from this custom JavaScript. · Flexible Drag&Drop API. Native painting system: · Unified painting API which uses the browsers native (vector) graphics support (inline VML, inline SVG, or HTML 5 canvas). · Supports arbitrary painter paths, clipping, text, images, transformations, and stroke and fill styling. · Uses the painting API in conjunction with a WPaintedWidget, or directly using the SVGImage paint device. GUI components: · See also the Widget gallery for an interactive overview of built-in functionality. · Basic widgets: buttons, HTML anchors, checkboxes and radio buttons, combo boxes, containers, file upload control, images, labels, line edits, buttons, etc.. · Form widgets have built-in support for client-side and server-side validation using WValidator classes. · Composite widgets (that are built on top of basic widgets, and use only the JWt public API): calendars, sliders, trees and tree tables, (popup-)menus, in-place edits, virtual images, panels. · Modal and non-modal windows (dialogs and message boxes). · Built-in internationalization using messages resource bundles. · Supports sounds for event feedback. · Flexible charting widgets (cartesian charts and pie charts) based on the native painting API, and JWt's MVC infrastructure. Built-in security: · Enables continuous use of HTTPS through low bandwidth requirements. · Built-in Cross-Site Scripting (XSS) prevention. Rendered text is always filtered against potentially malicious code, making XSS attacks against JWt applications (close to) impossible. · Not vulnerable to Cross-site Request Forgery (CSRF) because cookies are not needed for session tracking. · Not vulnerable to breaking the application logic by skipping to a particular URL, since only those events exposed in the interface can be triggered. Deployment: · Deploy into servlet containers (Tomcat, Jetty) and application servers (JBoss). · Consists out of (currently four) jar files that need to be included in the IDE or used in war/ear archives. · No XML, except for JEE's web.xml and message resource bundles. Requirements: · Java 2 Standard Edition Runtime Environment What's New in This Release: · This release fixes a critical issue in 2.99.4 affecting IE browsers.


JWt Related Software