从客户端到服务器的“变形”转移问题

时间:2013-11-17 20:47:58

标签: javascript jsp netbeans encoding tomcat7

有一段时间我正在开发一个JSP系统,幸运的是我从未有过更大的问题转移“ä”,“ö”,“ü”和“ß”等“Umlaute”。 现在过了一段时间,我将我的NetBeans更新为Nightly Build 201311070001(与Tomcat 7.0.41一起),突然间一切都搞砸了...... 我不确定问题是否仅因为更新而发生,但我没有其他事件......

我的HTML / JS看起来像:

<button onclick="
alert(encodeURIComponent(document.getElementById('Comment').value)); 
window.location.href = '/Proj/filter/MB/CreateMB.jsp
?Num=' 
+ encodeURIComponent(document.getElementById('Num').value) 
+ '&amp;Comment=' 
+ encodeURIComponent(document.getElementById('Comment').value)">
Create New MB
</button>

要确定是否因为JavaScript而发生错误,我添加了此警报(...)。

现在我在字段中输入以下内容:

  

测试äöüß{çǘ]

(最后的字母不会出现在德语中,但我想测试最坏的情况) alert()返回我可能期望的东西(由于encodeURIComponent):

  

测试%20%C3%A4%C3%B6%C3%BC%C3%9F%20%7B%C3%A7%C7%98%5D

现在我调试服务器上的输出:

  

测试äöüÃ{çÇ]

很明显出现了问题......通常,JSP应该自己编写所有内容。当然这个废话直接进入数据库...

还出现了一大堆新的编码问题。在数据库中,我有正确的值:

  

PA-Schnur

但是我的代码

StringEscapeUtils.escapeHtml(d.getMethod())

返回

  

PÃ?-Schnur

到现在它起作用了,突然间行为改变了。 当然,大多数功能都源自Java-Beans,jsp文件仍然保留了它们:

<%@page contentType="text/html" pageEncoding="UTF-8"%>

由于IDE保持相同的编码: enter image description here

我只是无法弄清楚问题的来源。无论是新IDE还是在安装过程中它都可能影响了Tomcat-Server。有人做过类似的经历吗?我该怎么办呢?

2 个答案:

答案 0 :(得分:0)

使用Apache Tomcat常见问题解答中的simple JSP来测试您的系统。如果它不起作用你的配置中的东西搞砸了。如果它确实有效,可以使用它作为起点在JSP中添加其他功能,以找出出错的地方。

答案 1 :(得分:0)

好吧,我不想把它称为解决方案,但我必须承认它有效。 此外,我不知道如何以及为什么。

我刚刚卸载了NetBeans,删除了服务器并重新安装了它。我保留了旧的服务器配置存档,所以如果有人有兴趣解决这个问题,我可以提供......