Apache Click

Apache Click
Тип вебфреймворк
Розробник Apache Software Foundation
Стабільний випуск 2.3.0 (27 березня 2011; 13 років тому (2011-03-27) [1])
Версії 2.3.0 (27 березня 2011)[2]
Платформа Java (платформа програмного забезпечення)
Операційна система багатоплатформний
Мова програмування Java
Ліцензія Apache License 2.0
Репозиторій https://svn.apache.org/repos/asf/click/, https://github.com/apache/click
Вебсайт click.apache.org

Apache Clickвебфреймворк з відкритим кодом що використовує мову Java та базується на Java Servlet API.

Проєкт розповсюджується під ліцензією Apache License та потребує для роботи JDK(починаючи з версії 1.5).

Click отримав статус первинного проєкту у листопаді 2009, але пізніше був перенесений до репозиторію застарілих проєктів Apache Attic у травні 2014.

Огляд

Основними аспектами дизайну є: простота, легкість у використанні, продуктивність та масштабованість. Це досягається завдяки інтуїтивному інтерфейсу.

Сторінки та компоненти забезпечують гарну інкапсуляцію веб розробки та швидке створення додатків.

Доки сторінки та компоненти розроблюються на Java, шаблони можуть бути написані з використанням Apache Velocity, FreeMarker або Java Server Pages. Також компоненти дають можливість розробникам позбутись надлишкового коду.

Головною різницею між Click та іншими компонентно-орієнтованими вебфреймворками є відсутність використання пам'яті при роботі з дизайном і підтримка сторінок що її використовуватимуть в один час.

Альтернативні фреймворки

Існує декілька інших компонентно-орієнтованих фреймворків доступних для Java: JavaServer Faces, Apache Tapestry, WebObjects, Apache Wicket та Vaadin.

Деякі розробники надають перевагу більш традиційним фреймворкам на MVC моделі: Apache Struts, Spring Framework чи інші.

Приклад

Звичайний Hello World з чотирьох файлів:

hello-world.htm

Шаблоном для Click є Velocity, htm файл буде подібний до звичайної HTML сторінки.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <body>
    <p>$message</p>
  </body>
</html>
HelloWorld.java
Модель сторінки, що прив'язується до шаблону.
package org.wikipedia.click;

import org.apache.click.Page;

public class HelloWorld extends Page {
    /**
     * Constructor
     */
    public HelloWorld() {
        // Add the value to the map ("message" = "$message")
        addModel("message",  "Hello World!");
    }
}
click.xml
Основою Click додатку слугує файл конфігурації click.xml. Він відповідає за сторінки додатку, заголовки та режими роботи.
Click сам зрозуміє що сторінка HelloWorld відповідає класу hello-world.htm. Нам лише потрібно сповістити Click про пакет з класу HelloWorld, у цьому разі це org.wikipedia.click.
Усе це ми робимо через файл конфігурації click.xml, який дозволяє Click прив'язати запити hello-world.htm до класу org.wikipedia.click.HelloWorld.
За умовчуванням ClickServlet завантажить файл конфігурації додатку, використовуючи шлях: /WEB-INF/click.xml.
<?xml version="1.0" encoding="UTF-8"?>
<click-app>
  <pages package="org.wikipedia.click"/>
</click-app>
web.xml
Опис сервлет-додатку:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://java.sun.com/xml/ns/javaee" 
         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
                             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
         id="WebApp_ID" version="2.5">
    <display-name>Click Example</display-name>
    <servlet>
       <servlet-name>click-servlet</servlet-name>
       <servlet-class>org.apache.click.ClickServlet</servlet-class>
       <load-on-startup>0</load-on-startup>
    </servlet>
    <servlet-mapping>
       <servlet-name>click-servlet</servlet-name>
       <url-pattern>*.htm</url-pattern>
    </servlet-mapping>
 </web-app>

Література

  • Daoud, Frederic (Січень 4, 2010). Getting Started With Apache Click (вид. 1). с. 150.

Посилання

  • Apache Click [Архівовано 21 вересня 2015 у Wayback Machine.] — сторінка проєкту.
  • Знайомство з Click (рос.) [Архівовано 1 листопада 2015 у Wayback Machine.]
  • Офіційний блог [Архівовано 7 вересня 2015 у Wayback Machine.]

Виноски

  1. Архівована копія. Архів оригіналу за 1 листопада 2011. Процитовано 16 вересня 2015.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  2. Release 2.3.0 — 2011.
  • п
  • о
  • р
Каркаси вебзастосунків (веб-фреймворки)
ASP.NET
ASP.NET MVC Framework · BFC · DotNetNuke · MonoRail · Umbraco
ColdFusion
ColdSpring · Fusebox · Mach-II · Model-Glue · onTap
Common Lisp
ABCL-web · blow · BKNR · SymbolicWeb · UnCommon Web
Erlang
BeepBeep · Chicago Boss · Erlang Web · ErlyWeb · Inets · Misultin · Mochiweb · Nitrogen · WebMachine · Yaws
Flex
Cairngorm
Java
Apache Cocoon · Apache Struts · Apache Tapestry · AppFuse · Aranea framework · Click Framework · Cooee framework · Flexive · Google Web Toolkit · Grails · Hamlets · IT Mill Toolkit · ItsNat · JavaServer Faces · JBoss Seam · Makumba · Mentawai · Oracle ADF · OpenLaszlo · OpenXava · Play Framework · Reasonable Server Faces · Restlet · RIFE · Shale Framework · SmartClient · Spring Framework · Stripes · ThinWire · WebObjects · WebWork · Apache Wicket · XTT Framework · ZK Framework
Клієнтські для JavaScript
ASP.NET AJAX · AJILE · Clean AJAX · Backbone.js · Dojo toolkit · Echo JS · Ext JS · jQuery · KnockoutJS · MochiKit · Meteor · MooTools · OpenLink AJAX Toolkit · Prototype · React · qooxdoo · Rialto Toolkit · Rico · script.aculo.us · SmartClient · Spry framework · WinJS · Underscore.js · Yahoo! UI Library
Perl
Catalyst[en] · Interchange · Maypole framework · Mason · Mojolicious
PHP
Akelos PHP Framework · CakePHP · Chisimba · CodeIgniter · Drupal · DokuWiki · eZ Publish · FUSE · Horde · Joomla! · Kohana · MODX · Phalcon · PHP For Applications · PHPOpenbiz · PRADO · Qcodo · Seagull PHP Framework · Simplicity PHP framework · Laravel · SilverStripe · Symfony · VirtueMart · Zend Framework · Zoop Framework · Yii
Python
CherryPy · Django · Flask · Karrigell · Nevow · Porcupine · Pylons · Spyce · TurboGears · TwistedWeb · web.py · web2py · Webware · Zope
Ruby
Camping · Nitro · IOWA · Ramaze · Cerise · Merb · Ruby on Rails
Scala
Lift · Play Framework · Scalatra
Серверні для JavaScript
AppJet · firecat · Helma Object Publisher · Node.js
Lua
Dart
Інші
Alpha Five · Fusebox (ColdFusion і PHP) · OpenACS (Tcl) · Seaside (Smalltalk) · HAppS (Haskell)·