Какая разница между <%…%> и <%! …%> В JSP

Я добавляю некоторые дополнительные функции на страницу с двумя тегами, упомянутыми в заголовке. Я заметил, что переменная, которую я объявляю в<% ... %>&nbsp;не может быть использован в<%! ... %>&nbsp;и наоборот. В чем разница между ними и как я могу объявить переменные, которые могут быть использованы в двух тегах