Latest web development tutorials

Data Processing Servlet

Uma das vantagens mais importantes da utilização de servlet que pode ser utilizado na maior parte do núcleo Java métodos disponíveis. Este capítulo irá explicaro pacote java.utilfornecido peloDataclasse Java que encapsula a data e hora atual.

classe Date suporta dois construtores. O primeiro construtor para inicializar o objeto a data e hora atual.

Date( )

A seguir construtor aceita um parâmetro que é igual ao número de milissegundos decorridos desde 1 de janeiro de 1970 à meia-noite.

Date(long millisec)

Uma vez que você tem um objeto Data disponível, você pode chamar qualquer uma das seguintes maneiras de usar o suporte Data:

序号方法 & 描述
1boolean after(Date date)
如果调用的 Date 对象中包含的日期在 date 指定的日期之后,则返回 true,否则返回 false。
2boolean before(Date date)
如果调用的 Date 对象中包含的日期在 date 指定的日期之前,则返回 true,否则返回 false。
3Object clone( )
重复调用 Date 对象。
4int compareTo(Date date)
把调用对象的值与 date 的值进行比较。如果两个值是相等的,则返回 0。如果调用对象在 date 之前,则返回一个负值。如果调用对象在 date 之后,则返回一个正值。
5int compareTo(Object obj)
如果 obj 是 Date 类,则操作等同于 compareTo(Date)。否则,它会抛出一个 ClassCastException。
6boolean equals(Object date)
如果调用的 Date 对象中包含的时间和日期与 date 指定的相同,则返回 true,否则返回 false。
7long getTime( )
返回 1970 年 1 月 1 日以来经过的毫秒数。
8int hashCode( )
为调用对象返回哈希代码。
9void setTime(long time)
设置 time 指定的时间和日期,这表示从 1970 年 1 月 1 日午夜以来经过的时间(以毫秒为单位)。
10String toString( )
转换调用的 Date 对象为一个字符串,并返回结果。

Obtém a data e hora atuais

Obtém a data e hora atual no Java Servlet é muito fácil. Você pode usartoStringuma data única do objeto()para a saída de data e hora atual da seguinte forma:

package com.w3big.test;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class CurrentDate
 */
@WebServlet("/CurrentDate")
public class CurrentDate extends HttpServlet {
	private static final long serialVersionUID = 1L;
   
	public CurrentDate() {
		super();
	}
    
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
  		String title = "显示当前的日期和时间";
		Date date = new Date();
		String docType = "<!DOCTYPE html> \n";
		  out.println(docType +
		    "<html>\n" +
			"<head><title>" + title + "</title></head>\n" +
			"<body bgcolor=\"#f0f0f0\">\n" +
			"<h1 align=\"center\">" + title + "</h1>\n" +
			"<h2 align=\"center\">" + date.toString() + "</h2>\n" +
			"</body></html>");
	}

}

Agora, vamos compilar o Servlet acima, e criar a entrada apropriada no arquivo web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
  <servlet>
    <servlet-name>CurrentDate</servlet-name>
    <servlet-class>com.w3big.test.CurrentDate</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>CurrentDate</servlet-name>
    <url-pattern>/TomcatTest/CurrentDate</url-pattern>
  </servlet-mapping>
</web-app>

Então visite http: para chamar o Servlet 8080 / TomcatTest / CurrentDate: // localhost. Isto irá produzir os seguintes resultados:

Tente atualizar a URL http: // localhost: 8080 / TomcatTest / CurrentDate, atualizar a cada poucos segundos diferença que você vai encontrar um tempo de exibição.

comparar datas

Como mencionado acima, você pode usar todos os métodos Java disponíveis em um servlet. Se você precisa comparar duas datas são os seguintes métodos:

  • Você pode usar o getTime () para obter os dois objetos, desde 01 de janeiro de 1970 à meia-noite o tempo decorrido (em milissegundos), então estes dois valores.
  • Você pode usar o método anterior (), depois de () e equals (). Desde o dia 12 até o dia 18, por exemplo, new Date (99, 2, 12) .Antes (new Date (99, 2, 18)) retorna o mês verdade.
  • Você pode usar o método compareTo (), que é definido pela interface Comparável por Data imaginam.

O uso SimpleDateFormat para formatar datas

SimpleDateFormat é uma classe concreta em uma formatação maneira sensível ao local e as datas de análise. SimpleDateFormat permite selecionar qualquer data e hora padrão de formatação definida pelo usuário.

Vamos modificar o exemplo acima, como se segue:

package com.w3big.test;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class CurrentDate
 */
@WebServlet("/CurrentDate")
public class CurrentDate extends HttpServlet {
	private static final long serialVersionUID = 1L;
   
	public CurrentDate() {
		super();
	}
    
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		response.setContentType("text/html;charset=UTF-8");
		
		PrintWriter out = response.getWriter();
		String title = "显示当前的日期和时间";
		Date dNow = new Date( );
		SimpleDateFormat ft = 
				new SimpleDateFormat ("yyyy.MM.dd  hh:mm:ss E a ");
		String docType = "<!DOCTYPE html> \n";
		out.println(docType +
	        "<html>\n" +
	        "<head><title>" + title + "</title></head>\n" +
	        "<body bgcolor=\"#f0f0f0\">\n" +
	        "<h1 align=\"center\">" + title + "</h1>\n" +
	        "<h2 align=\"center\">" + ft.format(dNow) + "</h2>\n" +
	        "</body></html>");
	}

}

Compilar o Servlet anterior novamente e, em seguida, visite http: para chamar o Servlet 8080 / TomcatTest / CurrentDate: // localhost. Isto irá produzir os seguintes resultados:


formato de código de formato de data simples

Usando a cadeia modo de Evento para especificar o formato da hora. Neste modo, todas as letras ASCII são reservados como letras padrão, e as letras são definidos da seguinte forma:

personagem descrição Exemplos
G era indicador AD
y Quatro anos dígito 2001
M Mês do ano Ou 07 de julho
d Os primeiros dias do mês 10
h AM / PM, hora (1 a 12), com 12
H As primeiras horas do dia (0 a 23) 22
m Uma hora após a primeira fracção 30
s Um ponto nos primeiros segundos 55
S milisegundo 234
E A semana da semana terça-feira
D Os primeiros dias do ano 360
F Semana é a semana em que este mês 2 (segunda qua em julho)
w As primeiras semanas do ano 40
W As primeiras semanas de janeiro 1
um AM marca / PM PM
k As primeiras horas do dia (1 a 24) 24
K Com AM / PM hora (0 a 11) 10
z fuso horário Eastern Standard Time
' Fuja para o texto delimitador
" aspas simples `

Para obter uma lista completa dos métodos data de processamento disponíveis para ver, você pode consultar a documentação Java padrão.