Tomcat 中的 Grails 请求参数编码问题

发布于 2025-01-03 06:54:47 字数 770 浏览 2 评论 0原文

我的 grails 应用程序无法正确解码请求参数。

在 config.groovy 中:

  • grails.views.gsp.encoding = "UTF-8"
  • grails.converters.encoding = "UTF-8"

我所有的 gsp 在页面指令上都使用 contentType="text/html; charset=UTF-8" 以及

但是,当我从控制器中的 param 对象接收到发布的参数时,应用程序只打印垃圾...

我正在使用部署在 Tomcat 5 上的 Grails 1.3.7 版本。除 tomcat 之外的其他已安装插件:

hibernate 1.3.7 jquery 1.7.1 弹簧安全核心 1.2.6 webxml 1.4

编辑:通过进一步调试,我注意到该应用程序将在码头上正常运行。因此我怀疑这一定是tomcat的问题。我的问题与与这篇文章类似 (可惜我没有使用 Shiro 插件)。

谁能帮忙解决这个问题吗?

My grails app will not decode request parameters correctly.

In config.groovy:

  • grails.views.gsp.encoding = "UTF-8"
  • grails.converters.encoding =
    "UTF-8"

All my gsp's use contentType="text/html; charset=UTF-8" on the page directive as well as <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> in the head element.

However, when i receive the posted parameters from the param object in my controller, the app just prints garbage...

I'm using Grails 1.3.7 version deployed over Tomcat 5. Other installed plugins except tomcat:

hibernate 1.3.7
jquery 1.7.1
spring-security-core 1.2.6
webxml 1.4

EDIT: From further debugging, i've noticed that the app will run fine in jetty. Therefore i suspect it must be a tomcat issue. My issue is similar to this post (alas i'm not using the Shiro plugin).

Can anyone help with this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

独木成林 2025-01-10 06:54:47

您需要将 URIEncoding='UTF-8' 添加到 conf/server.xml 中的 Connector 元素,例如,

<Connector port='8080' protocol='HTTP/1.1' connectionTimeout='20000'
           redirectPort='8443' URIEncoding='UTF-8' />

此处描述:https://wiki.apache.org/tomcat/FAQ/CharacterEncoding

You need to add URIEncoding='UTF-8' to the Connector elements in conf/server.xml, e.g.

<Connector port='8080' protocol='HTTP/1.1' connectionTimeout='20000'
           redirectPort='8443' URIEncoding='UTF-8' />

This is described here: https://wiki.apache.org/tomcat/FAQ/CharacterEncoding

没企图 2025-01-10 06:54:47
edit application.properties
add(update) line:
plugins.webxml=1.4.1
edit application.properties
add(update) line:
plugins.webxml=1.4.1
江挽川 2025-01-10 06:54:47

虽然还没有最终定论,但我想分享一下我在同样情况下的经验。
在这里可以找到更多讨论。

我的情况是,我在本地PC上的Windows下有开发环境,包括本地MySQL。生产环境 - Centos 6、MySQL、Tomcat 6,落后于 Apache。

在开发环境中 - 一切正常,但在生产环境中 - 不行。
唯一对我有帮助的 - 除了 Tomcat URIEncoding='UTF-8' 的建议之外,还设置了 autoreconnect=true&useUnicode=true&characterEncoding=UTF-8

所以,问题出在正确设置 java Driver for MySQL 上。

As fas as no final conclusion made, I'd like to share my expierence in the same situation.
Here one can find more discussion.

I my case, I have dev environment under the windows on local pc including local MySQL. Production env - Centos 6, MySQL, Tomcat 6 behind Apache.

In dev environment - everything was o'k, but on production - no.
The only thing that help me - was set autoreconnect=true&useUnicode=true&characterEncoding=UTF-8 additionally to recommendations both for Tomcat URIEncoding='UTF-8'

So, the problem was in correct settings java Driver for MySQL.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文