2010-05-28 67 views
2

我知道我可以谷歌「HTML表單驗證」,並將獲得十億教程。我很清楚我可以使用簡單的JavaScript來驗證表單輸入,但我被告知這不一定是一種有效的方法。我也聽說驗證客戶端和服務器端代碼是最佳實踐。好!那麼,除了在兩者上編寫代碼之外,這意味着什麼呢?這是否意味着我使用JavaScript和其他Servlet進行了一些操作,還是這意味着我在兩者上都編寫了相同的驗證方法?驗證JSP和HTML表單,服務器端還是客戶端或兩者?

我真正的問題是任何人都可以給我洞察力和方向,以便如何驗證我的HTML表單。我正在使用JSP和Servlet的,我有大量的表單驗證。

我已經用Java中的正則表達式做了小小的表單驗證,但是想知道在我編寫更多的代碼之前Im在正確的軌道上行駛。

只有生產性的答案,如果我想對我缺乏經驗的負面反饋,我會去Reddit。

謝謝!

+0

我會密切關注這個問題。 – novato 2010-05-28 21:37:07

回答

6
  • 需要服務器驗證,因爲您無法依賴客戶端驗證。用戶可以禁用,繞過或更改它。
  • 客戶端驗證非常方便,因爲它已經佔用了服務器的一些負載,並且在他必須等待服務器回覆之前會向用戶提示常見錯誤。

沒有客戶端的服務器沒問題,客戶端沒有服務器端是一個禁忌。

您如何在服務器端驗證是否真的取決於您。現有的圖書館可以幫助你,但是正則表達式也很好。請仔細閱讀爲什麼您需要驗證,所以您不要忘記檢查可能的攻擊。

同樣的事情用於客戶端驗證。 JQuery驗證模塊相當不錯,但你可以自己寫,沒問題。

1

客戶端驗證對終端用戶來說很有禮貌,方便。

服務器端驗證是絕對必要的。

正如你所說,關於如何最好地完成每一項工作,都有無數的資源。一個簡單的策略是在服務器上篩選有效性,並在服務器上篩選正確性 - 也就是說,使用Javascript來確保輸入具有正確的類型和形式(例如「看起來像日期」)和服務器端邏輯來額外保證有效的輸入是有意義的(例如「對於這個用戶來說在一個合理的範圍內」)。這可以爲您節省一些AJAX。這取決於應用程序,用戶和您想要在其上花費的資源。如果您不介意額外的Javascript和HTTP請求,則可以在客戶端複製所有服務器端檢查,但是然後您將有兩個用不同語言編寫的單獨程序來維護和保持同步。

相關問題