JSP/GlassFish:如何正确设置 UTF-8 编码

2024-03-21

我正在寻求帮助,将堆栈中的所有层都转换为 UTF-8 编码。

我发现这篇好文章:

http://www.javapractices.com/topic/TopicAction.do?Id=206 http://www.javapractices.com/topic/TopicAction.do?Id=206

描述了我需要担心编码的 3 个地方。由于我的 (1) Oracle 数据库当前设置为 UTF-8,因此 (2) 浏览器和 (3) 服务器需要担心。

我还找到了这篇详细的文章

http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest

我试图在下面遵循这一点,但有一些关于实施的新手问题。

为了解决浏览器的问题,我确保在每个 JSP 页面的顶部包含以下内容:

<%@page pageEncoding="UTF-8"%> 

(作为参考,请参见here http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest).

为了解决服务器问题,我确保在发出以下命令之前在 Java servlet 和 JSP 页面中包含以下行:request.getParameter() or request.getAttribute()陈述:

request.setCharacterEncoding("UTF-8");

由于我使用的是 GlassFish 3.1.2,我知道它默认不使用 UTF-8,因此我需要以某种方式手动设置它。

我见过很多网站都在谈论名为glassfish-web.xml。这是正常 glassfish 安装的一部分吗?我不知道在哪里可以找到它。我一直在使用web.xml文件在我的WEB-INF我的网络应用程序的文件夹。有人可以帮我看看是否需要修改这个web.xml文件,或者我是否需要找到或创建一个名为glassfish-web.xml,为 glassfish 配置编码?

My web.xml文件开头为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app> 
...

对于 JSP/servlet 请求,我在web.xml file

<parameter-encoding default-charset="UTF-8"/>

可以这样放入吗web.xml文件?或者,是否需要加入一些glassfish-web.xml file?

对于 JSP/servlet 响应,我将以下内容放入我的web.xml文件(参见接受的答案here https://stackoverflow.com/questions/6279504/unable-to-change-charset-from-iso-8859-1-to-utf-8-in-glassfish-3-1):

<jsp-config>
   <jsp-property-group>
       <url-pattern>*.jsp</url-pattern>
       <page-encoding>UTF-8</page-encoding>
   </jsp-property-group> 
</jsp-config>

我假设这些行只是插入之间<web-app> and </web-app>。但是,让我知道它们是否应该进入其他描述符(例如<glassfish-web-app> and </glassfish-web-app>)?

我还在JSP中添加了以下内容<head>部分:

<meta http-equiv="content-type" content="text/html; charset=utf-8">

有用的参考:

如何摆脱警告:PWC4011:无法将请求字符编码设置为 UTF-8 https://stackoverflow.com/questions/7643484/how-to-get-rid-of-warning-pwc4011-unable-to-set-request-character-encoding-to

https://stackoverflow.com/tags/servlet-filters/info https://stackoverflow.com/tags/servlet-filters/info

https://wikis.oracle.com/display/GlassFish/FaqHttpRequestParameterEncoding https://wikis.oracle.com/display/GlassFish/FaqHttpRequestParameterEncoding


The glassfish-web.xml是您可以在您的WEB-INF文件夹。对于 Glassfish 3.x,它必须类似于以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
    <jsp-config>
    </jsp-config>
    <parameter-encoding default-charset="UTF-8" />
</glassfish-web-app>

你是对的,参数编码设置必须位于此文件中,而不是位于web.xml :)

