Specifying the File Encoding

As you may recall from Chapter 14, the character encoding used for a JSP file can be defined within the file by the pageEncoding page attribute. This is all fine and dandy, as long as the file is in an encoding that uses the ASCII mapping for bytes 0 through 127; if not, the encoding cannot be read from the file. Some character encodings, such as UTF-16 and EBCDIC, don’t share these byte-value mappings, so another approach is needed. The <page-encoding> element offers this alternative for classic JSP pages:

<web-app ...>
  ...
  <jsp-config>
    <jsp-property-group>
      <url-pattern>/ja/*</url-pattern>
      <page-encoding>Shift_JIS</page-encoding>
    </jsp-property-grop>
  </jsp-config>
  ...
</web-app>

This example tells the container to use the Shift_JIS encoding when reading a file in the /ja directory. As opposed to all other property settings, this setting applies to individual files rather than to the entire translation unit. This means that in addition to files requested directly, the specified file encoding is used for all files under /ja (in this example) added with an include directive in any JSP page, no matter what path is used to request that JSP page.

For JSP pages in XML syntax (so-called JSP Documents, described later), the file encoding is always determined based on the XML prolog in the file as described in the XML specification, so neither the pageEncoding attribute nor the <page-encoding> element should be used. If they are still used, and they specify a different ...

Get JavaServer Pages, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.