O melhor tutorial servlet internacional em 2024. Neste tutorial você pode aprender locale Detecção,Exemplos,Configurações de idioma,local específico Data,local específico moeda,localidade específica percentual,
Antes de começar, vamos olhar para três termos importantes:
Há algumas considerações ao criar um site global. Este tutorial não explica os detalhes completos destas considerações, ele vai passar um bom exemplo para mostrar como posicionamento diferenciado (ou seja, local) para tornar as páginas apresentadas em idiomas diferentes.
Servlet pode escolher a versão apropriada do local de acordo com o local do solicitante, e fornecer a versão apropriada do local de acordo com o idioma local, cultura e necessidades. O seguinte é o objeto do pedido retornado objeto Locale.
java.util.Locale request.getLocale ()
Listados abaixo são importantes método de configuração regional, você pode usá-los para detectar a localização geográfica, idioma e configurações solicitante regional. Todos os seguintes métodos para exibir o nome das configurações do navegador solicitante nomes de país e idioma.
序号 | 方法 & 描述 |
---|---|
1 | String getCountry() 该方法以 2 个大写字母形式的 ISO 3166 格式返回该区域设置的国家/地区代码。 |
2 | String getDisplayCountry() 该方法返回适合向用户显示的区域设置的国家的名称。 |
3 | String getLanguage() 该方法以小写字母形式的 ISO 639 格式返回该区域设置的语言代码。 |
4 | String getDisplayLanguage() 该方法返回适合向用户显示的区域设置的语言的名称。 |
5 | String getISO3Country() 该方法返回该区域设置的国家的三个字母缩写。 |
6 | String getISO3Language() 该方法返回该区域设置的语言的三个字母的缩写。 |
Este exemplo demonstra como para exibir a língua nacional e um pedido:
import java.io. *; importação javax.servlet * .; importação javax.servlet.http * .; importação java.util.Locale; classe pública GetLocale estende HttpServlet { doGet public void (HttpServletRequest pedido, HttpServletResponse resposta) lança ServletException, IOException { // Obter a localidade do cliente local Locale = request.getLocale (); linguagem String = locale.getLanguage (); país String = locale.getCountry (); // Defina o tipo de conteúdo de resposta response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); String title = "configurações de zona de detecção"; Cordas docType = "\ n <DOCTYPE html!>"; out.println (docType + "<Html> \ n" + "<Head> <title>" + título + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" Centro \ ">" + linguagem + "</ h1> \ n" + "<H2 align = \" Centro \ ">" + país + "</ h2> \ n" + "</ Body> </ html>"); } }
Servlet podem ser exportados para idiomas da Europa Ocidental (como o Inglês, Espanhol, Alemão, Francês, Italiano, Holandês, etc.) páginas escritas. Aqui, a fim de exibir todos os caracteres corretamente, defina o cabeçalho Content-Language é muito importante.
O segundo ponto é a utilização de entidades HTML para exibir todos os caracteres especiais, como "& # 241;" representa "N", "& # 161;" significa "¡" como se segue:
import java.io. *; importação javax.servlet * .; importação javax.servlet.http * .; importação java.util.Locale; classe pública DisplaySpanish estende HttpServlet { doGet public void (HttpServletRequest pedido, HttpServletResponse resposta) lança ServletException, IOException { // Defina o tipo de conteúdo de resposta response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); // Definir Idioma Espanhol Código response.setHeader ( "Content-Language", "es"); título String = "En Espa & Ntilde; ol"; Cordas docType = "\ n <DOCTYPE html!>"; out.println (docType + "<Html> \ n" + "<Head> <title>" + título + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1>" + "En Espa & Ntilde; ol:" + "</ h1> \ n" + "<H1>" + "& iexcl ;! Hola Mundo" + "</ h1> \ n" + "</ Body> </ html>"); } }
Você pode usar a classe java.text.DateFormat e métodos estáticos getDateTimeInstance () para data e hora específicas para o local formato. O exemplo a seguir demonstra como formatar uma data específica para uma determinada localidade:
import java.io. *; importação javax.servlet * .; importação javax.servlet.http * .; importação java.util.Locale; importação java.text.DateFormat; import java.util.Date; classe pública DateLocale estende HttpServlet { doGet public void (HttpServletRequest pedido, HttpServletResponse resposta) lança ServletException, IOException { // Defina o tipo de conteúdo de resposta response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); // Obter a localidade do cliente local Locale = request.getLocale (); data String = DateFormat.getDateTimeInstance ( DateFormat.FULL, DateFormat.SHORT, locale) .format (new Date ()); String title = "data específica de localidade"; Cordas docType = "\ n <DOCTYPE html!>"; out.println (docType + "<Html> \ n" + "<Head> <title>" + título + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" Centro \ ">" + data + "</ h1> \ n" + "</ Body> </ html>"); } }
Você pode usar a classe java.text.NumberFormat e métodos estáticos getCurrencyInstance () para formatar números (tais como tipo double long ou tipo) como local específico-moeda. O exemplo a seguir demonstra como formatar uma moeda específica a um determinado local:
import java.io. *; importação javax.servlet * .; importação javax.servlet.http * .; importação java.util.Locale; importação java.text.NumberFormat; import java.util.Date; classe pública CurrencyLocale estende HttpServlet { doGet public void (HttpServletRequest pedido, HttpServletResponse resposta) lança ServletException, IOException { // Defina o tipo de conteúdo de resposta response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); // Obter a localidade do cliente local Locale = request.getLocale (); NumberFormat NFT = NumberFormat.getCurrencyInstance (locale); Cordas formattedCurr = nft.format (1000000); String title = "moeda específica da localidade"; Cordas docType = "\ n <DOCTYPE html!>"; out.println (docType + "<Html> \ n" + "<Head> <title>" + título + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" Centro \ ">" + formattedCurr + "</ h1> \ n" + "</ Body> </ html>"); } }
Você pode usar a classe java.text.NumberFormat e métodos estáticos getPercentInstance () para formatar a localidade específica percentual. O exemplo a seguir demonstra como formatar um percentual específico para uma determinada localidade:
import java.io. *; importação javax.servlet * .; importação javax.servlet.http * .; importação java.util.Locale; importação java.text.NumberFormat; import java.util.Date; classe pública PercentageLocale estende HttpServlet { doGet public void (HttpServletRequest pedido, HttpServletResponse resposta) lança ServletException, IOException { // Defina o tipo de conteúdo de resposta response.setContentType ( "text / html; charset = UTF-8"); PrintWriter out = response.getWriter (); // Obter a localidade do cliente local Locale = request.getLocale (); NumberFormat NFT = NumberFormat.getPercentInstance (locale); Cordas formattedPerc = nft.format (0,51); título String = "locale porcentagem específica"; Cordas docType = "\ n <DOCTYPE html!>"; out.println (docType + "<Html> \ n" + "<Head> <title>" + título + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" Centro \ ">" + formattedPerc + "</ h1> \ n" + "</ Body> </ html>"); } }