Quando eu programava em ASP, muitas vezes não podia usar componentes COM, e tiunha que fazer tudo em script mesmo. Quando podia fazer COM, geralmente haviam um milhão de restrições e meu componente não fazia nada que eu queria por que o boçal do administrador do Windows 2000 semrpe preocupado com as falhas de segurança (por que ele não começa pelo básico: trocar de SO?) não permitia isso, isso e aquilo.
No início eu nem ligava, mas aí comecei a ler sobre projeto estruturado de software e queria colocar aquilo em módulos.
Após bater muito a cabeça, eu tinha minha divisão em módulos feitos em VBScript que reutilizei por todo o tempo que usei essa tecnologia e é reutilizada até hoje onde eu trabalhava.
A questão é que antes de começar a tentar entender como melhor estruturar um software eu programava jogando códigos no HTML, aquelas páginas do tipo
if (flagAbc=='verdadeiro')
//processe logica
else
<html>
...
</html>
E é assim que muita gente programa. Como falaram muito bem aí dá rpa fazer isso em JSP sem muitoe sforço, a questão é que a comunidade Java está sendo formada em torno de práticas mais elegantes.
Infelizmente, falta também à comunidade Java de uma maneira gera o básico conceitual. Isso faz com que coisas legais inventadas por pessoas que sabem o que fazem como Design Patterns, frameworks e J2EE sejam subutilizadas ou superutilizadas, porque para a pessoa sem experiência vale o que o tutorial XYZ indica.
Resumindo: fale para seus amigos que eles podem continuar fazendo merda em JSP como fazim em ASP ou podem tentar aprender a pensar diferente. A plataforma te dá as duas opções.
Shoes