也可以看看:

  • glassfish-web.xml vs sun-web.xml vs web.xml https://stackoverflow.com/questions/19054371/glassfish-web-xml-vs-sun-web-xml-vs-web-xml
  • Glassfish 编码 https://stackoverflow.com/questions/2341330/glassfish-encoding
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSP/GlassFish:如何正确设置 UTF-8 编码 的相关文章

  • 如何以编程方式使用包含多列的 where-in 子句执行 PostgreSQL 查询?

    我的查询是这样的 select from plat customs complex where code t code s in 01013090 10 01029010 90 它在 psql 控制台中运行良好 我的问题是如何在客户端代码中
  • 我对线程失去了理智

    我想要这个类的对象 public class Chromosome implements Runnable Comparable
  • Powershell XMLDocument保存为无BOM的UTF-8

    我构建了一个 System Xml XmlDocument 类型的 XML 对象 scheme gettype IsPublic IsSerial Name BaseType True False XmlDocument System Xm
  • Java AES 256 加密

    我有下面的 java 代码来加密使用 64 个字符密钥的字符串 我的问题是这会是 AES 256 加密吗 String keyString C0BAE23DF8B51807B3E17D21925FADF273A70181E1D81B8EDE
  • JAXB - 忽略元素

    有什么方法可以忽略 Jaxb 解析中的元素吗 我有一个很大的 XML 文件 如果我可以忽略其中一个大而复杂的元素 那么它的解析速度可能会快很多 如果它根本无法验证元素内容并解析文档的其余部分 即使该元素不正确 那就更好了 例如 这应该只生成
  • 如何更改 Swagger-ui URL 前缀?

    我正在使用 Springfox Swagger2 和 Spring boot 1 5 9 我可以通过此链接访问 swagger UI http localhost 8090 swagger ui html http localhost 80
  • 使用 JDBC 连接到 PostgreSql 的本地实例

    我在 Linux 机器上有一个正在运行的 PostgreSql 本地实例 当我使用psql来自 shell 的命令我成功登录 没有任何问题 我需要通过 JDBC 连接到 PostgreSql 但我不知道我到底应该传递什么url参数为Driv
  • 如何使用双重调度来分析图形基元的交集?

    我正在分析图形基元 矩形 直线 圆形等 的交互并计算重叠 相对方向 合并等 这被引用为双重调度的一个主要示例 例如维基百科 http en wikipedia org wiki Double dispatch 自适应碰撞算法通常要求 不同的
  • UseCompressedOops JVM 标志有什么作用以及何时应该使用它?

    HotSpot JVM 标志是什么 XX UseCompressedOops我应该做什么以及什么时候使用它 在 64 位 Java 实例上使用它 与不使用它 时 我会看到什么样的性能和内存使用差异 去年大多数 HotSpot JVM 都默认
  • Android - 存储对ApplicationContext的引用

    我有一个静态 Preferences 类 其中包含一些应用程序首选项和类似的内容 可以在那里存储对 ApplicationContext 的引用吗 我需要该引用 以便我可以在不继承 Activity 的类中获取缓存文件夹和类似内容 你使用的
  • Joshua Bloch 的构建器设计模式有何改进?

    早在 2007 年 我就读过一篇关于 Joshua Blochs 所采用的 构建器模式 的文章 以及如何修改它以改善构造函数和 setter 的过度使用 特别是当对象具有大量属性 其中大部分属性是可选的 时 本文对此设计模式进行了简要总结
  • Tomcat 6 未从 WEB-INF/lib 加载 jar

    我正在尝试找出我的 tomcat 环境中的配置问题 我们的生产服务器正在运行 tomcat 安装并从共享 NFS 挂载读取战争 然而 当我尝试使用独立的盒子 及其配置 进行同样的战争时 我收到下面发布的错误 有趣的是 如果我将 WEB IN
  • 我们如何使用 thymeleaf 绑定对象列表的列表

    我有一个表单 用户可以在其中添加任意数量的内容表对象这也可以包含他想要的列对象 就像在 SQL 中构建表一样 我尝试了下面的代码 但没有任何效果 并且当我尝试绑定两个列表时 表单不再出现 控制器 ModelAttribute page pu
  • Android计算两个日期之间的天数

    我编写了以下代码来查找两个日期之间的天数 startDateValue new Date startDate endDateValue new Date endDate long diff endDateValue getTime star
  • Spring Data Rest 多对多 POST

    首先 让我解释一下我的用例 这非常简单 有一个用户实体和一个服务实体 我使用 UserService 作为连接实体 连接表 在用户和服务之间建立多对多关联最初 会有一些用户集和一些服务集 用户可以在任何时间点订阅任何服务 在这种情况下 将向
  • Android ScrollView,检查当前是否滚动

    有没有办法检查标准 ScrollView 当前是否正在滚动 方向是向上还是向下并不重要 我只需要检查它当前是否正在滚动 ScrollView当前形式不提供用于检测滚动事件的回调 有两种解决方法可用 1 Use a ListView并实施On
  • 确定 JavaFX 中是否消耗了事件

    我正在尝试使用 JavaFX 中的事件处理来做一些非滑雪道的事情 我需要能够确定手动触发事件后是否已消耗该事件 在以下示例中 正确接收了合成鼠标事件 但调用 Consumer 不会更新该事件 我对此进行了调试 发现 JavaFX 实际上创建
  • Selenium 单击在 Internet Explorer 11 上不起作用

    我尝试在 Internet Explorer 上单击 selenium 但它不起作用 我努力了element click moveToElement element click build perform javascript没事了 事实上
  • 检测到 JVM 正在关闭

    我有一个使用 addShutdownHook 处理 Ctrl C 的 Swing 应用程序 它工作正常 直到我的关闭任务之一调用一个在正常情况下更改 JLabel 文本的函数 此时它挂起 我认为问题是 Swing EDT 已终止或正在等待某
  • 什么是 Java2D 处理程序线程?

    我创建了一个使用 Hibernate 的示例 java 应用程序 当我进行线程转储时 我观察到一个名为 Java2D Disposer 的奇怪线程 有人能告诉我该线程的功能吗 AWT 系统中的某些实体需要最终确定以释放资源 最突出的例子是j

随机推荐

  • Django Rest框架批量创建

    我正在尝试制作一个 api 您可以使用 django Rest 框架通过单个 Post 请求创建多个对象 但是 我的序列化器提供了一个我不明白的错误 首先这是我的代码的骨架 我的序列化器 class MyModelSerializer se
  • MIPS——这重要吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我的问题 了解 MIPS 编程语言有用吗 我是一名计算机科学学生 正在上一门以 MIPS 为重点的汇编课程 我很擅长使用高级语言进行编写 但 M
  • 类型错误:不是构造函数

    我只是将代码用作有关 JavaScript 类的学习练习 该代码产生 TypeError SimpleLogger 不是构造函数 该类似乎已导出 但我无法在 main js 文件中实例化它 我已经减少了代码以仅显示问题 我想知道是否有人能发
  • 从 ant 类路径中排除 jar

    我正在尝试在一些使用 ant 脚本的遗留项目上进行 干净的 Maven 设置 我对蚂蚁了解不多 所以我的问题可能显得很幼稚 我快完成了 但是由于类路径中存在冗余 交付蚂蚁脚本失败了 如果我理解构建 这些行应该添加到 提供 范围内每个库的类路
  • 多个构造函数与 Structuremap 改变范围?

    为了说明问题 这是我的设置的简化版本 我有一家这样的工厂 public interface IFactory public class Factory IFactory public Factory Console WriteLine pa
  • 同一 AWS Cognito 用户池中的多个应用程序对于同一用户来说 cognitoID 是否相同?

    我有一个 Cognito 用户池 可以与我的 iOS 和 Android 应用程序配合良好 该池有一个客户端密钥 我现在想建立网络身份验证 Cognito 的 javascript sdk 不支持使用应用程序客户端密钥配置的用户池 假设我在
  • Google 的 Vision Api protobuf 对 Python 字典的响应对象

    我正在开发一个项目 需要使用 Google 的 Vision API 分析图像并将响应发布到 Dynamodb 表 我已经成功实现了 Vision API 但无法将其响应转换为 Python 字典 这是我尝试过的 if form is va
  • Pandas DF 有一列包含列表。如何使用此列表的每个值重复行?

    我有一个像这样的熊猫数据框 title author year type 0 t1 a1 1980 article 1 t2 a2 a3 a4 1983 article 2 t3 a5 1982 article 3 t4 a6 1977 a
  • jQuery 验证中的正则表达式 - jQuery 中的单引号问题

    我有一个正则表达式来验证密码是否包含数字 小写和大写字符 下面这个效果很好 但是当我在 jQuery 验证中使用它时 txtPassword required true regex Regex Regex 8 16 d a z A Z am
  • 如何使用脚本重新创建 IPython 的“--pylab”选项的效果?

    我想创建一个与 IPython 执行相同操作的配置文件 pylab 用手 标记 为了实现这一目标 脚本的内容应该是什么 包导入 名称空间指定 设置等 作为替代方案 我还想知道是否有一种方法可以检查 pylab当前 IPython 会话启动时
  • 什么是 ls -F (ls --classify) [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 看着普通旧版的手册页ls http linux die net man 1 ls我看到有一个标志 F F classify append
  • Int 转换不起作用[重复]

    这个问题在这里已经有答案了 我正在为我的游戏创建高分功能 但无法让它发挥作用 这是我的方法 def game over self Game over Screen keys pygame key get pressed self gameo
  • 正则表达式麻烦,转义引号

    基本上 我正在传递一个字符串 我需要以与 nix shell 标记命令行选项大致相同的方式对其进行标记 假设我有以下字符串 Hello World Hello Universe Hi 我怎样才能把它变成一个三元素列表 你好世界 你好宇宙 H
  • magento 产品页面中买家需填写的字段

    我一直在寻找 但找不到类似的东西 我需要创建一个产品页面 买家在将产品添加到购物车之前将在其中填写一些文本字段 大部分类似于此页面的内容 http bitly com Sw4jzR http bitly com Sw4jzR 添加到购物车时
  • 在容器和主机之间共享“node_modules”文件夹

    这是一个非常热门的话题 但我从未真正找到解决方案 您可能知道 当我们在容器中有一个卷并且安装依赖项时 使用npm i或其他东西 从 Dockerfile 具有默认权限 Npm 将创建一个node modules容器中的文件夹root roo
  • 使用多线程 vb.net 时更新文本框

    My code Imports System IO Public Class Form1 Dim thread As System Threading Thread Dim thread2 As System Threading Threa
  • 如何在Python中比较两个时区?

    Example import pytz b pytz timezone Europe Rome c pytz timezone Europe Berlin 然而 这两个时区具有不同的名称但代表相同的事物 b c 返回 false b zon
  • RStudio Run命令运行两次问题[重复]

    这个问题在这里已经有答案了 我在使用 RStudio 时遇到了一个奇怪的问题 当我使用任何命令运行脚本时 例如 Ctrl R Ctrl Enter 或 RStudio 上的实际运行命令 该命令会运行两次 我在互联网上找不到任何与此相关的信息
  • C++、多态性和迭代器

    我想要一个存储接口 抽象类 和一组存储实现 SQLite MySQL Memcached 用于存储已知类的对象并从存储中检索子集 对我来说 清晰的界面是 class Storable int id blah blah blah string
  • JSP/GlassFish:如何正确设置 UTF-8 编码

    我正在寻求帮助 将堆栈中的所有层都转换为 UTF 8 编码 我发现这篇好文章 http www javapractices com topic TopicAction do Id 206 http www javapractices com