Для каждого из ваших примеров вот что происходит:
<c:out value="${java.lang.Math.PI}" />
Это ищет переменную или бин с именем java и пытается выполнить метод с именем lang. Вероятно, на вашей JSP-странице нет переменной или компонента, называемого Java, поэтому выходных данных нет.
${java.lang.Math.PI}
Это то же самое, что и выше, только написано только с использованием EL. Это то же самое, что он ищет переменную или бин с именем java.
<%= java.lang.Math.PI %>
Во время компиляции JSP выполняется вычисление java.lang.Math.PI и его запись в JSP. Если вы посмотрите на скомпилированный JSP, то увидите значение, записанное там.
Третий пример оценивает выражение, как если бы вы были в классе Java. В первых двух примерах ожидается, что java будет именем переменной.