使用url訪問servlet(一)

在學習URL時,想使用URL訪問Servlet。

知識介紹:在向web服務器發送信息時,通常有兩個命令會被用到:GET和POST。

GET:參數附在URL結尾處。注:GET命令簡單但是有侷限性,因爲大多數瀏覽器都對GET請求中可以包含的字符數作了限制。

POST:不需要在URL中添加任何參數,而是從URLConnection中獲取輸出流。

無論是GET還是POST都要進行URL編碼。

URL編碼規則:

1.保留字符A-z、a-z、0-9以及 . - * _(四個)。

2.用+字符替換所以的空格。

3.將其他所有字符編碼爲UTF-8,並將每個字節都編碼爲%後面緊跟一個兩位的十六進制數字。

    如http://hi.baidu.com/%BE%B2%D0%C4%C0%CF%C8%CB/creat/blog/

使用方法:URLEncoder.encode(url,"UTF-8");

舉例:

String param = "S. Math";
param = URLEncoder.encode(param,"UTF-8");

//進行URL編碼,將空格編碼爲+,即S.+Math
URL url = new URL("http://10.138.6.156:8001/Service/TestServlet?param="+param);

HttpURLConnection hc = (HttpURLConnection) url.openConnection();

hc.setUseCaches(false);
hc.connect();

InputStream input = hc.getInputStream();

//此時只進行輸入流獲取,沒有輸出流的話是GET發送方式。

如果是如下情況:

URL url = new URL("http://10.138.6.156:8001/Service/TestServlet“);

HttpURLConnection hc = (HttpURLConnection) url.openConnection();

 hc.setDoOutput(true);
hc.setUseCaches(false);
hc.connect();
OutputStream outStrm = hc.getOutputStream();

outStrm.write("hello".getBytes());                //隨便發送一個,該行也可以不寫。

InputStream input = hc.getInputStream();

 //此時有輸出流則使用POST發送方式。

注:只有getinputStream()函數纔有發送發送http請求的能力,所以必須要加上即使什麼事也不做。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章