Il miglior tutorial Servlet internazionale Nel 2024, in questo tutorial puoi imparare locale di rilevamento,Esempi,Impostazioni lingua,locale specifica Data,locale specifica valuta,locale specifica Percentuale,
Prima di iniziare, diamo un'occhiata a tre termini importanti:
Ci sono alcune considerazioni durante la creazione di un sito web globale. Questo tutorial non spiega i dettagli completi di queste considerazioni, passerà un buon esempio per mostrare come il posizionamento differenziato (cioè locale) a fare le pagine web presenti in diverse lingue.
Servlet può scegliere la versione appropriata del sito in base alle impostazioni internazionali del richiedente, e di fornire la versione appropriata del sito in base alla lingua locale, la cultura e le esigenze. Quello che segue è l'oggetto di richiesta oggetto restituito Locale.
java.util.Locale request.getLocale ()
Di seguito sono elencati importante metodo di impostazione regionale, è possibile utilizzare per rilevare la posizione geografica, la lingua e le impostazioni regionali richiedente. Tutti i seguenti metodi per visualizzare il nome delle impostazioni del browser Richiedente nomi di paesi e di lingue.
序号 | 方法 & 描述 |
---|---|
1 | String getCountry() 该方法以 2 个大写字母形式的 ISO 3166 格式返回该区域设置的国家/地区代码。 |
2 | String getDisplayCountry() 该方法返回适合向用户显示的区域设置的国家的名称。 |
3 | String getLanguage() 该方法以小写字母形式的 ISO 639 格式返回该区域设置的语言代码。 |
4 | String getDisplayLanguage() 该方法返回适合向用户显示的区域设置的语言的名称。 |
5 | String getISO3Country() 该方法返回该区域设置的国家的三个字母缩写。 |
6 | String getISO3Language() 该方法返回该区域设置的语言的三个字母的缩写。 |
Questo esempio dimostra come visualizzare la lingua nazionale pertinente e una richiesta:
import java.io. *; import javax.servlet * .; import javax.servlet.http * .; import java.util.Locale; public class GetLocale estende HttpServlet { pubblico doGet void (richiesta HttpServletRequest, HttpServletResponse risposta) getta ServletException, IOException { // Prendi il locale del client locale locale = request.getLocale (); lingua String = locale.getLanguage (); String country = locale.getCountry (); // Impostare il tipo di contenuto della risposta response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); titolo String = "impostazioni di zona di rilevazione"; String docType = "\ n <DOCTYPE html!>"; out.println (docType + "<HTML> \ n" + "<Head> <title>" + titolo + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" centro \ ">" + lingua + "</ h1> \ n" + "<H2 align = \" centro \ ">" + paese + "</ h2> \ n" + "</ Body> </ html>"); } }
Servlet può essere esportato in lingue dell'Europa occidentale (come l'inglese, spagnolo, tedesco, francese, italiano, olandese, ecc) pagine scritte. Qui, al fine di visualizzare correttamente tutti i caratteri, impostare l'intestazione Content-Language è molto importante.
Il secondo punto è quello di utilizzare entità HTML per visualizzare tutti i caratteri speciali, come ad esempio "& # 241;" rappresenta "N", "& # 161;" significa "¡" come segue:
import java.io. *; import javax.servlet * .; import javax.servlet.http * .; import java.util.Locale; public class DisplaySpanish estende HttpServlet { pubblico doGet void (richiesta HttpServletRequest, HttpServletResponse risposta) getta ServletException, IOException { // Impostare il tipo di contenuto della risposta response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); // Imposta lingua spagnola Codice response.setHeader ( "Content-Language", "es"); Titolo String = "En Espa & ntilde; ol"; String docType = "\ n <DOCTYPE html!>"; out.println (docType + "<HTML> \ n" + "<Head> <title>" + titolo + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1>" + "En Espa & ntilde; ol:" + "</ h1> \ n" + "<H1>" + "e iexcl ;! Hola Mundo" + "</ h1> \ n" + "</ Body> </ html>"); } }
È possibile utilizzare la classe java.text.DateFormat e metodi statici getDateTimeInstance () per data e ora specifica per il locale formato. L'esempio seguente mostra come formattare una data specifica per un determinato locale:
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 estende HttpServlet { pubblico doGet void (richiesta HttpServletRequest, HttpServletResponse risposta) getta ServletException, IOException { // Impostare il tipo di contenuto della risposta response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); // Prendi il locale del client locale locale = request.getLocale (); Data String = DateFormat.getDateTimeInstance ( DateFormat.FULL, DateFormat.SHORT, locale) .format (new Date ()); Titolo String = "specifica locale data"; String docType = "\ n <DOCTYPE html!>"; out.println (docType + "<HTML> \ n" + "<Head> <title>" + titolo + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" centro \ ">" + data + "</ h1> \ n" + "</ Body> </ html>"); } }
È possibile utilizzare la classe java.text.NumberFormat e metodi statici getCurrencyInstance () per formattare i numeri (come ad esempio lungo tipo double o tipo) come locale specifica-valuta. L'esempio seguente mostra come formattare una valuta specifica per un determinato locale:
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 estende HttpServlet { pubblico doGet void (richiesta HttpServletRequest, HttpServletResponse risposta) getta ServletException, IOException { // Impostare il tipo di contenuto della risposta response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); // Prendi il locale del client locale locale = request.getLocale (); NumberFormat NFT = NumberFormat.getCurrencyInstance (locale); String = formattedCurr nft.format (1000000); Titolo String = "valuta specifica-locale"; String docType = "\ n <DOCTYPE html!>"; out.println (docType + "<HTML> \ n" + "<Head> <title>" + titolo + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" centro \ ">" + formattedCurr + "</ h1> \ n" + "</ Body> </ html>"); } }
È possibile utilizzare la classe java.text.NumberFormat e metodi statici getPercentInstance () per formattare il locale specifica percentuale. L'esempio seguente mostra come formattare una percentuale specifica di un determinato locale:
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 estende HttpServlet { pubblico doGet void (richiesta HttpServletRequest, HttpServletResponse risposta) getta ServletException, IOException { // Impostare il tipo di contenuto della risposta response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); // Prendi il locale del client locale locale = request.getLocale (); NumberFormat NFT = NumberFormat.getPercentInstance (locale); String = formattedPerc nft.format (0,51); Titolo String = "locale percentuale specifica"; String docType = "\ n <DOCTYPE html!>"; out.println (docType + "<HTML> \ n" + "<Head> <title>" + titolo + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" centro \ ">" + formattedPerc + "</ h1> \ n" + "</ Body> </ html>"); } }