Инструменты пользователя

Инструменты сайта


java_jsp

Назад

JSP (Java Server Pages) — технология, позволяющая веб-разработчикам легко создавать содержимое, которое имеет как статические, так и динамические компоненты. По сути, страница JSP является текстовым документом, который содержит текст двух типов: статические исходные данные, которые могут быть оформлены в одном из текстовых форматов (HTML, XML), и JSP элементы, которые конструируют динамическое содержимое.

JSP — одна из высокопроизводительных технологий. Контейнеры сервлетов, способные исполнять JSP страницы, написаны на языке Java, который может работать на различных платформах. JSP страницы загружаются на сервере, а весь код страницы транслируется в java код сервлета, и затем компилируется в байт-код виртуальной машины java (JVM).

Основной синтаксис

Комментарии

Комментарии могут быть вставлены двумя способами

<%-- comment --%>
Или
<!-- comment -->

Объявления

Служат для объявления переменных и методов, которые будут в дальнейшем использованы на jsp страничке. Можно также использовать один из двух видов написания:

<%! declaration; [ declaration; ]+ ... %>

или

<jsp:declaration>   
   code fragment [ declaration; ]+ ...  
</jsp:declaration>

Например:

<%! int i = 0; %>   
<%! int a, b, c; %> 
<%! Circle a = new Circle(2.0); %>

В самом теле объявления, мы можем объявить и проинициализировать переменные, перед их дальнейшем использовании. Сам текст объявления полностью соответствует синтаксису языка Java.

Выражения

Данный тег содержит в себе выражение на языке Java. Выглядеть он будет следующим образом:

<%= expression %>

или

<jsp:expression>    
   expression   
</jsp:expression>

Например:

Текущее время: <%= new java.util.Date() %>
Имя вашего хоста: <%= request.getRemoteHost() %>

Выражение внутри тега вычисляется, преобразуется к типу String и будет вставлено в ответ (response). Заметьте, что выражение может быть только одно и в его конце нет точки с запятой.

Скриплеты

Позволяют вставить в JSP страницу любое количество выражений и объявлений языка Java.

<% code fragment %>

или

<jsp:scriptlet> 
   code fragment    
</jsp:scriptlet>

Например:

<% if (Math.random() < 0.5) { %>
     <B>Удачного</B> вам дня!
<% } else { %>
     <B>Неудачного</B> вам дня!
<% } %>

Скриплеты также имеют доступ к тем же заранее определённым переменным, что и выражения.

Директивы

JSP страница может послать сообщение соответствующему контейнеру с указаниями какие действия необходимо провести. Эти сообщения называются директивами. Все директивы начинаются с <%@, затем следует название директивы и один или несколько атрибутов со значениями, и заканчиваются %>

Директива include

Служит для включения в JSP страницу статичного файла. Синтаксис:

<%@ include file="relativeURL" %>

или

<jsp:directive.include file="relativeURL" />

Например:

include.jsp:

<html>  
<head><title>An Include Test</title></head> 
<body bgcolor="white">  
<font color="blue"> 
The current date and time are   
<%@ include file="date.jsp" %>  
</font> 
</body> 
</html>

date.jsp:

<%@ page import="java.util.*" %>    
<%= (new java.util.Date() ).toLocaleString() %>

На странице выведется:
The current date and time are
Jul 24, 2012 12:01:40

Директива include вставляет текст или код из файла в JSP страницу во время трансляции, когда JSP файл уже откомпилирован. Процесс вставки статичен, т.е. текст из включаемого файла просто будет добавлен в JSP страницу. URL также может содержать путь к файлу, например, «directory1/directory2/date.jsp».

Директива page

Предоставляет атрибуты для JSP страницы. Атрибуты, определённые в этой директиве, внедряются в данную JSP страницу и на все её вложенные статические элементы. Синтаксис:

<%@ page    
   [ language="java" ]  
   [ extends="package.class" ]  
   [ import="{package.class | package.*}, ..." ]    
   [ session="true|false" ] 
   [ buffer="none|8kb|sizekb" ] 
   [ autoFlush="true|false" ]   
   [ isThreadSafe="true|false" ]    
   [ info="text" ]  
   [ errorPage="relativeURL" ]  
   [ contentType="mimeType [ ; charset=characterSet ]" |    
      "text/html ; charset=ISO-8859-1" ]    
   [ isErrorPage="true|false" ] 
   [ pageEncoding="characterSet | ISO-8859-1" ] 
   [ isELIgnored="true|false"]  
%>

или

<jsp:directive.page [ language="java" ] 
   [ extends="package.class" ]  
   [ import="{package.class | package.*}, ..." ]    
   [ session="true|false" ] 
   [ buffer="none|8kb|sizekb" ] 
   [ autoFlush="true|false" ]   
   [ isThreadSafe="true|false" ]    
   [ info="text" ]  
   [ errorPage="relativeURL" ]  
   [ contentType="mimeType [ ; charset=characterSet ]" |    
      "text/html ; charset=ISO-8859-1" ]    
   [ isErrorPage="true|false" ] 
   [ pageEncoding="characterSet | ISO-8859-1" ] 
   [ isELIgnored="true|false"]   />
 

Например: <java java> <%@ page import=«java.util.*, java.lang.*» %> <%@ page buffer=«5kb» autoFlush=«false» %> <jsp:directive.page errorPage=«error.jsp» /> </code>

Каждый атрибут, за исключением import, может быть использован только один раз. Далее рассмотрим некоторые атрибуты директивы page:
import=пакет.class1, пакет.class2, …, пакет.classN — Позволяет вам задать пакеты.
language=java — Данный атрибут предназначен для задания используемого языка программирования.
buffer=размерkb|none — Данный атрибут задаёт объём буферной памяти.
autoflush=true|false — Значение true устанавливает, что при переполнении буферной памяти он автоматически очистится.
errorPage=url — Задаёт JSP страницу, которая вызывается в случае возникновения ошибок и исключений.