Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android doGet和doPost

android doGet和doPost

編輯:關於Android編程

doGet和doPost的區別

get和post是http協議的兩種方法,另外還有head, delete等

這兩種方法有本質的區別,get只有一個流,參數附加在url後,大小個數有嚴格限制且只能是字符串。post的參數是通過另外的流傳遞的,不通過url,所以可以很大,也可以傳遞二進制數據,如文件的上傳。

在servlet開發中,以doGet()和doPost()分別處理get和post方法。
首先判斷請求時是get還是post,如果是get就調用doGet(), 如果是post就調用doPost()。都會執行這個方法。

1.doGet
GET 調用用於獲取服務器信息,並將其做為響應返回給客戶端。當經由Web浏覽器或通過HTML、JSP直接訪問Servlet的URL時,一般用GET調用。 GET調用在URL裡顯示正傳送給SERVLET的數據,這在系統的安全方面可能帶來一些問題,比如用戶登錄,表單裡的用戶名和密碼需要發送到服務器端, 若使用Get調用,就會在浏覽器的URL中顯示用戶名和密碼。
例:
jsp頁代碼:


………

………

servlet代碼:
public class doGet_servlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
request.setCaracterEncoding(“UTF-8”);//漢字轉碼
String username = request.getParameter("username");

request.setAttribute("username",username);

request.getRequestDispatcher("/out.jsp").forward(request, response);//跳轉到out.jsp頁面

}
}

out.jsp頁面

``````

<%=request.getAttribute("username")%>//在頁面上輸出username的信息


這樣提交表單後,參數會自動添加到浏覽器地址欄中,帶來安全性問題。

2.doPost
它用於客戶端把數據傳送到服務器端,也會有副作用。但好處是可以隱藏傳送給服務器的任何數據。Post適合發送大量的數據。
例:
jsp頁代碼:


………

………

servlet代碼:
public class doPostt_servlet extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse esponse) throws IOException,ServletException {
request.setCaracterEncoding(“UTF-8”);//漢字轉碼
PrintWriter out = response.getWriter();
out.println("The Parameter are :"+request.getParameter("name2"));
}
}
最好用上面在doGet中提到的輸出方式進行輸出
3.可以把方法寫在doGet()方法中,在doPost()方法中調用執行,這樣,無論你提交的是post還是get方法都可以執行
例如:
jsp頁代碼:

………

………

servlet代碼:
public class servlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
request.setCaracterEncoding(“UTF-8”);//漢字轉碼
PrintWriter out = response.getWriter();
out.println("The Parameter are :"+request.getParameter("name1"));
}

public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
this.goGet(request,response);//調用doGet()方法
}
}
另外,HttpServlet處理客戶端請求方式還有doPut、doDelete、doTrace、doHead、doOptions,但使用的比較少。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved