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 для динамического формирования страницы с диаграммами можно посмотреть здесь. |