Руководство по Servlets. Работа с датой и временем.

В данной статье мы рассмотрим работу с датой и временем с помощью сервлетов.

Дата и время используются крайне часто, именно поэтому класс java.util.Date имеет большое количество удобных методов.

Данный класс содержит следующие методы:

Метод и его описание
1 boolean after(Date date)

Показывает, является ли дата, вызывающая его более поздней, чем указанная в аргументе метода.

2 boolean before(Date date)

Показывает, является ли дата, вызывающая его более ранней, чем указанная в аргументе метода.

3 int compareTo(Date date)

Сравнивает даты. Если равны – возвращает 0. Если вызывающая дата более ранняя  – отрицательное значение. Если более поздняя – положительное.

4 long getTime()

Возвращает время в миллисекундах после 1 Января 1970 года.

5 void setTime(long time)

Устанавливает время указанное в миллисекундах после 1 Января 1970 года.

Для понимания того, как этот класс может быть использован на практике, рассмотрим простой пример.
В качестве основы возьмём приложение из данной статьи.

Класс DateTimeDemo.java


package net.proselyte.servletstutorial;

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;
import java.util.Date;

/**
 * This is simple servlet that demonstrates work with {@link java.util.Date} class.
 *
 * @author Eugene Suelimanov
 */

public class DateTimeDemo extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");

        String docType = "<!DOCTYPE html>";
        String title = "Date and Time Demo";
        Date currentDate = new Date();

        PrintWriter writer = response.getWriter();

        writer.println(docType + "<html>" +
                "<head>" +
                "<title>" + title + "</title>" +
                "</head>" +
                "<body>" +
                currentDate.toString() +
                "</body>" +
                "</html>");
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

Файл 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>Servlets Tutorial</display-name>

    <servlet>
        <servlet-name>SimpleServlet</servlet-name>
        <servlet-class>net.proselyte.servletstutorial.SimpleServlet</servlet-class>
    </servlet>

    <servlet>
        <servlet-name>DateTimeDemo</servlet-name>
        <servlet-class>net.proselyte.servletstutorial.DateTimeDemo</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>SimpleServlet</servlet-name>
        <url-pattern>/SimpleServlet</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>DateTimeDemo</servlet-name>
        <url-pattern>/DateTimeDemo</url-pattern>
    </servlet-mapping>
</web-app>

Выполним в консоли команду:


mvn tomcat7:run

Откроем браузер и перейдём по ссылке:


http://localhost:8088/DateTimeDemo

В результате мы получим страницу с текущей датой и временем:

servletsTutorialDateTimeDemo

На этом мы заканчиваем изучение работы с датой и временем с помощью сервлетов.

В следующей статье мы рассмотрим автоматическое обновление.