Google Code предлагается на следующих языках: English – Español – 日本語 – 한국어 – Português – Pусский – 中文(简体) – 中文(繁體)
Приложения Java App Engine используют стандарт сервлетов Java для взаимодействия со средой веб-сервера. Файлы приложения, включая скомпилированные классы, JAR, статические файлы и файлы конфигурации упорядочены в структуре, используя стандартный макет WAR для веб-приложений Java. Можно использовать любой процесс разработки для создания веб-сервлетов и каталога WAR. (Архивные файлы WAR пока не поддерживаются SDK.)
В этом руководстве будет использоваться один каталог Guestbook/ для всех файлов проекта. В подкаталоге src/ содержится исходный код Java, а в подкаталоге war/ – все приложение в формате WAR. Процесс сборки компилирует исходные файлы Java и помещает скомпилированные классы в соответствующем местоположении в war/.
Полный каталог проекта выглядит следующим образом:
Guestbook/
src/
...Java source code...
META-INF/
...other configuration...
war/
...JSPs, images, data files...
WEB-INF/
...app configuration...
lib/
...JARs for libraries...
classes/
...compiled classes...
При использовании Eclipse создайте новый проект, нажав кнопку "Новый проект веб-приложения" на панели инструментов:
В поле "Название проекта" укажите Guestbook, а в поле "Пакет" – guestbook. Снимите флажок "Использовать Google Web Toolkit" и убедитесь, что установлен флажок "Использовать Google App Engine". Дополнительную информацию см. в статье Использование плагина Google для Eclipse. Мастер создает структуру каталога и описанные ниже файлы.
Если Eclipse не используется, создайте описанную выше структуру каталога. При ознакомлении со всеми описанными в данном разделе файлами создавайте файлы с указанными местоположениями и именами.
Также можно скопировать шаблон нового проекта, включенный в SDK, в каталог appengine-java-sdk/demos/new_project_template/.
Приложения Java App Engine используют API сервлетов Java для взаимодействия с веб-сервером. Сервлет HTTP – это класс приложения, который может обрабатывать веб-запросы и отвечать на них. Этот класс расширяет класс javax.servlet.GenericServlet или javax.servlet.http.HttpServlet.
Наш проект гостевой книги начинается с одного класса сервлета, простого сервлета, отображающего сообщение.
Если плагин Eclipse не используется, создайте каталоги для пути src/guestbook/, затем создайте описанный ниже файл класса сервлета.
В каталоге src/guestbook/ файл GuestbookServlet.java имеет следующее содержание:
package guestbook;
import java.io.IOException;
import javax.servlet.http.*;
public class GuestbookServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, world");
}
}
Когда веб-сервер получает запрос, он определяет класс сервлета для вызова, используя файл конфигурации, который называется "дескриптором развертывания веб-приложения". Файл называется web.xml и находится в каталоге war/WEB-INF/ в WAR. WEB-INF/ и web.xml являются частями спецификации сервлета.
В каталоге war/WEB-INF/ файл web.xml имеет следующее содержание:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
<servlet>
<servlet-name>guestbook</servlet-name>
<servlet-class>guestbook.GuestbookServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>guestbook</servlet-name>
<url-pattern>/guestbook</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
Этот файл web.xml объявляет сервлет с именем guestbook и сопоставляет его с путем URL /guestbook. Он также указывает, что при каждом получении пользователем пути URL, который еще не сопоставлен сервлету и представляет путь к каталогу в WAR приложения, сервер должен выполнить поиска файла index.html в этом каталоге и его обработку, если он найден.
App Engine требуется дополнительный файл конфигурации для определения способа развертывания и запуска приложения. Этот файл называется appengine-web.xml и находится в WEB-INF/ вместе с web.xml. Он включает зарегистрированный идентификатор приложения (Eclipse создает пустой идентификатор, который необходимо заполнить позже), номер версии приложения и список файлов, которые должны считаться статическими файлами (такие как изображения и CSS) и файлами ресурсов (такие как JSP и другие данные приложения).
В каталоге war/WEB-INF/ файл appengine-web.xml имеет следующее содержание:
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application></application>
<version>1</version>
</appengine-web-app>
appengine-web.xml относится к App Engine и не является частью стандарта сервлета. Файлы схемы XML с описанием формата этого файла в SDK находятся в каталоге appengine-java-sdk/docs/. Дополнительную информацию об этом файле см. в статье Настройка приложения.
SDK App Engine включает приложение веб-сервера, которое можно использовать для тестирования собственного приложения. Сервер имитирует среду и службы App Engine, включая ограничения тестовой среды, хранилище данных и службы.
При использовании Eclipse можно запустить сервер разработки с отладчиком Eclipse. В меню Выполнение выберите Отладить как > Веб-приложение. (Если этот параметр меню отсутствует, выберите меню Окно > Сброс представления..., нажмите ОК, затем снова откройте меню Выполнение.) Информацию о создании конфигурации отладки см. в статье Использование плагина Google для Eclipse.
Если Eclipse не используется, см. статью Использование Apache Ant для получения сведений о скрипте сборки, с помощью которого можно создать проект и запустить сервер разработки. Для запуска сервера с этим скриптом сборки введите следующую команду: ant runserver Чтобы остановить сервер, нажмите Control-C.
Запустите сервер, затем откройте следующий URL в браузере:
Сервер вызывает сервлет и отображает сообщение в браузере.
Теперь у вас есть полноценное приложение App Engine! Вы можете развернуть это простое приветствие и поделиться им с пользователями всего мира.
Это приложение отображает общее приветствие для всех пользователей. Добавим функцию настройки приветствия для каждого посетителя, используя аккаунты Google.
Переходите к разделу Использование службы Users.