URL的引數中有加號傳值的問題(URL特殊字元)
- URL特殊字元需轉義
- 空格換成加號(+)
- 正斜槓(/)分隔目錄和子目錄
- 問號(?)分隔URL和查詢
- 百分號(%)制定特殊字元
- #號指定書籤
- &號分隔引數
轉義字元的原因:
如果你的表單使用get方法提交,並且提交的引數中有“&”等特殊符的話,如果不做處理,在service端就會將&後面的作為另外一個引數來看待。例如
表單的action為list.jsf?act=go&state=5
則提交時通過request.getParameter可以分別取得act和state的值。
如果你的本意是act='go&state=5'這個字串,那麼為了在服務端拿到act的準確值,你必須對&進行轉義
url轉義字元原理:
將這些特殊的字元轉換成ASCII碼,格式為:%加字元的ASCII碼,即一個百分號%,後面跟對應字元的ASCII(16進位制)碼值。例如 空格的編碼值是"%20"。
- URL特殊符號及對應的十六進位制值編碼:
- + URL 中+號表示空格 %2B
- 空格 URL中的空格可以用+號或者編碼 %20
- / 分隔目錄和子目錄 %2F
- ? 分隔實際的 URL 和引數 %3F
- % 指定特殊字元 %25
- # 表示書籤 %23
- & URL 中指定的引數間的分隔符 %26
- = URL 中指定引數的值 %3D
解決方法如下(以+號為例):
方法一、修改客戶端,將客戶端帶“+”的引數中的“+”全部替換為?“%2B”,這樣引數傳到伺服器端時就能得到“+”了。
方法二、修改伺服器端,將空格替換為“+”,這種方式只適用於引數中有?“+”沒有空格的情況。
例子:
String a = reuqest.getParameter("clientStr").replace(' ','+');
如果客戶端為clientStr=test+OK,那麼a的值為test+OK;
方法三、修改伺服器端,將獲取引數的方法由?reuqest.getParameter改為?request.getQueryString().substring(0),然後對得到的字串進行解析。
例子:
String a =request.getQueryString().substring(0);
如果客戶端為clientStr=test+OK,那麼a的值為?clientStr=test+OK,需要再解析一下,
a=a.?substring(10);得到a的值為?test+OK。
附:一個JS,用來轉義URL中特殊字元的。
function URLencode(sStr) { return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F'); }
如果你是用replace()時,使用name.replaceAll("\\ ","%20");
st_fname=name.replaceAll("\\ ","%20"); st_fname=dst_fname.replaceAll("\\+","%2B");
相關推薦
URL的引數中有加號傳值的問題(URL特殊字元)
URL特殊字元需轉義 空格換成加號(+) 正斜槓(/)分隔目錄和子目錄 問號(?)分隔URL和查詢 百分號(%)制定特殊字元 #號指定書籤 &號分隔引數 轉義字元的原因: 如果你的表單使用get方法提交,並且提交的引數中有“&”等特殊符的話,如果不做處理,在serv
前端傳遞url引數中有中文,後端傳過來的有亂碼,解決方案
一、問題重現: 原始碼:用get方式傳遞 @ResponseBody @RequestMapping(value = {"/findGroupByGroupName/{batchNo
web 專案中a標籤傳值(中文)到後臺的亂碼問題
當點選下一頁出現亂碼問題: 因為title向Servlet傳輸的是中文,所以點選下一頁會出現亂碼問題解決方法: JSP: <script type="text/javascript"> var href=$("#redirect
url引數中有+、空格、=、%、&、#等特殊符號的問題解決
url出現了有+,空格,/,?,%,#,&,=等特殊符號的時候,可能在伺服器端無法獲得正確的引數值,如何是好? 解決辦法 將這些字元轉化成伺服器可以識別的字元,對應關係如下: URL字元轉義 用其它字元替代吧,或用全形的。 + URL 中+號表示空格
url引數中有+、空格、=、%、&、#等特殊符號的處理
url引數中有+、空格、=、%、&、#等特殊符號的問題解決? 解決辦法: 將這些字元轉化成伺服器可以識別的字元,對應關係如下: URL字元轉義 + URL 中+號表示空格 %2B 空格 URL中的空格可以用+號
SQL交換一列中數據的值(如男女性別)
have set iat table p s 題目 highlight running 女性 在刷LeetCode的時候遇到的SQL題目 627. Swap Salary Given a table salary, such as the one below, tha
MVC Controller向View傳值(ViewData與ViewBag)
擴展方法 time gre 動態 操作 要求 name 由於 讀取 近在開發項目中,使用的是ASP.NET MVC由於之前並沒有接觸,對於它的傳值方式有些陌生,在這裏進行初步總結積累學習! 一:使用 ViewData使用: 在使用上,我們可以很明顯的看出這兩種方式的
向Spring-MVC WEB進行頁面傳值(繼續上章)
8.使用RedirectView重定向 //8.使用RedirectView重定向 @RequestMapping("/test10.do") public ModelAndView test10(User user) { if(user.getUserName().equ
vue 元件間傳值(個人精編)
1.父元件向子元件傳值 1⃣️.子元件標籤繫結需要傳遞的引數名 2⃣️.子元件頁面使用props 接收引數 2.子元件向父元件傳值 1⃣️.子元件使用$emit來觸發一個自定義事件,並傳遞一個引數 2⃣️.父元件中的子標籤中監聽該自定義事件並
模糊查詢支援引數中有*和?這樣的sql萬用字元
if(val.getPlateNo()!=null && !"".equals(val.getPlateNo())) { String plateNo = val.getPlateNo(); if(plateNo
SpringMVC繫結引數中的亂碼解決方法(Post與Get)
post解決方法: 在web.xml中配置如下引數,由於在javaweb中執行順序是listen——>filter——>servlet,在將請求傳遞給springmvc的前端控制器的時候,filter會先處理,其中下面的處理就是處理請求過來post的引數的亂碼問
隨筆-尋找旋轉排序陣列中的最小值(無重複數字)
題目: 假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,1,2,4,5,6,7] 可能變為 [4,5,6,7,0,1,2] )。 請找出其中最小的元素。 你可以假設陣列中不存在重複元素。 示例 1: 輸入: [3,4,5,1,2] 輸
獲取包下所有類中的註解的值 (java工具類)
作用:這個工具類主要的作用就是獲取類中的註解的值。 應用場景:做許可權的時候獲取@RequestMapping();的值,自動新增到資料庫中。 /** * getRequestMappingValue方法描述: * 作者:thh
四位元組字元(即特殊字元)入庫報錯解決方案
錯誤資訊: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect string value: '\xF0\x9F\x99\x8F" 解決辦法: 1. 將表字段字符集設定成utf8mb4 ,並執行插入前執行:SE
JS防止指令碼注入(替換特殊字元)
htmlEncode: (function() { var entities = { '&': '&', '>': '>', '<': '<',
URL引數中如果有+(加號)要對引數進行編碼,後臺取到的加號才不會變為空格。
後臺對引數進行編碼的方法:URLEncoder.encode(str); 後臺取引數值時直接寫:String strFileCode = request.getParameter("filecode");即可取得編碼後的值。 附: java沒有方法對應javascript
使用springmvc從頁面中獲取資料,然後根據獲得的引數資訊進行修改,如果修改的資料中含有不是基本資料型別的引數。比如傳的引數中有Date型別的資料時,需要我們進行引數型別轉換。
1.1 需求 在商品修改頁面可以修改商品的生產日期,並且根據業務需求自定義日期格式。 1.2 需求分析 由於日期資料有很多格式,所以springmvc沒辦法把字串轉換成日期型別。所以需要自定義引數繫結。前端控制器接收到請求後,找到註解形式的處理器介面卡,對RequestMapping標記的方法進
隨筆-尋找旋轉排序陣列中的最小值(有重複元素)
題目: 假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,1,2,4,5,6,7] 可能變為 [4,5,6,7,0,1,2] )。 請找出其中最小的元素。 注意陣列中可能存在重複的元素。 示例 1: 輸入: [1,3,5] 輸出: 1
js中的頁面傳值和中文顯示亂碼問題(innerHTML在頁面上顯示亂碼)(focusdroid)
js中的頁面傳值和中文顯示亂碼問題(innerHTML在頁面上顯示亂碼) 0.需求 a頁面的值傳到B頁面上(數字,字母或者中文),需要顯示在頁面上,頁面上顯示的是亂碼(或者在控制檯打印出來是中文,放在頁面上就是亂碼) 本身就需要傳遞中文的值,單傳過去就是
Mybatis框架中Mapper檔案傳值引數獲取。【Mybatis】
Mybatis框架中,Mapper檔案引數獲取一般有以下幾種: 1、引數個數為1個(string或者int) dao層方法為以下兩種: /** * 單個int型 */ public Lis