410013796724260
• Webmoney
R335386147728
Z369087728698
Пример сервлета, hello!Пример сервлета включает сам сервлет HelloWorld.java и дескриптор приложения web.xml. Сервлет позволяет формировать страницу ответа с использованием кириллицы. Структура примера сервлета в IDE Eclipse представлена на следующем скриншоте.
Листинг примера сервлета HelloWorld.javaПриведенный ниже код реализует простой сервлет HelloWorld.java, возвращающий статическую HTML-страницу браузеру. В примере сервлет наследует свойства HttpServlet, реализующего интерфейс Servlet.
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloWorld extends HttpServlet
{
private ServletConfig config;
@Override
public void init (ServletConfig config) throws ServletException
{
this.config = config;
}
@Override
public void destroy() {}
@Override
public ServletConfig getServletConfig()
{
return config;
}
@Override
public String getServletInfo()
{
return "A Simple Servlet";
}
public void service (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType( "text/html" );
String text = "<!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=UTF-8\"> " +
"<title>Пример сервлета!</title>" +
"</head>" +
"<body>" +
"<h1>Здравствуй, %s %s!</h1>" +
"</body></html>";
text = String.format(text, config.getInitParameter("name"),
config.getInitParameter("mname"));
OutputStream outStream = response.getOutputStream();
outStream.write(text.getBytes("UTF-8"));
outStream.flush();
outStream.close();
}
}
При обращении к сервлету вызывается метод service, который формирует страницу ответа и передает ее в браузер через HttpServletResponse. В первых строках ответа сервера определен заголовок Content-Type с указанием кодировки UTF-8. Дополнительно в шаблон ответа подставляются имя и отчество, получаемые из дескриптора приложения web.xml. То есть, выполняется чтение параметров конфигурации сервлета. Для того, чтобы можно было бы возвращать страницу с кириллицей, используется OutputStream. В выходной поток можно вывести любую информацию (в нашем примере - простой HTML-код). Листинг дескриптора приложения web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:web="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
id="WebApp_9" version="2.4">
<display-name>Servlet Hello World</display-name>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>example.HelloWorld</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>Остап</param-value>
</init-param>
<init-param>
<param-name>mname</param-name>
<param-value>Ибрагимович</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
В дискрипторе приложения web.xml определяются параметры сервлета (наименование servlet-name и класс servlet-class) и параметры инициализации (имя name, отчество mname). Данные параметры сервлет читает с использованием ServletConfig. Для запуска примера сервлета из среды IDE Eclipse необходимо стартовать сервер приложений и в адресной строке браузера ввести следующую строку : http://localhost:8080/ServletHello/hello Браузер отобразит нам приветствие с указанием основного героя произведений Ильфа и Петрова.
Для отдельной компиляции сервлета можно использовать командный файл, текст которого для Windows может иметь следующий вид. SET TOMCAT_LIB="C:\Program Files\Apache Software Foundation\Tomcat\common\lib" SET JAVA_SDK=C:\Java\Sun\SDK\jdk\bin\ %JAVA_SDK%javac -classpath %TOMCAT_LIB%\servlet-api.jar *.java После компиляции сервлет HelloWorld.class необходимо разместить в директории WEB-INF/classes/ WEB-приложения на сервере Tomcat и зарегистрировать в дескрипторе поставки web.xml. На странице Примеры проектов maven данный сервлет участвует в проекте автоматизации сборки с использованием Apache Maven. Скачать примерИсходный код примера сервлета, рассмотренного в тексте страницы, можно скачать здесь (191 Кб). Пример сервлета с использованием графической библиотеки Chart.js для динамического формирования страницы с диаграммами можно посмотреть здесь. |
