假設我不關心這個安全性方面,客戶端計算機調用的網址:提取參數,並將它們傳遞到數據庫
myurl.com/file.ext?Param1=value¶m2=value2¶m3=value3
然後,我想做一個簡單的插入到數據庫
Insert into myDB(Col1, Col2, Col3)VALUES(Param1, Param2, Param3)
我會做我自己的焦炭剝離輸入,我無法找到任何關於如何做到這一點簡潔。
假設我不關心這個安全性方面,客戶端計算機調用的網址:提取參數,並將它們傳遞到數據庫
myurl.com/file.ext?Param1=value¶m2=value2¶m3=value3
然後,我想做一個簡單的插入到數據庫
Insert into myDB(Col1, Col2, Col3)VALUES(Param1, Param2, Param3)
我會做我自己的焦炭剝離輸入,我無法找到任何關於如何做到這一點簡潔。
見URL.getQuery() 它將返回URL的查詢部分,然後用這個方法
URl u = new URL("myurl.com/file.ext?Param1=value¶m2=value2¶m3=value3");
Map<String, String> params = getQueryMap(u.getQuery());
public static Map<String, String> getQueryMap(String query)
{
String[] params = query.split("&");
Map<String, String> map = new HashMap<String, String>();
for (String param : params)
{
String[] parts = param.split("=");
String name = parts[0];
String value = parts[1];
map.put(name, value);
}
return map;
}
現在你必須在地圖中,可以訪問所有的參數。使用JDBC格式化並執行查詢。
真棒回答,我很遺憾,我只有一個upvote給。 – Vivisection 2013-03-13 15:53:43
String s = "myurl.com/file.ext?Param1=value¶m2=value2¶m3=value3";
int index = s.indexOf("Param1");
String ss = s.substring(index);
String[] arr = ss.split("&");
for(int i=0; i < arr.length; i++){
String[] value= arr[i].split("=");//value[i] will be value i+1th value
}
'我將在輸入端做我自己的字符剝離'不要。做。那。期。有工具!永遠不要「不關心安全方面」。即使它只在一個混凝土石棺底下100英尺的隔離電腦上運行...... – ppeterka 2013-03-13 14:57:41
計算機運行在Intranet上,只能通過登錄腳本訪問該URL。 – Vivisection 2013-03-13 15:20:06
有可能真的_accidentally_粘貼具有';'的字符串。 DROP TABLES;在那裏...我真的是意外的錯誤! – ppeterka 2013-03-13 15:41:13