JSP - O que há de errado com os scriptlets e o que usar em vez disso [duplicado]

Esta pergunta já tem uma resposta aqui:

Como evitar o código Java nos arquivos JSP? 30 respostas

Eu li sobre JSP em um livro há muitos anos e recentemente decidi aprender por conta própria. Agora eu sei como usar scripts, expressões e declarações JSP

    <%! String str = "Hello World" %>
    <%= str.length() %>
    <% str=str.substring(0,5) %>

Mas li em muitos lugares (neste site e em outros lugares) que não deveria usar scripts. Esta é uma dessas perguntas:Eclipse usando Classes em JSP

Minhas perguntas são:

O que há de errado com os scriptlets?O que eu uso em vez disso?

Agradecemos antecipadamente por qualquer ajuda!

EDITAR:

Eu não uso Servlets, mas insiro meu código JSP em uma página HTML. Os designers de interface do usuário sem conhecimento de Java podem modificar facilmente minha página. Basicamente, eu uso o JSP como um front end para exibir em um banco de dados e fazer atualizações, como quando um usuário faz um pedido.

questionAnswers(3)

yourAnswerToTheQuestion