пятница, 10 июня 2011 г.

Директива <%@ incude..%> и теги <jsp:include /> и <jsp:forward />

Директива <%@ incude..%&gt; предназначена для того, чтобы подключать на страницу джееспе статические файлы. А тег <jsp:include /> умеет подключать как статические так и динамические файлы. Отличие между этими файлами в том, что статические файлы просто подгружаются в то место страницы, где располагается директива,  и компилируются с самой страницей в один сервлет. Динамические же файлы получают запрос, делают исчисления, и возвращают результат в страницу, и именно результат размещается в странице(получается два отдельных сревлета). Вот поэтому атрибуты директивы <%@ page ... %>, которые определяются в джееспе странице, применяются только к статическим файлам(потому что они являются частью этого же сервлета).


<%@ include file="relativeURL" %> 

Статическими файлами могут быть джееспе, хтмл, текстовые файлы, и код написанный на языке ява.

Джееспе:парам это случай, когда нам нужно использовать переменные для предачи в динамический файл данных.

Тег jsp:forward  используется в тех слечаях, когда нужно перебросить запрос с одной странйцы на другую. Только тут есть нюанс, нельзя выставлять  директивой @пейдж буфер=0, потому что если до тега форвард будут находиться теги, то они полетят уже к клиенту, а нам нужно чтобы ничего с этой страницы не передалось, это возможно в том случае если теги которые находились выше находятся все еще в буфере обмена. Да и кстати этот форвард он происходит на уровне сервера -- браузер ничего об этом не знает, в сравнении с редиректом, когда браузер получает овтет, что ему нужно запросит другой урл, что он и делает.

Урлы кстати могут быть как релейтив(относительно поточной страницы), так и абсолютные (начинаются с "/"). Абсолютные урлы применяются к контексту поточного приложения.


Комментариев нет:

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