1. Trang chủ
  2. » Thể loại khác

da ngon ngu trong servlet

5 192 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 230,89 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương này không cung cấp cho bạn chi tiết về điều này, nhưng sẽ cung cấp một ví dụ về cách bạn làm Webpage của bạn thể hiện trong nhiều ngôn ngữ khác nhau tới cộng đồng internet.. Dưới

Trang 1

Đa ngôn ngữ (Internationalization) trong Servlet Trước khi vào bài, chúng tôi giải thích 3 khái niệm quan trọng:

Internationalization (i18n): Nghĩa là kích hoạt một trang có khả năng cung cấp

nhiều phiên bản với các ngôn ngữ khác nhau

Localization (l10n): Nghĩa là thêm Resources tới một Website để thích nghi với

một khu vực địa lý hoặc miền văn hóa cụ thể

locale: Đây là một khu vực địa lý hoặc văn hóa cụ thể Nó thường là một ký hiệu

ngôn ngữ được theo sau bởi một ký hiệu quốc gia, phân biệt nhau bởi dấu gạch dưới Ví dụ: en_US biểu diễn English locale cho US

Có một số khái niệm bạn nên quan tâm trong khi xây dựng một Global Website Chương này không cung cấp cho bạn chi tiết về điều này, nhưng sẽ cung cấp một ví dụ về cách bạn làm Webpage của bạn thể hiện trong nhiều ngôn ngữ khác nhau tới cộng đồng internet Một Servlet có thể chọn lựa phiên bản thích hợp của Site dựa trên Locale của người yêu cầu và cung cấp phiên bản Site thích hợp tương ứng với ngôn ngữ, văn hóa, và các yêu cầu khác Dưới đây là các phương thức của đối tượng Request mà trả về đối tượng Locale:

java.util.Locale request.getLocale()

Nhận ra Locale trong Servlet

Bảng dưới liệt kê các phương thức quan trọng có thể sử dụng để thăm dò vị trí, ngôn ngữ, văn hóa và locale của người yêu cầu Tất cả các phương thức này hiển thị tên quốc gia và

bộ tên ngôn ngữ trong trình duyệt của người yêu cầu

STT Phương thức và Miêu tả

1 String getCountry()

Phương thức này trả về mã hóa country/region trong dạng chữ hoa cho Locale này trong định dạng ISO 3166 2-letter

Trang 2

2 String getDisplayCountry()

Phương thức này trả về một tên của country của locale đó mà thích hợp để hiển thị cho người dùng

3 String getLanguage()

Phương thức này trả về mã hóa ngôn ngữ trong dạnh chữ thường cho Locale này trong định dạng ISO 639

4 String getDisplayLanguage()

Phương thức này trả về một tên ngôn ngữ của locale đó mà thích hợp hiển thị cho người dùng

5 String getISO3Country()

Phương thức này trả về một tên 3 ký tự viết tắt cho country của Locale này

6 String getISO3Language()

Phương thức này trả về một tên 3 ký tự viết tắt cho language của Locale này

Ví dụ

Sau đây là ví dụ minh họa cách bạn hiển thị một language và country liên kết với nó cho một Request

import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import

java.util.Locale; public class GetLocale extends HttpServlet{ public

void doGet(HttpServletRequest request, HttpServletResponse

response) throws ServletException, IOException { //Get the client's Locale Locale locale = request.getLocale(); String

language = locale.getLanguage(); String country = locale.getCountry(); // Set response content type response.setContentType("text/html");

PrintWriter out = response.getWriter(); String title = "Detecting

Locale"; String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\n"; out.println(docType +

Trang 3

"<html>\n" + "<head><title>" + title + "</title></head>\n" +

"<body bgcolor=\"#f0f0f0\">\n" + "<h1 align=\"center\">" + language +

"</h1>\n" + "<h2 align=\"center\">" + country + "</h2>\n" +

"</body></html>"); } }

Thiết lập ngôn ngữ trong Servlet

