android doGet和doPost

來源:互聯網
上載者:User

android doGet和doPost

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,但使用的比較少。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.