JavaEE 6, w przeciwieństwie do swojej poprzedniczki, wprowadziła sporo zmian w interfejsach służących do tworzenia aplikacji WWW.
Solidny lifting przeszły praktycznie nie modyfikowane od wielu lat serwlety. Servlets 3.0 pozwalają na rozbicie pliku konfiguracyjnego web.xml na kilka części, dzięki czemu różnego rodzaju szkielety aplikacyjne mogą „same siebie” konfigurować – są to wspomniane wcześniej web fragments.
Serwlety mają także wbudowany mechanizm przetwarzania asynchronicznego, dzięki czemu wątek obsługujący klienta nie musi być zatrzymywany na czas odwoływania się do zasobów o wolnym czasie dostępu.
Oczywiście serwlety mogą być konfigurowane teraz przy pomocy metadanych. Można też dodawać serwlety, filtry serwletów do aplikacji dynamicznie, z poziomu kodu.
Kolejną technologią, która została solidnie przemodelowana jest JSF. Ważną zmianą wprowadzoną w JSF 2.0 jest użycie Facelets jako standardowego sposobu tworzenia stron JSF, dzięki czemu od razu pozbywamy się wszelkich problemów związanych z użyciem JSP jako bazy dla stron JSF. Facelets pozwalają na bardzo proste tworzenie szablonów stron JSF, tworzenie własnych komponentów.
JSF 2.0 mają także wbudowane wsparcie dla technologii AJAX, wystarczy zadeklarować na formatce chęć asynchronicznego odwołania do komponentu zarządzanego i właśnie tak będzie ono zrealizowane. Nowy znacznik <f:ajax execute="..." render="..."/> pozwala wskazać jaka metoda ma być wywołana asynchronicznie i jaki fragment strony ma być w wyniku tego wywołania zmieniony. Podobną funkcjonalność znają użytkownicy biblioteki RichFaces.
JSF 2.0 standaryzuje również sposób zarządzania zasobami aplikacji (pliki lokalizacyjne, style CSS, itp.)