2012-02-09 60 views
0

我有使用java servlet將消息保存到用戶發佈的數據存儲(使用表單)的應用程序引擎應用程序。帶有「輸入」導致問題的JSP字符串

String content = req.getParameter("message"); 
message.setProperty("content", content); 

當後來在JSP中處理消息時,如果用戶在鍵入消息時已經點擊「enter」,則會出現運行時錯誤。

messageArray[<%=i%>]= { 
        content: "<%=message.getProperty("content")%>", 

我該如何解決這個問題?我想保存「回車」以正確顯示消息。

謝謝!

+0

向我們展示運行時錯誤..但首先嚐試_「<%= message.getProperty(」content「)。replace(」/ n「,」「)%>」_ – tartak 2012-02-09 14:47:34

回答

1

你將不得不使用類似JSON編碼的東西來使字符串安全地包含到JavaScript源代碼中。無論如何,你應該這樣做以防止明顯的XSS攻擊。

JavaScript不允許字符串常量中的原始換行符。如果您想創建自己的EL函數來清理字符串,請將不可打印的字符轉換爲\uXXXX轉義字符,並確保嵌入的引號前面帶有反斜槓。

+0

謝謝Pointy。你能分享一些關於JSON編碼的細節嗎?這是我應該做的服務器端或通過JavaScript? – user1152327 2012-02-09 15:23:59

+0

它必須在服務器端完成。您可以直接使用[Google工具包](http://code.google.com/p/json-simple/),也可以使用自己的EL功能。 – Pointy 2012-02-09 15:33:23

+0

只需將字符串編碼爲JSON對象,然後使用.String()提取它就足夠了嗎? – user1152327 2012-02-09 15:53:13