码迷,mamicode.com
首页 > 移动开发 > 详细

Android(java)学习笔记209:采用get请求提交数据到服务器

时间:2015-09-05 12:23:33      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:

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 LoginServlet
12  */
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请求提交数据到服务器

标签:

原文地址:http://www.cnblogs.com/hebao0514/p/4783000.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!