Java + MySQL + HTML

2006-11-17 6:39 pm
我想寫個java program 去攞html的code, 我個program己成功攞到個html, program亦都可以將其他資料寫入database(mySQL), 但係就唔可以將html的code寫入去,懷疑係因為html code入面有 " 這個符號, 請問有咩方法可以成功寫入????

另外, 有沒有可以只從html讀取內容部份,(沒有 的情況下)


thanks

回答 (1)

2006-11-17 9:40 pm
✔ 最佳答案
我想問一問,你在 java program 裡面是怎樣把 html 內容更新到 database?如果你是好像下面一樣用一條 String 慢慢 append 上去 (假設你的 html 內容儲存在 html 的variable 內):

String sql = ”insert into table_name (key, value) values (” + key + ”, '” + html + "')”;
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet rs = statement.executeQuery();

那樣當你 html 裡有 double quote (”) 就會令你的 sql statement 不能執行。

你可以嘗試用 prepareStatement 的 set methods。好像上面一樣,你可以這樣寫:

String sql = ”insert into table_name (key, value) values (?, ?)”;
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, key);
statement.setString(2, html);
ResultSet rs = statement.executeQuery();

用 setString method 的話 java 就會幫你處理 double quote 的問題。(其實不止 setString, 還有 setInt、setLong、setDouble 等 method,視乎你的 data type)。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

「另外, 有沒有可以只從html讀取內容部份,(沒有 的情況下)」不太明白你的意思,可能是你的問題有一些 tag 顯示不到?不過我想可能你想問可不可以只是讀取某部份的 html 而不是整個 html 下載下來,如果是這樣的。是不能的,因為 html 只是 web server 對於你的 request 的一個回應。你可以做的只可以是讀取整個 html 之後再搜尋你想要的部份。

例如你只想讀取 <body> 和 </body> 的部份,你都要整個 html 讀取下來,再用 String.indexOf method 去搜尋,再取出你想要的部份。例子 (假設你 html 的 variable 有你的 html 內容):

int startIndex = html.indexOf(”<body>”);
int endIndex = html.lastIndexOf(”</body>”)+8;
String bodyHtml = html.substring(startIndex, endIndex);

那麼 bodyHtml 就會有你想要的部份。

請注意:上面的 code 為避免出現亂碼 < > 及 ”均用了全型顯示。如果你要 copy-and-paste 出來使用,請自行轉回半型。

希望幫到你。


收錄日期: 2021-04-13 15:57:49
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20061117000051KK00819

檢視 Wayback Machine 備份