Serwlety - data obsługi
Jedną z najważniejszych zalet używania Servlet jest to, że można używać większości metod dostępnych w rdzeniu Javy. Ten samouczek przeprowadzi Cię przez dostarczoną JavęDate klasa, która jest dostępna w java.util pakiet, ta klasa zawiera aktualną datę i godzinę.
Klasa Date obsługuje dwa konstruktory. Pierwszy konstruktor inicjuje obiekt z bieżącą datą i godziną.
Date( )Poniższy konstruktor akceptuje jeden argument, który jest równy liczbie milisekund, które upłynęły od północy 1 stycznia 1970
Date(long millisec)Gdy masz już dostępny obiekt Date, możesz wywołać dowolną z następujących metod wsparcia, aby grać z datami -
| Sr.No. | Metody i opis | 
|---|---|
| 1 | boolean after(Date date) Zwraca wartość true, jeśli wywołujący obiekt Date zawiera datę późniejszą niż określona przez date, w przeciwnym razie zwraca false. | 
| 2 | boolean before(Date date) Zwraca wartość true, jeśli wywołujący obiekt Date zawiera datę wcześniejszą niż określona przez date, w przeciwnym razie zwraca false. | 
| 3 | Object clone( ) Duplikuje wywołujący obiekt Date. | 
| 4 | int compareTo(Date date) Porównuje wartość obiektu wywołującego z wartością date. Zwraca 0, jeśli wartości są równe. Zwraca wartość ujemną, jeśli obiekt wywołujący jest wcześniejszy niż data. Zwraca wartość dodatnią, jeśli obiekt wywołujący jest późniejszy niż data. | 
| 5 | int compareTo(Object obj) Działa identycznie jak compareTo (Date), jeśli obiekt należy do klasy Date. W przeciwnym razie zgłasza ClassCastException. | 
| 6 | boolean equals(Object date) Zwraca wartość true, jeśli wywołujący obiekt Date zawiera tę samą godzinę i datę, co określona przez date, w przeciwnym razie zwraca false. | 
| 7 | long getTime( ) Zwraca liczbę milisekund, które upłynęły od 1 stycznia 1970 r. | 
| 8 | int hashCode( ) Zwraca kod skrótu dla wywołującego obiektu. | 
| 9 | void setTime(long time) Ustawia godzinę i datę zgodnie z godziną, która reprezentuje czas, który upłynął w milisekundach od północy 1 stycznia 1970 r. | 
| 10 | String toString( ) Konwertuje wywołujący obiekt Date na ciąg i zwraca wynik. | 
Pobieranie aktualnej daty i godziny
Bardzo łatwo jest uzyskać aktualną datę i godzinę w Java Servlet. Możesz użyć prostego obiektu Date z metodą toString () , aby wydrukować bieżącą datę i godzinę w następujący sposób -
// Import required java libraries
import java.io.*;
import java.util.Date;
import javax.servlet.*;
import javax.servlet.http.*;
 
// Extend HttpServlet class
public class CurrentDate extends HttpServlet {
 
   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
      // Set response content type
      response.setContentType("text/html");
 
      PrintWriter out = response.getWriter();
      String title = "Display Current Date & Time";
      Date date = new Date();
      String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\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>"
      );
   }
}Teraz skompilujmy powyżej serwlet i utwórzmy odpowiednie wpisy w web.xml, a następnie wywołajmy ten serwlet przy użyciu adresu URL http: // localhost: 8080 / CurrentDate. Dałoby to następujący wynik -
Display Current Date & Time
Mon Jun 21 21:46:49 GMT+04:00 2010
Spróbuj odświeżyć adres URL http: // localhost: 8080 / CurrentDate, a zauważysz różnicę w sekundach przy każdym odświeżaniu.
Porównanie dat
Jak wspomniałem powyżej, możesz użyć wszystkich dostępnych metod Java w swoim serwlecie. W przypadku konieczności porównania dwóch dat, poniżej przedstawiono metody -
- Możesz użyć metody getTime (), aby uzyskać liczbę milisekund, które upłynęły od północy 1 stycznia 1970 r. Dla obu obiektów, a następnie porównać te dwie wartości. 
- Możesz użyć metod przed (), after () i equals (). Ponieważ 12 dzień miesiąca przypada na przykład przed 18. dniem, new Date (99, 2, 12) .before (new Date (99, 2, 18)) zwraca wartość true. 
- Możesz użyć metody compareTo (), która jest definiowana przez interfejs Comparable i implementowana przez Date. 
Formatowanie daty przy użyciu SimpleDateFormat
SimpleDateFormat to konkretna klasa do formatowania i analizowania dat w sposób uwzględniający lokalizację. SimpleDateFormat umożliwia rozpoczęcie od wybrania dowolnych wzorców zdefiniowanych przez użytkownika do formatowania daty i godziny.
Zmodyfikujmy powyższy przykład w następujący sposób -
// Import required java libraries
import java.io.*;
import java.text.*;
import java.util.Date;
import javax.servlet.*;
import javax.servlet.http.*;
 
// Extend HttpServlet class
public class CurrentDate extends HttpServlet {
 
   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
      // Set response content type
      response.setContentType("text/html");
 
      PrintWriter out = response.getWriter();
      String title = "Display Current Date & Time";
      Date dNow = new Date( );
      SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
      String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\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>"
      );
   }
}Ponownie skompiluj powyższy serwlet, a następnie wywołaj go przy użyciu adresu URL http: // localhost: 8080 / CurrentDate. Dałoby to następujący wynik -
Display Current Date & Time
Mon 2010.06.21 at 10:06:44 PM GMT+04:00
Proste kody formatu DateFormat
Aby określić format czasu, użyj łańcucha wzorca czasu. W tym wzorze wszystkie litery ASCII są zarezerwowane jako litery wzoru, które są zdefiniowane w następujący sposób:
| Postać | Opis | Przykład | 
|---|---|---|
| sol | Wyznacznik ery | OGŁOSZENIE | 
| y | Rok za pomocą czterech cyfr | 2001 | 
| M | Miesiąc w roku | Lipiec lub 07 | 
| re | Dzień w miesiącu | 10 | 
| godz | Godzina w godzinach AM / PM (1 ~ 12) | 12 | 
| H. | Godzina w dzień (0 ~ 23) | 22 | 
| m | Minuta za godzinę | 30 | 
| s | Sekunda za minutę | 55 | 
| S | Milisekunda | 234 | 
| mi | Dzień w tygodniu | wtorek | 
| re | Dzień w roku | 360 | 
| fa | Dzień tygodnia w miesiącu | 2 (druga środa lipca) | 
| w | Tydzień w roku | 40 | 
| W. | Tydzień w miesiącu | 1 | 
| za | Znacznik AM / PM | PO POŁUDNIU | 
| k | Godzina w dzień (1 ~ 24) | 24 | 
| K. | Godzina w godzinach AM / PM (0 ~ 11) | 10 | 
| z | Strefa czasowa | Wschodni czas standardowy | 
| ' | Escape dla tekstu | Separator | 
| " | Pojedynczy cudzysłów | ` | 
Pełną listę dostępnych metod manipulowania datą można znaleźć w standardowej dokumentacji języka Java.