====== Java Web Programming == ===== Overview == All technologies here need a servlet container such as [[:becki:linux:Apache Tomcat]]. The [[wp>Java_Servlet]] API is basically [[http://www.linux-magazin.de/Heft-Abo/Ausgaben/2008/08/Reiches-Angebot|like CGI]]: Servlets dynamically produce HTML Pages. Java Server Pages is is basically like the PHP principle: (Java) Code is embedded in the HTML page. Java Server Faces (JSF) mimic desktop application programming. Apache Tapestry [[http://tapestry.apache.org/|claims]] to have less "cruft and confusion" than JSP. Tapestry [[wp>Tapestry_(programming)|uses MVC]]. Apache Wicked has a first-class component model like Echo. It uses non-intrusive approach to HTML like Tapestry. It automatically manages server-side state. All code written in Java ala Swing. [[http://wicket.apache.org/introduction.html|Source]]. Wicket is [[wp>Apache_Wicket|lightweight]] but for [[wpde>Apache_Wicket|experienced Java programmers]]. Wicket is meant for building [[http://stackoverflow.com/questions/2168249/apache-wicket-vs-apache-click|complex applications]] (think desktop). [[ibm>web/library/wa-aj-wicket/|Intro]] [[Apache Click]] claims to be //simple// and easier than Stuts and Tapestry. It uses no MVC and claims MVC is overkill for web apps. Click uses the Velocity template engine. It uses little XML. [[http://click.apache.org/docs/why-click.html|Source]]. [[ibm>library/wa-apacheclick/|Intro]] Unlike Wicket, Click by default maintains no state, but it comes with [[http://www.avoka.com/click-examples/home.htm|ready to use controls]]. [[http://stackoverflow.com/questions/2168249/apache-wicket-vs-apache-click|Source]]