T.M. SoftStudio

feci quod potui, faciant meliora potentes

Купить полную версию книги "Среда разработки Eclipse 4: Руководство разработчика"

Разработка Web-приложений на основе платформы WTP

Servlet + JSP

В сгенерированном дескрипторе развертывания Web-приложения web.xml папки WebContent/WEB-INF каталога проекта указано, что Web-страницей приветствия Web-приложения могут быть страницы index.html, index.htm, index.jsp, default.html, default.htm, default.jsp.

Поэтому в окне Project Explorer среды Eclipse нажмем правой кнопкой мышки на узле папки WebContent проекта, представляющей содержимое WAR-файла приложения, и в контекстном меню выберем команду New | Other | Web | JSP File, нажмем кнопку Next, введем имя файла index.jsp и нажмем кнопку Finish.

В Eclipse-редакторе дополним код страницы index.jsp согласно листинга 14.1.

Листинг 14.1. Код страницы index.jsp Web-приложения

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Insert title here</title>

</head>

<body>

<form method="GET" action='ApplicationServlet' >

<label for="id1">My Data</label>

<input type="radio" id="id1" name="data" value="data"/>

<br><br>

<label for="id2">Undefined</label>

<input type="radio" id="id2" name="data" value="undefined"/>

<br><br>

<input type="submit" value="Submit" />

<br><br>

<input type="reset" value="Reset" />

</form>

</body>

</html>

На странице index.jsp приветствия Web-приложения отображается форма с двумя переключателями и кнопками отправки формы и ее сброса. Для обработчика формы атрибутом action формы указан путь /ApplicationServlet.

Создадим сервлет, обрабатывающий данные формы. Для этого в окне Project Explorer среды Eclipse нажмем правой кнопкой мышки на узле проекта и в контекстном меню выберем команду New | Other | Web | Servlet, нажмем кнопку Next, введем имя пакета и имя класса сервлета ApplicationServlet и нажмем кнопку Finish.

В Eclipse-редакторе дополним код сервлета ApplicationServlet согласно листинга 14.2.

Листинг 14.2. Код сервлета ApplicationServlet

package application;

import java.io.IOException;

import java.util.Map;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@WebServlet("/ApplicationServlet")

public class ApplicationServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public ApplicationServlet() {

super();

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

Map<String, String[]> parameters = request.getParameterMap();

String key="data";

String value=parameters.get(key)[0];

if (value.equals("undefined")){

response.getWriter().write("<h1>What do you want?</h1>");

}

if (value.equals("data")){

request.getRequestDispatcher("/data.jsp").forward(request,response);

} }

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}}

Так как данные формы отправляются методом GET, в методе doGet() обработки сервлетом клиентского GET-запроса извлекается значение параметра data запроса и при выборе клиентом переключателя Undefined формы ему возвращается HTML-страница с текстом «What do you want?», а при выборе переключателя My Data ему возвращается JSP-страница data.jsp.

Для создания JSP-страницы data.jsp в окне Project Explorer среды Eclipse нажмем правой кнопкой мышки на узле папки WebContent проекта и в контекстном меню выберем команду New | Other | Web | JSP File, нажмем кнопку Next, введем имя файла data.jsp и нажмем кнопку Finish.

В Eclipse-редакторе дополним код страницы data.jsp согласно листинга 14.3.

Листинг 14.3. Код страницы data.jsp Web-приложения

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Insert title here</title>

</head>

<body>

<p>Your data here</p>

</body>

</html>

Для запуска Web-приложения из среды Eclipse в окне Project Explorer нажмем правой кнопкой мышки на узле проекта и в контекстном меню выберем команду Run As | Run on Server, в окне мастера выберем локальный сервер Tomcat, созданный выше, и нажмем кнопку Finish.

В результате в Web-браузере откроется страница приветствия Web-приложения с формой (рис. 14.3), при выборе переключателей которой отображаются соответствующие Web-страницы.

Рис. 14.3. Страница приветствия Web-приложения

Для экспорта проекта Web-приложения в готовый для развертывания WAR-файл в окне Project Explorer нажмем правой кнопкой мышки на узле проекта и в контекстном меню выберем команду Export | WAR file, в окне мастера кнопкой Browse выберем каталог экспорта и нажмем кнопку Finish.

Полученный WAR-файл разместим в папке webapps каталога сервера Tomcat, запустим сервер инструментом startup.bat папки bin каталога сервера и в адресной строке Web-браузера введем адрес http://localhost:8080/WebApplication/. В результате в Web-браузере откроется страница приветствия Web-приложения.


Servlet + JSP + JPA