Skip to content

Простой сервлет


Простой сервлет это каталог с такой структурой:

simple-servlet
    ├──WEB-INF
    │   ├─lib
    │   ├─classes
    │   │   └─com
    │   │       └─dev_blogs
    │   │           └─TestServlet.java
    │   └─web.xml
    └─index.jsp

который затем заворачивается в варник и деплоится в каталог webapps на сервере.

Поднимем сервлет из под двух сред идеи и эклипса.

В IntelleJ IDEA

Начнем с идеи. Создадим простой мавенский проект в IntelleJ IDEA:
1
Укажем GroupId, ArtifactId и Version соответственно: com.dev_blogs, TestServlet и 1.0_SNAPSHOT:
2
Укажем Project Name как testServlet и нажмем на Finish:
3
Для того, чтобы идея подгружала автоматически добавленные в помчик зависимости, нужно установить чекпоинт Import Maven project automatically в окне Settings:
4
Добавим в проект каталог webapp в котором создадим каталог WEB-INF в который поместим дескриптор развертывания web.xml:
1
Прежде чем собрать проект и задеплоить его на сервер, нужно еще добавить сам сервер.
File->Settings->Build, Execution, Deployment->Application Servers и нажать на плюсик для добавления сервера:
2
Из выпадающего меню Add application server выбрать Tomcat Server:
3
Указываем месторасположения сервера Tomcat:
4
После того как все готово, окно Application Servers будет выглядеть так:
5
Теперь мы готовы собрать и задеплоить проект. Собирать проект будем мавеном из под мавенской панели инструментов (File->Tool Windows->Maven Projects). Нас интересует два мавенских таска, это Clean и Install:
5
А теперь создадим конфигурацию для запуска проекта на сервере Tomcat. Для этого жмем Run->Edit Configurations…:
6
Появится окно Run->Debug Configurations:
7
8
9
10
11

В Eclipse

Теперь сделаем все тоже самое только в эклипсе.
Создадим в эклипсе новый маванский проект File->New->Other… появится диалоговое окно New. Выбираем Maven Project и жмем Next:
1
Далее появится окно New Maven Project жмем Next:
2
В следующем окне выбираем тип проекта. В текстовом поле Filter вводим фильтр webapp и выбираем тип проекта maven-archetype-webapp, жмем Next:
3
В завершающем окне обозначим группу и артифакт для нашего проекта и жмем Finish:
4
В панели Project Explorer проект должен выглядеть так:
5
В этой структуре видно, что отсутствует каталог src/main/java, а в свойствах проекта он обозначен как missing. Для этого выделим missing каталог в окне свойства проекта и удалим его (кнопка Remove):
6
Теперь добавим каталоге src/main/java еще раз, для этого выделяем проект кликаем правой кнопкой мыши New->Source Folder. Появится окно New Source Folder:
7
После того как все сделано, добавим класс сервлета, дескриптор развертывания и зависимость для поддержки сервлета как мы это делали в идее. После того как все сделано, запускаем сервлет на сервере tomcat. Для этого нажимаем по проекту правой кнопкой Run As->Run on Server, появится окно Run on Server где нужно выбрать сервер томкэт из списка Select the server that you want to use и жмем на Finish:
8

Java код

TestServlet.java

package com.dev_blogs;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class TestServlet extends HttpServlet {
    private String message;

    public void init() throws ServletException {
        // Do required initialization
        message = "test Servlet";
    }

    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.
    }
}

Дескриптор развертывания

WEB-INF/web.xml

<!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>
	<display-name>Archetype Created Web Application</display-name>

	<servlet>
		<servlet-name>simpleServlet</servlet-name>
		<servlet-class>com.dev_blogs.TestServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>simpleServlet</servlet-name>
		<url-pattern>/simple</url-pattern>
	</servlet-mapping>
	
</web-app>

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.dev_blogs</groupId>
    <artifactId>tomcat3</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>tomcat3 Maven Webapp</name>
    <url>http://maven.apache.org</url>

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
    <build>
        <finalName>tomcat3</finalName>
    </build>
</project>

После того как сервлет поднялся проверяем его по ссылке http://localhost:8080/testServlet/simple (если сервлет был запущен из под идеи, то без testServlet):
9

Ссылки

Spring Security Hello World Annotation Example
http://stackoverflow.com/questions/2535837/how-to-deploy-ejb-on-server
http://stackoverflow.com/questions/2505966/eclipse-update-problem/2506120#2506120
http://devcolibri.com/4284

Поделиться в социальных сетях

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс