Сервлеты — это классы Java, которые обслуживают HTTP-запросы и реализуют интерфейс javax.servlet.Servlet . Разработчики веб-приложений обычно пишут сервлеты, которые расширяют javax.servlet.http.HttpServlet, абстрактный класс, который реализует интерфейс сервлета и специально разработан для обработки HTTP-запросов.
Образец кода
Ниже приведен пример структуры исходного кода примера сервлета, демонстрирующий Hello World —
// Import required java libraries import java.io.*; import javax.servlet.*; import javax.servlet.http.*; // Extend HttpServlet class public class HelloWorld extends HttpServlet { private String message; public void init() throws ServletException { // Do required initialization message = "Hello World"; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set response content type response.setContentType("text/html"); // Actual logic goes here. PrintWriter out = response.getWriter(); out.println("<h1>" + message + "</h1>"); } public void destroy() { // do nothing. } }
Компиляция сервлета
Давайте создадим файл с именем HelloWorld.java с кодом, показанным выше. Поместите этот файл в C: \ ServletDevel (в Windows) или в / usr / ServletDevel (в Unix). Этот путь должен быть добавлен в CLASSPATH, прежде чем продолжить.
Если ваша среда правильно настроена, перейдите в каталог ServletDevel и скомпилируйте HelloWorld.java следующим образом:
$ javac HelloWorld.java
Если сервлет зависит от каких-либо других библиотек, вы должны также включить эти файлы JAR в свой CLASSPATH. Я включил только JAR-файл servlet-api.jar, потому что я не использую никакую другую библиотеку в программе Hello World.
В этой командной строке используется встроенный компилятор javac, поставляемый с Sun Microsystems Java Software Development Kit (JDK). Чтобы эта команда работала правильно, вы должны указать расположение Java SDK, которое вы используете, в переменной среды PATH.
Если все пойдет хорошо, приведенная выше компиляция выдаст файл HelloWorld.class в том же каталоге. В следующем разделе объясняется, как скомпилированный сервлет будет развернут в производстве.
Развертывание сервлета
По умолчанию приложение сервлета находится в пути <Tomcat-instaldirectory> / webapps / ROOT, а файл класса будет находиться в <Tomcat-installationdirectory> / webapps / ROOT / WEB-INF / classes.
Если у вас есть полное имя класса com.myorg.MyServlet , то этот класс сервлета должен находиться в WEB-INF / classes / com / myorg / MyServlet.class.
А пока давайте скопируем HelloWorld.class в <Tomcat-installationdirectory> / webapps / ROOT / WEB-INF / classes и создадим следующие записи в файле web.xml, расположенном в <Tomcat-installation-directory> / webapps / ROOT / WEB- INF /
<servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/HelloWorld</url-pattern> </servlet-mapping>
Над записями, которые будут созданы внутри тегов <web-app> … </ web-app>, доступных в файле web.xml. В этой таблице уже могут быть различные записи, но не берите в голову.
Вы почти закончили, теперь давайте запустим сервер Tomcat, используя <Tomcat-installationdirectory> \ bin \ startup.bat (в Windows) или <Tomcat-InstallationDirectory> /bin/startup.sh (в Linux / Solaris и т. Д.) И, наконец, наберите http: // localhost: 8080 / HelloWorld в адресной строке браузера. Если все будет хорошо, вы получите следующий результат