Tim Burgan wrote: > I'm wondering if someone can share some advice on how I go about > structuring server-side code that will drive a website (where each page > may be updated in a CMS-like fashion) in such a way that not only is the > site content easy to maintain, but the underlying code as well. Think MVC -- Model/View/Controller: <http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch2.html> (google for many more articles) Just as modern page (markup) best practice stresses separation of structure and styling, good application design separates the data (content), presentation, and business logic for maintainability. At the very simplest, avoid hideous things like: <% out.println("<h2>Mistakes</h2><p>"); %> <% out.println(ContentManager.getData('Mistakes') + "</p>"); :: instead, use something like: <h2><%= sectionTitle %></h2> <p> <%= sectionData %> </p> :: where the values of 'sectionTitle' and 'sectionData' are set for the request by the controller servlet (or equivalent). Additionally, the 'sectionData' value may be set from a method like ContentManager.getData('whatever') but the implementation is flexible; getData() could be accessing a file system, a DB, a Web service, anything -- and you can swap out one data source for another by changing only that single method. MVC is a design pattern, not a Java-only technology, but I think it may be easier to implement in some languages than others. :-) FWIW! -- Hassan Schroeder ----------------------------- hassan at webtuitive.com Webtuitive Design === (+1) 408-938-0567 === http://webtuitive.com dream. code.