CGI applications usually require the programmer to explicitly manage application state storing outsite of the mechanisms provided by the programming language chosen. Web clients are simpling following links (HTTP GET URL requests) or submitting forms (HTTP GET or POST requests). The programmer has to identify each one of them client and explicitly manage the data structures which store the application state, save them on hidden form fields, or, serialized/de-serialize them into/from from disk files, etc... A web application server simplifies most of this job.
There are several web application programming frameworks and commercial products which can help the programmer on this. I*Tea is one of them, for which we will try to briefly describe its features and characteristics.