blob: 4434b5aa3499902688a5f066bf5ac9063658d139 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<!--
Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0, which is available at
http://www.eclipse.org/legal/epl-2.0.
This Source Code may also be made available under the following Secondary
Licenses when the conditions for such availability set forth in the
Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
version 2 with the GNU Classpath Exception, which is available at
https://www.gnu.org/software/classpath/license.html.
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-->
<TITLE>Application Server i18n technology samples</TITLE>
<META NAME="GENERATOR" CONTENT="StarOffice 6.0 (Win32)">
<META NAME="CHANGEDBY" CONTENT="Chand Basha">
</HEAD>
<BODY LANG="">
<P><FONT FACE="Times New Roman"><FONT SIZE=6><SPAN LANG="en-US"><B>Welcome
to the Application Server i18n technology samples</B></SPAN></FONT></FONT></P>
<P><FONT FACE="Thorndale, serif"><FONT SIZE=4 STYLE="font-size: 16pt"><SPAN LANG="en-US"><B>Overview</B></SPAN></FONT></FONT></P>
<P><FONT FACE="Thorndale, serif"><SPAN LANG="en-US"><FONT FACE="Thorndale, serif">The
i18n technology samples are collection of servlets and jsps used to
demonstrate the i18n capabilities of the Application Server. The
samples cover some of the most frequently used features of Java
Servlet and Java Server Pages Specification Implementation in the
Application Server.<BR><BR></FONT><A HREF="/i18n-simple/servlets.html"><FONT FACE="Thorndale, serif">Servlet
Samples</FONT></A></SPAN></FONT></P>
<P><FONT FACE="Thorndale, serif"><FONT SIZE=3><SPAN LANG="en-US">The
servlet samples are collection of simple servlets that provide
details such as Formatting dates, including a servlet, forwarding
request to another servlet, sending localized error messages, setting
character encoding to interpret the request, internationalizing
servlets using resource bundles and forwarding request to another
resource such as jsp.</SPAN></FONT></FONT></P>
<P><FONT FACE="Thorndale, serif"><SPAN LANG="en-US"><FONT FACE="Thorndale, serif"><A HREF="/i18n-simple/ResourceJsp.jsp">Internationalizing
JSP with Resource Bundle</A><BR>The simple ResourceJsp.jsp uses two
resource bundles (LocalStrings.properties and
LocalStrings_ja.properties) and loads appropriate bundle based on the
browser's language settings. To verify that the
LocalStrings_ja.properties file is loading properly, change your
browser's language settings to "ja". <A HREF="/i18n-simple/ResourceJsp.jsp">Click
here</A> to run this sample. If you want to try with any other
resource bundle say "zh", copy LocalStrings_ja.properties
file to LocalStrings_zh.properties and add chinese (unicode data) to
LocalStrings_zh.properties file. Change your browser's language
settings to "zh".</FONT></SPAN></FONT></P>
<P><FONT FACE="Thorndale, serif"><SPAN LANG="en-US"><FONT FACE="Thorndale, serif"><A HREF="/i18n-simple/usejsp.html">Using
Java Bean with jsp</A><BR>The simple UseBeanJsp.jsp uses the usebean
property to set and get the values from a Java Bean. <A HREF="/i18n-simple/usejsp.html">Click
here</A> to run this sample. On the screen displayed, enter your name
and greeting message (in desired language) and click Submit. The jsp
displays the entered information.</FONT></SPAN></FONT></P>
<P><FONT FACE="Thorndale, serif"><SPAN LANG="en-US"><FONT FACE="Thorndale, serif"><FONT SIZE=4><A HREF="/i18n-simple/TaglibJsp.jsp"><FONT SIZE=3>Simple
Custom Tag</FONT></A><B><BR></B><FONT SIZE=3>The simple TaglibJsp
uses a tag library i18ntaglib to display localized messages from
resource bundles to the user. For this sample we are using
LocalStrings_ja.properties resource bundle and the language is set to
"ja". If you want to try with any other resource bundle say
"zh", copy LocalStrings_ja.properties file to
LocalStrings_zh.properties and add chinese (unicode data) to
LocalStrings_zh.properties file. In the TaglibJsp.jsp file change the
line:<BR>&lt;i18n:message name="LocalStrings" key="thanks"
language="ja" country="JP" /&gt; to<BR>&lt;i18n:message
name="LocalStrings" key="thanks" language="zh"
country="CN" /&gt;<BR>Once you are done with the changes,
run "asant all" from the directory "src" and
restart your server instance. Change your browser's language setting
to "zh" and verify that the resource bundle is loaded
properly and the chinese characters displayed properly.<BR><BR></FONT></FONT><A HREF="/i18n-simple/servletfilter.html">Simple
Filter</A><BR>A Filter is a component that is invoked by the servlet
container when a client requests a resource that the Filter is
configured to, such as a Servlet or URL. In this example we use a
simple filter called SimpleFilter, that sets the request's character
encoding based on two initialization parameters, usefilter and
encoding defined in web.xml file. The parameter "usefilter"
value can be set either to "true" or "false". The
parameter "encoding" can be set to any valid encoding. In
this example, we have set it to "UTF-8". Depending on this
value, the filter sets the character encoding accordingly. Though the
filters can be used for all the requests received by the container,
in this example we will use the SimpleFilter to serve requests for a
specific servlet resource, SimpleFilterServlet. Once you click on the
above link (Set character encoding using a Filter), a html page will
be displayed whose content type is set to UTF-8. Enter some multi
byte data into the form and click Submit. The resulting page displays
the data you have entered. If you want to try with any other
encoding, for example GB2312, modify the line in web.xml UTF-8 to
GB2312. And modify the line in servletfilter.html<BR>&lt;META
HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8"&gt; with <BR>&lt;META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=GB2312"&gt;.
Once you are done with the changes, run "asant all" from the directory "src"
and restart your server instance.</FONT></SPAN></FONT></P>
<P><FONT FACE="Thorndale, serif"><SPAN LANG="en-US"><FONT FACE="Thorndale, serif"><A HREF="/i18n-simple/localecharset.html">Locale
charset mapping</A><BR>The Application Server's web container
provides a locale-charset mapping to set the request's character
encoding if there is no encoding specified to interpret the request.
The mapping definition is available in sun-web.xml file. This simple
servlet reads the request parameter using the encoding specified in
the locale-charset mapping table.<BR><BR><B>How it works</B></FONT><BR>The
locale-charset mapping information provided in sun-web.xml file is
used by the application server to set request's character encoding if
the application does not call setCharacterEncoding() on request
object. Here is the priority list for different approaches used by
the application server.<BR></SPAN></FONT><BR><BR>
</P>
<TABLE WIDTH=442 BORDER=1 CELLPADDING=0 CELLSPACING=3>
<COL WIDTH=241>
<COL WIDTH=190>
<THEAD>
<TR VALIGN=TOP>
<TH WIDTH=241>
<P><FONT FACE="Thorndale, serif"><SPAN LANG="en-US">Character
encoding of the request</SPAN></FONT></P>
</TH>
<TH WIDTH=190>
<P><FONT FACE="Thorndale, serif"><SPAN LANG="en-US">Priority</SPAN></FONT></P>
</TH>
</TR>
</THEAD>
<TBODY>
<TR>
<TD WIDTH=241 VALIGN=TOP>
<P><FONT FACE="Thorndale, serif"><SPAN LANG="en-US">SetCharacterEncoding()</SPAN></FONT></P>
</TD>
<TD WIDTH=190 SDVAL="1" SDNUM="1041;">
<P ALIGN=CENTER><FONT FACE="Thorndale, serif"><SPAN LANG="en-US">1</SPAN></FONT></P>
</TD>
</TR>
<TR>
<TD WIDTH=241 VALIGN=TOP>
<P><FONT FACE="Thorndale, serif"><SPAN LANG="en-US">Hidden field</SPAN></FONT></P>
</TD>
<TD WIDTH=190 VALIGN=BOTTOM SDVAL="2" SDNUM="1041;">
<P ALIGN=CENTER><FONT FACE="Thorndale, serif"><SPAN LANG="en-US">2</SPAN></FONT></P>
</TD>
</TR>
<TR>
<TD WIDTH=241 VALIGN=TOP>
<P><FONT FACE="Thorndale, serif"><SPAN LANG="en-US">Locale-charset
info</SPAN></FONT></P>
</TD>
<TD WIDTH=190 VALIGN=BOTTOM SDVAL="3" SDNUM="1041;">
<P ALIGN=CENTER><FONT FACE="Thorndale, serif"><SPAN LANG="en-US">3</SPAN></FONT></P>
</TD>
</TR>
<TR>
<TD WIDTH=241 VALIGN=TOP>
<P><FONT FACE="Thorndale, serif"><SPAN LANG="en-US">Default
(ISO-8859-1)</SPAN></FONT></P>
</TD>
<TD WIDTH=190 VALIGN=BOTTOM SDVAL="4" SDNUM="1041;">
<P ALIGN=CENTER><FONT FACE="Thorndale, serif"><SPAN LANG="en-US">4</SPAN></FONT></P>
</TD>
</TR>
</TBODY>
</TABLE>
<P><FONT FACE="Thorndale, serif"><SPAN LANG="en-US"><BR>If the
application does not set request encoding using
setCharacterEncoding(), the application server looks for the hidden
field in the request header. If there is any value specified, the
application server uses the hidden value to call
setCharacterEncoding() method on servlet request. If the hidden field
is not available, the application server looks at the language header
to get the locale of the request. If the request locale matches with
the the locale defined in locale-charset mapping table, the
application server uses the corresponding encoding to call
setCharacterEncoding() on servlet request. If there is no locale
available in the request header, the application server uses the
encoding associated with the default locale defined in locale-charset
mapping table. If there is no default locale defined in
locale-charset mapping table of sun-web.xml file, then the
application server uses ISO-8859-1 as default encoding to read the
request parameters.</SPAN></FONT></P>
<P STYLE="margin-bottom: 0cm"><FONT FACE="Thorndale, serif"><SPAN LANG="en-US"><B>Trouble
Shooting</B><BR><BR>If you use the samples with japanese characters
using Netscape Communicator 4.x browser on Windows NT/2000, you may
see the characters as square boxes or corrupted instead of Japanese
characters. In this case, you will need to install unicode font or
Japanese font on your system.</SPAN></FONT></P>
<P><FONT FACE="Thorndale, serif"><SPAN LANG="en-US"><B>Download and
install Bitstream Cyberbit font:</B><BR><BR>Download bitstream
cyberbit font (geottf.zip) , to a temp directory. Use an utility such as
winzip to decompress the zip file. To install the font, double click
"my computer" --> "control panel" --> "fonts".
Select File -->; Install new font and select the font file from the
temp directory to install.<BR><BR><B>Setup for Netscape
Communicator</B><BR><BR>Start the browser. Select Menu --> Edit
--> Preferences. Click Appearance --> Fonts. Select "Japanese"
for "Language for encoding". Select "Bitstream
Cyberbit" for variable and fixed width fonts</SPAN></FONT></P>
</BODY>
</HTML>