2012-08-07 50 views
0

我是一般用java編寫web開發的新手,但我在Java編程方面有一些背景,所以我選擇了Java版本的App Engine。在此之前,我只有涉及PHP的Web項目。在App Engine中處理HTML表單(Java)

在App Engine中是否有任何優雅的方式來處理髮送到我的servlet並正確轉義它們的HTML表單? App Engine文檔中的示例僅涉及jsp中的轉義XML,它向用戶顯示信息,但我希望在DataStore中使用不含XML的乾淨文本,以最大限度地減少意外錯誤。

我目前使用Apache Commons軟件包中的StringEscapeUtils,但我更喜歡App Engine中包含的解決方案,因爲我必須使用我的應用程序部署commons-jar。是唯一的另一種方式,用正則表達式自己解析字符串嗎?

+0

你想逃避什麼?爲什麼?一點都不清楚。 – 2012-08-07 09:26:39

+0

隨窗體一起提交的任何可能的HTML/XML內容。部分信息將在稍後顯示在網站上。 – Raptor 2012-08-07 09:30:49

回答

0

您不應該逃避用戶發送的內容。保持原樣,並將其保存在數據庫中。這個數據可能是XML的一個很好的理由,並且這些數據可能被一個不同於webapp的東西所使用,它不關心HTML轉義。即使在webapp中,它也可以作爲JSON對象的一部分發送,不需要HTML轉義。

生成包含此數據的HTML頁面時,必須轉義HTML特殊字符以確保所有內容都正確顯示。 StringEscapeUtils就好,將jar與你的應用捆綁在一起非常正常。如果您使用JSP來生成HTML標記,請使用JSTL <c:out>標記或JSTL fn:escapeXml()函數。

如果您想在不嵌入commons-lang庫的情況下使用Java,請自行實施過濾。您只需將<,>,',"&替換爲其對應的HTML實體。不應該太難。

+0

好的,所以這種情況下的最佳做法的確是存儲數據,並且只有在顯示數據時纔將其轉移出去?然後Google的文檔完全有意義,謝謝。 – Raptor 2012-08-07 10:00:02

+0

你明白了。數據是數據。適應它的方式,但不要破壞它。 – 2012-08-07 10:06:20