¿Cuál es la diferencia entre <%…%> y <%! …%> En jsp

Estoy agregando más funcionalidades a una página que tiene las dos etiquetas mencionadas en el título. Noté que la variable que declaro en<% ... %> no se puede usar en<%! ... %> y viceversa. ¿Cuál es la diferencia entre los dos y cómo puedo declarar variables que podrían usarse en las dos etiquetas?

Respuestas a la pregunta(1)

Su respuesta a la pregunta