<%
?? response.setHeader("Content-Language","es");
?? out.println("<html><head><title>En Espa\u00f1ol</title></head>");
?? out.println("<body>");
?? out.println("<h3>En espa\u00f1ol</h3>");
?? out.println("\u00f1Hola Mundo!");
?? out.println("</body></html>");
%>
支持多國語言的Hello World
用語選擇語言的頁面:
語言處理頁面代碼:
<%@page contentType="text/plain;charset=UTF-8"
import="java.io.*,java.text.*,java.util.*,javax.servlet.jsp.*" %>
<html>
??? <head>
??????? <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
??????? <title>JSP Page</title>
??? </head>
??? <body>
<%!
?? Locale locale;
?? DateFormat format;
?? JspWriter writer;
%>
<%!
?? //英語
void processEnglish()throws Exception
{
??? locale=new Locale("en","US");
??? format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
??? writer.println("in english");
??? writer.println("<br>");
??? writer.println("HelloWorld");
??? writer.println(format.format(new Date()));
??? writer.flush();
}
?? //中文
void processChinese()throws Exception
{
??? locale=new Locale("zh","");
??? format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
??? writer.println("in Chinese");
??? writer.println("<br>");
??? writer.println("\u4f60\u597d\u4e16\u754c");
??? writer.println(format.format(new Date()));
??? writer.flush();
}
?? //韓國語
void processKorean()throws Exception
{
??? locale=new Locale("ko","");
??? format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
??? writer.println("in Korean");
??? writer.println("<br>");
??? writer.println("\uc548\ud558\uc138\uacc4");
??? writer.println(format.format(new Date()));
??? writer.flush();
}
//.........................其他的語言省略
%>
<%
??? //獲得請求的語種
???? String language=(String)request.getParameter("language");
???? int lan=Integer.parseInt(language);??
%>
<%
?? writer=out;
?? switch(lan)
?? {
?????? case 1:processEnglish();break;
?????? case 2:processChinese();break;
?????? case 3:processKorean();break;
?????? //case 4:processRussian();break;
?????? //case 5:processSpanish();break;
????? // case 6:processJapanese();break;
?? }
%>
??? </body>
</html>
處理的思路很簡單,首先獲得請求的語種,然后根據不同的語言來做不同的處理.