標籤:
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請求提交資料到伺服器