JSP: ¿Qué está mal con los scriptlets y qué usar en su lugar? [Duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo evitar el código Java en archivos JSP? 30 respuestas

Leí sobre JSP en un libro hace muchos años, y recientemente decidí aprender por mi cuenta. Ahora sé cómo usar scriptlets, expresiones y declaraciones JSP

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

Pero he leído en muchos lugares (en este sitio y en otros lugares) que no debería usar scriptlets. Esta es una de esas preguntas:Eclipse usando clases en JSP

Mis preguntas son:

¿Qué hay de malo con los scriptlets?¿Qué uso en su lugar?

¡Gracias de antemano por cualquier ayuda!

EDITAR:

No uso Servlets, pero inserto mi código JSP en una página HTML. Los diseñadores de IU sin conocimiento de Java pueden modificar fácilmente mi página. Básicamente, uso JSP como interfaz para mostrar desde una base de datos y realizar actualizaciones, como cuando un usuario hace un pedido.

Respuestas a la pregunta(3)

Su respuesta a la pregunta