Apache Click
# Apache Click

Apache Click es un framework para aplicaciones web orientado a páginas y a componentes, desarrollado en Java e implementado mediante la API de Java Servlets.

Se trata de un proyecto libre y de código abierto, cuyos resultados se distribuyen bajo la licencia Apache y que se ejecuta en cualquier instalación de JDK (versión 1.5 o superior).

Click se graduó como proyecto top level de Apache en noviembre de 2009. El proyecto se retiró en mayo de 2014.

## Resumen

Los objetivos de diseño principales del proyecto son la simpleza, la facilidad de uso, el desempeño y la escalabilidad. Para lograr estos objetivos, Click presenta un diseño intuitivo, orientado a páginas y componentes.

Páginas y componentes representan una buena manera de encapsular los conceptos de la web y permiten el desarrollo rápido de aplicaciones.

Click aplica un enfoque pragmático, siendo pocas las abstracciones que resulta necesario aprender y entender. El API de Java Servlets se encuentra plenamente al alcance del desarrollador, lo que facilita la conversión de aplicaciones desde un framework basado en acciones a uno basado en componentes.

Las páginas y las componentes se desarrollan en Java mientras que las plantillas se escriben en Velocity, FreeMarker o JSP. Las propias componentes saben cómo representarse a sí mismas, aliviando a los desarrolladores de la tarea de manutención de markup redundantes.

Una diferencia central entre Click y otros frameworks orientados a componentes consiste en que Click, por su propio diseño, no maneja estados, aunque sí soporta páginas dotadas de estado.

## Otros frameworks

Existen varios otros frameworks orientados a componentes para Java, tales como JSF, Tapestry, WebObjects y Apache Wicket.

Algunos desarrolladores prefieren usar frameworks más tradicionales basados en acciones, entre los que se incluyen Apache Struts, Spring MVC y Stripes.

## Ejemplo

Una aplicación Click tipo Hola mundo, con cuatro archivos:

### hello-world.htm

    El motor de plantillas por defecto para Click es Velocity, al archivo .htm será similar a una página normal, estática HTML.

### HelloWorld.java

    El modelo de página que será ligado a la plantilla.

### click.xml

    El núcleo de una aplicación Click es el archivo de configuración click.xml. En este archivo se especifican las páginas de la aplicación, los encabezamientos, el objeto de formato, así como el modo de la aplicación.
    Click es suficientemente inteligente para reconocer que la clase de página HelloWorld debe enlazarse con la plantilla hello-world.htm. Solo se le necesita informar a Click del paquete al que pertenece la clase HelloWorld, en este caso org.wikipedia.click. Esto se hace por medio del archivo de configuración click.xml que le permite a Click mapear las peticiones de hello-world.htm a la clase de página org.wikipedia.click.HelloWorld.
    Por defecto, el ClickServlet intentará cargar el archivo de configuración de la aplicación usando la ruta: /WEB-INF/click.xml

### web.xml

    La definición de la aplicación en términos de servlet.
