如果表單的action為list.do?act=go&state=5
則提交時通過request.getParameter方法,可以分別取得act和state的值。
如果你的本意是想傳'go&state=5'一個字串,act='go&state=5',其中包含了;/?:@&=+$,# 這些特殊字元,他們在 URI 中具有特殊含義。
那麼為了在服務端拿到act的準確值'go&state=5',你必須對& =等特殊字元 進行轉義
JavaScript的頂層函數(全域函數) :
encodeURIComponent() 函數可把字串作為URI的“一部分”進行編碼,例如對'go&state=5'編碼,會對 ;/?:@&=+$,# 進行編碼
encodeURI() 函數可把字串作為“一整個”URI 進行編碼。例如/My first/list.jsp?a=12&b=45&c=89 , &是參數分隔字元,所以 不會對;/?:@&=+$,# 進行編碼
decodeURIComponent() 函數可對 encodeURIComponent() 函數編碼的 URI 進行解碼。
decodeURI() 函數可對 encodeURI() 函數編碼過的 URI 進行解碼。
例子:
Js代碼
encodeURIComponent(",/?:@&=+$#") 返回結果:%2C%2F%3F%3A%40%26%3D%2B%24%23
encodeURIComponent("http://www.w3school.com.cn/p 1/") 返回結果:http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F
encodeURI(",/?:@&=+$#") 返回結果:,/?:@&=+$#
encodeURI("http://www.w3school.com.cn/My first/") 返回結果:http://www.w3school.com.cn/My%20first/