Фреймворки облегчают веб-программирование, они не требуются. Вы можете создавать веб-приложения с использованием простых старых сервлетов и JSP (с контейнером веб-приложений, таких как Tomcat или JBoss) или даже самостоятельно выполнять все операции ввода-вывода HTTP (очевидно, что это бессмысленно с Tomcat и т. Д.).
Фреймворк, такой как Spring с Hibernate и т. Д., Похож на фреймворки в PHP, такие как CakePHP, они облегчают разработку, навязывают программисту разумные шаблоны (MVC), абстрактный код, который всегда будет выполняться одинаково для этого типа приложения. Да, они ограничивают ваш выбор и способности и ограничивают действия, которые вы можете предпринять, в различной степени. Некоторые намного тяжелее, чем другие. Но в мире Java есть большой выбор, который является сильной стороной, но вам просто нужно потратить время на их оценку и выбор, исходя из ваших возможностей.
Возьмите распорки и плитки. Вы можете просто использовать Struts как систему MVC и избегать всех предоставляемых ею служебных тегов JSP. Вам понадобится немного времени, чтобы переписать функциональность, которую вы в конечном итоге используете сами, но этого времени у вас нет, а затем есть отладка, а также знания и опыт в конкретной области, которые вы не можете учитывать.