Android(java)學習筆記209:採用get請求提交資料到伺服器

來源:互聯網
上載者:User

標籤:

1.GET請求:

   組拼url的路徑,把提交的資料拼裝url的後面,提交給伺服器。

缺點:(1)安全性  (2)長度有限不能超過4K(http協議限制),IE瀏覽器限制至1K

優點:代碼方便編寫

2.我們首先在電腦類比下訪問伺服器的情境

(1)使用Eclipse 建立一個 " 動態web項目 ",如下:

 

 

(2)然後編寫一個servlet程式(運行在服務端),命名為" LoginServlet ",如下:

 

代碼內容如下:

 1 package com.himi.web; 2  3 import java.io.IOException; 4 import javax.servlet.ServletException; 5 import javax.servlet.annotation.WebServlet; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 /**11  * Servlet implementation class LoginServlet12  */13 @WebServlet("/LoginServlet")14 public class LoginServlet extends HttpServlet {15     private static final long serialVersionUID = 1L;16 17     /**18      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)19      */20     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {21          String qq = request.getParameter("qq");22          String password = request.getParameter("password");23          System.out.println("qq:"+qq);24          System.out.println("password:"+password);25          26          //類比伺服器操作,查詢資料庫,看qq和密碼是否正確. response.getOutputStream()獲得一個輸出資料流,向瀏覽器寫入資料(提示資料)27          if("10086".equals(qq) && "123456".equals(password)) {28              response.getOutputStream().write("Login Success".getBytes());29          }else {30              response.getOutputStream().write("Login Failed".getBytes());31          }32          33     }34 35 }

剛剛我們說過GET要求方法,把提交的資料群組拼到url路徑上提交到伺服器上,所以這裡request.getParameter();

 

(3)接下來編寫一個jsp動態網頁面(區別於html靜態頁面),首先我們說一下jsp和html區別,如下:

jsp和html區別:

      •HTML頁面是靜態頁面,也就是事先由使用者寫好放在伺服器上,由web伺服器向用戶端發送;JSP頁面是動態頁面,有JSP容器執行該頁面的Java代碼部分然後即時產生的頁面.

      •定義上HTML頁面是靜態頁面可以直接運行,JSP頁面是動態網頁它運行時需要轉換成servlet。 

      •HTML能直接開啟,jsp只能發布到Tomact等伺服器上才能開啟

      •他們的表頭不同,這個是JSP的頭“ <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>”在表頭中有編碼格式和倒入包等。

      •很好區分的在jsp中用<%%>就可以寫Java代碼了,而html沒有<%%>。

 

編寫一個login.jsp代碼,在WebContent檔案夾下:

 

login.jsp代碼如下:

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html> 3 <head> 4 <%@ page language="java" contentType="text/html; charset=utf-8" 5     pageEncoding="utf-8"%> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>???????</title> 8 </head> 9 <body>10     11     <form action="LoginServlet" method="get">12   請輸入QQ帳號: <input type="text" name="qq"> <br/>13   請輸入QQ密碼: <input type="password" name="password"> <br/>14     <input type="submit" value="登入">15     </form>16 </body>17 </html>

右擊login.jsp檔案," 運行方式 "--> " 在伺服器上運行 ";啟動並執行結果如下:

 

(4)開啟360瀏覽器抓包分析http通訊的詳細過程:

• 開啟360瀏覽器,地址欄輸入:http://localhost:8080/web/login.jsp,結果如下:

•隨便輸入一個QQ帳號和QQ密碼,輸入QQ帳號:10000,輸入QQ密碼:123123,如下:

詳細的抓取資料包如下:

 

上面提到的Response的資料長度是12(字元數),如下Response資料內容:

 

 

• 輸入正確的QQ帳號和QQ密碼,如下:

 

同樣抓取的資料包為:

 

上面提到的Response的資料長度是13(字元數),如下Response資料內容:

Android(java)學習筆記209:採用get請求提交資料到伺服器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.