JavaServer Faces (JSF)
JSF is a Java specification that allows developers to build component-based user interfaces for web apps. Formalized via the Java Community Process, JSF also works as an MVC web framework, simplifying the development of user interfaces for server-based applications by using reusable user interface components in a page.
The Spring Framework is an open-source app framework that also works as an inversion of control container for the Java platform. There are extensions for the creation of web apps on top of the Java EE platform, but Spring's main features can be utilized by any Java application. It doesn't specify a necessary programming model but it is often used as an addition to or replacement for the Enterprise JavaBeans model.
JavaFX UI Development
Traditionally, the Java Application UI has not been much attractive but with JavaFX UI, it is possible to create attractive and eye-catching user interface providing sophisticated and exceptional user experience to java desktop application. It also supports drag and drop UI development with its Scene Builder application.
Hypertext Markup Language (HTML)
JavaServer Pages (JSP)
JSP helps software developers to build dynamically generated web pages based on HTML, XML, and other types of documents.
Yahoo! User Interface Library (YUI)
Swing is part of Oracle's Java Foundation Classes, an API which provides graphical user interfaces for Java programs. Essentially, it is a GUI widget toolkit designed for Java. It was conceived to offer a more advanced set of GUI components than its predecessor, the Abstract Window Toolkit.
JavaFX is a software platform for creating and delivering desktop applications, as well as rich Internet applications (RIAs) that can run across a wide variety of devices. JavaFX is intended to replace Swing as the standard GUI library for Java SE, but both will be included for the foreseeable future. JavaFX has support for desktop computers and web browsers on Microsoft Windows, Linux, and macOS.
Java applets are small applications written in the Java programming language or other programming languages that compile to Java bytecode. They are then delivered to users as Java bytecode. When a user launches a Java applet from a webpage, the applet is executed within a Java virtual machine. This entire process is separate from the actual web browser.
Apache Struts 2 is a web app framework that allows the development of Java EE web apps. It's open-source, extending the Java Servlet API to allow the developer to easily adopt a model-view-controller architecture. Apache Struts has a spin-off, WebWork, which keeps the original Struts architecture while offering plenty of enhancements and refinements.
Java servlets are Java programs that extend servers' capabilities. They are most commonly used to implement applications hosted on web servers, but they can respond to any type of request. The main web servlets can be viewed as Java's counterpart to dynamic web content technologies like PHP and ASP.NET.