Директива <%@ incude..%> предназначена для того, чтобы подключать на страницу джееспе статические файлы. А тег <jsp:include /> умеет подключать как статические так и динамические файлы. Отличие между этими файлами в том, что статические файлы просто подгружаются в то место страницы, где располагается директива, и компилируются с самой страницей в один сервлет. Динамические же файлы получают запрос, делают исчисления, и возвращают результат в страницу, и именно результат размещается в странице(получается два отдельных сревлета). Вот поэтому атрибуты директивы <%@ page ... %>, которые определяются в джееспе странице, применяются только к статическим файлам(потому что они являются частью этого же сервлета).
Статическими файлами могут быть джееспе, хтмл, текстовые файлы, и код написанный на языке ява.
Джееспе:парам это случай, когда нам нужно использовать переменные для предачи в динамический файл данных.
Тег jsp:forward используется в тех слечаях, когда нужно перебросить запрос с одной странйцы на другую. Только тут есть нюанс, нельзя выставлять директивой @пейдж буфер=0, потому что если до тега форвард будут находиться теги, то они полетят уже к клиенту, а нам нужно чтобы ничего с этой страницы не передалось, это возможно в том случае если теги которые находились выше находятся все еще в буфере обмена. Да и кстати этот форвард он происходит на уровне сервера -- браузер ничего об этом не знает, в сравнении с редиректом, когда браузер получает овтет, что ему нужно запросит другой урл, что он и делает.
Урлы кстати могут быть как релейтив(относительно поточной страницы), так и абсолютные (начинаются с "/"). Абсолютные урлы применяются к контексту поточного приложения.
<%@ include file="relativeURL" %>
Статическими файлами могут быть джееспе, хтмл, текстовые файлы, и код написанный на языке ява.
Джееспе:парам это случай, когда нам нужно использовать переменные для предачи в динамический файл данных.
Тег jsp:forward используется в тех слечаях, когда нужно перебросить запрос с одной странйцы на другую. Только тут есть нюанс, нельзя выставлять директивой @пейдж буфер=0, потому что если до тега форвард будут находиться теги, то они полетят уже к клиенту, а нам нужно чтобы ничего с этой страницы не передалось, это возможно в том случае если теги которые находились выше находятся все еще в буфере обмена. Да и кстати этот форвард он происходит на уровне сервера -- браузер ничего об этом не знает, в сравнении с редиректом, когда браузер получает овтет, что ему нужно запросит другой урл, что он и делает.
Урлы кстати могут быть как релейтив(относительно поточной страницы), так и абсолютные (начинаются с "/"). Абсолютные урлы применяются к контексту поточного приложения.

Комментариев нет:
Отправить комментарий