Najlepszy samouczek Servlet międzynarodowa W 2024 r. W tym samouczku możesz dowiedzieć się Wykrywanie locale,Przykłady,Ustawienia języka,Data specyficzne narodowe,specyficzne narodowe waluty,Procent specyficzne narodowe,
Zanim zaczniemy, spójrzmy na trzech ważnych kategoriach:
Istnieją pewne rozważania podczas tworzenia globalnej stronie internetowej. Ten poradnik nie wyjaśni wszystkie szczegóły tych rozważań, to minie dobry przykład, aby pokazać, w jaki sposób zróżnicowany pozycjonowanie (tj locale) do stron internetowych prezentowane w różnych językach.
Aplet może wybrać odpowiednią wersję serwisu w zależności od lokalizacji od wnioskodawcy i zapewnić odpowiednią wersję serwisu Zgodnie z miejscowym językiem, kulturą i potrzeb. Poniżej znajduje się obiekt żądania zwrócone Locale obiektu.
java.util.Locale request.getLocale ()
Poniżej wymienione są ważnym sposobem ustawienia regionalne, można ich używać do wykrywania położenia geograficznego, język i ustawienia regionalne żądanie. Wszystkie z poniższych metod, aby wyświetlić nazwę nazwy krajów i języków ustawieniach przeglądarki żądającego.
序号 | 方法 & 描述 |
---|---|
1 | String getCountry() 该方法以 2 个大写字母形式的 ISO 3166 格式返回该区域设置的国家/地区代码。 |
2 | String getDisplayCountry() 该方法返回适合向用户显示的区域设置的国家的名称。 |
3 | String getLanguage() 该方法以小写字母形式的 ISO 639 格式返回该区域设置的语言代码。 |
4 | String getDisplayLanguage() 该方法返回适合向用户显示的区域设置的语言的名称。 |
5 | String getISO3Country() 该方法返回该区域设置的国家的三个字母缩写。 |
6 | String getISO3Language() 该方法返回该区域设置的语言的三个字母的缩写。 |
Ten przykład pokazuje, jak wyświetlić odpowiedni język danego kraju oraz żądanie:
import java.io. *; import javax.servlet * .; import javax.servlet.http * .; import java.util.Locale; public class getLocale rozszerza HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse odpowiedź) rzuca ServletException, IOException { // Pobierz lokum klient Locale locale = request.getLocale (); Język String = locale.getLanguage (); Country Strong = locale.getCountry (); // Ustaw typ zawartości odpowiedzi response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); tytuł String = "Ustawienia stref detekcji"; Ciąg DOCTYPE = "\ n <DOCTYPE html!>"; out.println (DOCTYPE + "<Html> \ n" + "<Head> <title>" + nazwa + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" center \ ">" + język + "</ h1> \ n" + "<H2 align = \" center \ ">" + kraj + "</ h2> \ n" + "</ Body> </ html>"); } }
Servlet mogą być eksportowane do języków zachodnioeuropejskich (takich jak angielski, hiszpański, niemiecki, francuski, włoski, holenderski, itp) pisemnych stron. Tutaj, w celu wyświetlenia poprawnie wszystkie znaki, należy ustawić nagłówek Content-Language jest bardzo ważne.
Drugą kwestią jest wykorzystanie jednostek HTML do wyświetlania wszystkich znaków specjalnych, takich jak "& # 241;" reprezentuje "n", "& # 161;" oznacza "¡" w następujący sposób:
import java.io. *; import javax.servlet * .; import javax.servlet.http * .; import java.util.Locale; public class DisplaySpanish rozszerza HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse odpowiedź) rzuca ServletException, IOException { // Ustaw typ zawartości odpowiedzi response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); // Ustawienie języka hiszpańskiego Kod response.setHeader ( "Content-Language", "es"); tytuł String = "en Espa & ntilde; ol"; Ciąg DOCTYPE = "\ n <DOCTYPE html!>"; out.println (DOCTYPE + "<Html> \ n" + "<Head> <title>" + nazwa + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1>" + "En Espa & ntilde; ol:" + "</ h1> \ n" + "<H1>" + "& iexcl ;! Hola Mundo" + "</ h1> \ n" + "</ Body> </ html>"); } }
Można użyć klasy java.text.DateFormat i metody statyczne getDateTimeInstance (), aby data i godzina specyficzne dla danej lokalizacji formatu. Poniższy przykład pokazuje, jak sformatować datę specyficzne dla danej lokalizacji:
import java.io. *; import javax.servlet * .; import javax.servlet.http * .; import java.util.Locale; import java.text.DateFormat; import java.util.Date; public class DateLocale rozszerza HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse odpowiedź) rzuca ServletException, IOException { // Ustaw typ zawartości odpowiedzi response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); // Pobierz lokum klient Locale locale = request.getLocale (); data String = DateFormat.getDateTimeInstance ( DateFormat.FULL, DateFormat.SHORT, locale) .format (new Date ()); Tytuł: String = "date locale-specific"; Ciąg DOCTYPE = "\ n <DOCTYPE html!>"; out.println (DOCTYPE + "<Html> \ n" + "<Head> <title>" + nazwa + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" center \ ">" + data + "</ h1> \ n" + "</ Body> </ html>"); } }
Można użyć klasy java.text.NumberFormat i metody statyczne getCurrencyInstance () do numerów Format (takich jak długi typu double lub rodzaj waluty) jako lokalizacji specyficzne. Poniższy przykład pokazuje, jak formatować walutę specyficzne dla danej lokalizacji:
import java.io. *; import javax.servlet * .; import javax.servlet.http * .; import java.util.Locale; import java.text.NumberFormat; import java.util.Date; public class CurrencyLocale rozszerza HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse odpowiedź) rzuca ServletException, IOException { // Ustaw typ zawartości odpowiedzi response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); // Pobierz lokum klient Locale locale = request.getLocale (); NUMBERFORMAT NFT = NumberFormat.getCurrencyInstance (narodowe); String formattedCurr = nft.format (1000000); Tytuł: String = "waluty narodowe specyficzne"; Ciąg DOCTYPE = "\ n <DOCTYPE html!>"; out.println (DOCTYPE + "<Html> \ n" + "<Head> <title>" + nazwa + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" center \ ">" + formattedCurr + "</ h1> \ n" + "</ Body> </ html>"); } }
Można użyć klasy java.text.NumberFormat i metody statyczne getPercentInstance (), aby sformatować konkretne lokum procentach. Poniższy przykład pokazuje, jak sformatować procentową właściwą dla danej lokalizacji:
import java.io. *; import javax.servlet * .; import javax.servlet.http * .; import java.util.Locale; import java.text.NumberFormat; import java.util.Date; public class PercentageLocale rozszerza HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse odpowiedź) rzuca ServletException, IOException { // Ustaw typ zawartości odpowiedzi response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); // Pobierz lokum klient Locale locale = request.getLocale (); NUMBERFORMAT NFT = NumberFormat.getPercentInstance (narodowe); String formattedPerc = nft.format (0,51); Tytuł: String = "locale określony procent"; Ciąg DOCTYPE = "\ n <DOCTYPE html!>"; out.println (DOCTYPE + "<Html> \ n" + "<Head> <title>" + nazwa + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" center \ ">" + formattedPerc + "</ h1> \ n" + "</ Body> </ html>"); } }