Лучшее руководство по Servlet международный в 2024 году. В этом руководстве вы можете изучить Обнаружение локали,примеров,Настройки языка,Дата определенного региона,Валюта определенного региона,Процент определенного региона,
Прежде чем мы начнем, давайте посмотрим на три важных терминов:
Есть некоторые соображения при создании глобального веб-сайта. Этот учебник не объясняет полные подробности этих соображений, он будет проходить хороший пример, чтобы показать вам, как дифференцированное позиционирование (т.е. языковой стандарт), чтобы сделать веб-страницы, представленные на разных языках.
Servlet может выбрать подходящую версию сайта в соответствии с локалью запросчика, а также обеспечить соответствующую версию сайта в соответствии с местным языком, культурой и потребностями. Ниже объект запроса возвращается объект Locale.
java.util.Locale request.getLocale ()
Ниже перечислены важный метод региональные настройки, вы можете использовать их для определения географического местоположения, языка и региональных настроек запрашивающего. Все из следующих методов для отображения названия настроек браузера реквестера названий стран и языков.
序号 | 方法 & 描述 |
---|---|
1 | String getCountry() 该方法以 2 个大写字母形式的 ISO 3166 格式返回该区域设置的国家/地区代码。 |
2 | String getDisplayCountry() 该方法返回适合向用户显示的区域设置的国家的名称。 |
3 | String getLanguage() 该方法以小写字母形式的 ISO 639 格式返回该区域设置的语言代码。 |
4 | String getDisplayLanguage() 该方法返回适合向用户显示的区域设置的语言的名称。 |
5 | String getISO3Country() 该方法返回该区域设置的国家的三个字母缩写。 |
6 | String getISO3Language() 该方法返回该区域设置的语言的三个字母的缩写。 |
Этот пример показывает, как отобразить соответствующий национальный язык и запрос:
импорт java.io. *; импорт javax.servlet * .; импорт javax.servlet.http * .; импорт java.util.Locale; Открытый класс GetLocale расширяет HttpServlet { общественного недействительными doGet (HttpServletRequest запрос, HttpServletResponse ответ) бросает ServletException, IOException { // Получить клиента локали локаль = request.getLocale (); Язык String = locale.getLanguage (); Строка страна = locale.getCountry (); // Установка типа содержимого ответа response.setContentType ( "текст / html; Charset = UTF-8"); PrintWriter Out = response.getWriter (); Строка название = "параметры зоны обнаружения"; Строка DOCTYPE = "\ п <DOCTYPE HTML!>"; out.println (DOCTYPE + "<HTML> \ п" + "<Head> <название>" + название + "</ title> </ голова> \ п" + "<Body BGCOLOR = \" # f0f0f0 \ "> \ п" + "<H1 ALIGN = \" центр \ ">" + язык + "</ h1> \ п" + "<H2 Align = \" центр \ ">" + страна + "</ h2> \ п" + "</ Body> </ html>"); } }
Servlet могут быть экспортированы в западноевропейских языках (например, английский, испанский, немецкий, французский, итальянский, голландский и т.д.), написанных страниц. Вот для того, чтобы правильно отобразить все символы, установить заголовок Content-Language очень важно.
Второй момент заключается в использовании HTML-объекты, чтобы отобразить все специальные символы, такие как "& # 241;" представляет "N", "& # 161;" означает "¡" выглядит следующим образом:
импорт java.io. *; импорт javax.servlet * .; импорт javax.servlet.http * .; импорт java.util.Locale; Открытый класс DisplaySpanish расширяет HttpServlet { общественного недействительными doGet (HttpServletRequest запрос, HttpServletResponse ответ) бросает ServletException, IOException { // Установка типа содержимого ответа response.setContentType ( "текст / html; Charset = UTF-8"); PrintWriter Out = response.getWriter (); // Установка испанского языка кода response.setHeader ( "Content-Language", "ES"); Название String = "En Espa & ntilde; ол"; Строка DOCTYPE = "\ п <DOCTYPE HTML!>"; out.println (DOCTYPE + "<HTML> \ п" + "<Head> <название>" + название + "</ title> </ голова> \ п" + "<Body BGCOLOR = \" # f0f0f0 \ "> \ п" + "<H1>" + "En Espa & ntilde; ола:" + "</ h1> \ п" + "<H1>" + "& iexcl ;! Hola Mundo" + "</ h1> \ п" + "</ Body> </ html>"); } }
Вы можете использовать класс java.text.DateFormat и статические методы getDateTimeInstance () до даты и времени, характерные для языкового стандарта формата. В следующем примере показано, как отформатировать дату, специфичные для данной местности:
импорт java.io. *; импорт javax.servlet * .; импорт javax.servlet.http * .; импорт java.util.Locale; импорт java.text.DateFormat; импорт java.util.Date; Открытый класс DateLocale расширяет HttpServlet { общественного недействительными doGet (HttpServletRequest запрос, HttpServletResponse ответ) бросает ServletException, IOException { // Установка типа содержимого ответа response.setContentType ( "текст / html; Charset = UTF-8"); PrintWriter Out = response.getWriter (); // Получить клиента локали локаль = request.getLocale (); дата String = DateFormat.getDateTimeInstance ( DateFormat.FULL, DateFormat.SHORT, локаль) .format (новая дата ()); Строка название = "языкового стандарта конкретной даты"; Строка DOCTYPE = "\ п <DOCTYPE HTML!>"; out.println (DOCTYPE + "<HTML> \ п" + "<Head> <название>" + название + "</ title> </ голова> \ п" + "<Body BGCOLOR = \" # f0f0f0 \ "> \ п" + "<H1 ALIGN = \" центр \ ">" + дата + "</ h1> \ п" + "</ Body> </ html>"); } }
Вы можете использовать класс java.text.NumberFormat и статические методы getCurrencyInstance () для форматирования чисел (например, длинного двойного типа или типа) в качестве валюты конкретной местности. Следующий пример демонстрирует, как отформатировать валюту, специфичные для данной местности:
импорт java.io. *; импорт javax.servlet * .; импорт javax.servlet.http * .; импорт java.util.Locale; импорт java.text.NumberFormat; импорт java.util.Date; Открытый класс CurrencyLocale расширяет HttpServlet { общественного недействительными doGet (HttpServletRequest запрос, HttpServletResponse ответ) бросает ServletException, IOException { // Установка типа содержимого ответа response.setContentType ( "текст / html; Charset = UTF-8"); PrintWriter Out = response.getWriter (); // Получить клиента локали локаль = request.getLocale (); NumberFormat NFT = NumberFormat.getCurrencyInstance (языковой стандарт); Строка formattedCurr = nft.format (1000000); Название String = "локализированных валюта"; Строка DOCTYPE = "\ п <DOCTYPE HTML!>"; out.println (DOCTYPE + "<HTML> \ п" + "<Head> <название>" + название + "</ title> </ голова> \ п" + "<Body BGCOLOR = \" # f0f0f0 \ "> \ п" + "<H1 ALIGN = \" центр \ ">" + formattedCurr + "</ h1> \ п" + "</ Body> </ html>"); } }
Вы можете использовать класс java.text.NumberFormat и статические методы getPercentInstance () для форматирования процент конкретного языкового стандарта. В следующем примере показано, как отформатировать процент, специфичные для данной местности:
импорт java.io. *; импорт javax.servlet * .; импорт javax.servlet.http * .; импорт java.util.Locale; импорт java.text.NumberFormat; импорт java.util.Date; Открытый класс PercentageLocale расширяет HttpServlet { общественного недействительными doGet (HttpServletRequest запрос, HttpServletResponse ответ) бросает ServletException, IOException { // Установка типа содержимого ответа response.setContentType ( "текст / html; Charset = UTF-8"); PrintWriter Out = response.getWriter (); // Получить клиента локали локаль = request.getLocale (); NumberFormat NFT = NumberFormat.getPercentInstance (языковой стандарт); Строка formattedPerc = nft.format (0,51); Название String = "локаль определенный процент"; Строка DOCTYPE = "\ п <DOCTYPE HTML!>"; out.println (DOCTYPE + "<HTML> \ п" + "<Head> <название>" + название + "</ title> </ голова> \ п" + "<Body BGCOLOR = \" # f0f0f0 \ "> \ п" + "<H1 ALIGN = \" центр \ ">" + formattedPerc + "</ h1> \ п" + "</ Body> </ html>"); } }