Một Servlet có thể đưa ra một trang được viết bằng một Western European language

chẳng hạn như English, Spanish, German, French, Italian, Dutch, … Ở đây, nó là quan

trọng để thiết lập trường Content-Language Header để hiển thị tất cả ký tự một cách chính

xác

Điểm thứ hai là để hiển thị tất cả ký tự đặc biệt bởi sử dụng các thực thể (đối tượng) HTML

Ví dụ: "&#241;" biểu diễn "ñ", và "&#161;" biểu diễn "¡" như sau:

import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import

java.util.Locale; public class DisplaySpanish extends HttpServlet{

public void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException

{ // Set response content type response.setContentType("text/html");

PrintWriter out = response.getWriter(); // Set spanish language code

response.setHeader("Content-Language", "es"); String title = "En

Espa&ntilde;ol"; 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>" + "En Espa&ntilde;ol:" + "</h1>\n" +

"<h1>" + "&iexcl;Hola Mundo!" + "</h1>\n" + "</body></html>"); } }

Định dạng Date cụ thể cho Locale trong Servlet

Bạn có thể sử dụng lớp java.text.DateFormat và phương thức Static của nó

làgetDateTimeInstance() để định dạng date và time cụ thể cho Locale Ví dụ sau minh họa

cách định dạng Date cụ thể tới một Locale đã cho:

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 extends HttpServlet{ public void

doGet(HttpServletRequest request, HttpServletResponse

response) throws ServletException, IOException { // Set

response content type response.setContentType("text/html"); PrintWriter

out = response.getWriter(); //Get the client's Locale Locale locale =

request.getLocale( ); String date = DateFormat.getDateTimeInstance(

DateFormat.FULL, DateFormat.SHORT, locale).format(new Date( )); String title = "Locale Specific Dates";

String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " +

Trang 4

"transitional//en\">\n"; out.println(docType + "<html>\n" +

"<head><title>" + title + "</title></head>\n" + "<body

bgcolor=\"#f0f0f0\">\n" + "<h1 align=\"center\">" + date + "</h1>\n" +

"</body></html>"); } }

Định dạng Currency cụ thể cho Locale trong Servlet

Bạn có thể sử dụng lớp java.txt.NumberFormat và phương thức Static của nó làgetCurrencyInstance() để định dạng Currency hiện tại (kiểu long hoặc double) trong một

Locale Ví dụ sau minh họa cách định dạng Currency cụ thể tới một Locale đã cho:

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 extends HttpServlet{ public void

doGet(HttpServletRequest request, HttpServletResponse

response) throws ServletException, IOException { // Set

response content type response.setContentType("text/html"); PrintWriter

out = response.getWriter(); //Get the client's Locale Locale locale = request.getLocale( ); NumberFormat nft =

NumberFormat.getCurrencyInstance(locale); String formattedCurr =

nft.format(1000000); String title = "Locale Specific Currency"; 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\">" + formattedCurr +

"</h1>\n" + "</body></html>"); } }

Định dạng Percentage cụ thể cho Locale trong Servlet

Bạn có thể sử dụng lớp java.txt.NumberFormat và phương thức Static của nó

làgetPercentInstance() để nhận Percentage cụ thể của một Locale Ví dụ sau minh họa

cách định dạng Percentage cụ thể tới một Locale đã cho

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 extends HttpServlet{ public void

doGet(HttpServletRequest request, HttpServletResponse

response) throws ServletException, IOException { // Set

response content type response.setContentType("text/html"); PrintWriter

out = response.getWriter(); //Get the client's Locale Locale locale = request.getLocale( ); NumberFormat nft =

NumberFormat.getPercentInstance(locale); String formattedPerc =

nft.format(0.51); String title = "Locale Specific Percentage"; 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

Trang 5

bgcolor=\"#f0f0f0\">\n" + "<h1 align=\"center\">" + formattedPerc +

"</h1>\n" + "</body></html>"); } }

Ngày đăng: 02/12/2017, 22:22

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w