HTTP简介
WEB浏览器与WEB拂去其之间的一问一答的交互过程, 必须遵循一定的规则,这个规则就是HTTP协议
HTTP是hypertext transfer protocol(超文本传输协议)的简写, 它是TCP/IP协议集中的一个应用层协议, 用于定义WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式
HTTP协议的版本 HTTP/1.0 HTTP/1.1 HTTP-NG

HTTP的会话方式
四个步骤
1> 建立连接
2> 发出请求信息
3> 回送响应信息
4> 关闭连接

浏览器与WEB服务器之间的链接过程式短暂的, 每次链接只处理一个请求和响应. 对每一个页面的访问, 浏览器与WEB服务器都要建立一次单独的连接.
浏览器到WEB服务器之间的所有通讯都是完全独立分开的请求和响应对儿

创建项目testHttpForm  ---> package(com.xiaoan.test)  --> class(TestForm.java)

 package com.xiaoan.test;

 import java.io.IOException;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map;
import java.util.Map.Entry; import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.swing.plaf.synth.SynthSeparatorUI; public class TestForm implements Servlet{ @Override
public void destroy() {
// TODO Auto-generated method stub } @Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
} @Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
} @Override
public void init(ServletConfig arg0) throws ServletException {
// TODO Auto-generated method stub } @Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
System.out.println("this is Servlet service function");
//1 获取请求参数 k--v
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("username: " + username);
System.out.println("password: " + password);
//获取请求参数 k -- v1,v2,v3 - 表单中checkbox类型数据
String[] reads = request.getParameterValues("read");
for(String read: reads){
System.out.println("-->read: " + read);
} //获取所有的参数名
Enumeration<String> keys = request.getParameterNames(); //获取所有的请求参数 <k,v>
Map<String, String[]> params = request.getParameterMap();
for(Map.Entry<String, String[]> param: params.entrySet()){
System.out.println("****" + param.getKey() + ": " + Arrays.asList(param.getValue()));
} /*
* HttpServletRequest: 是 SerlvetRequest 的子接口. 针对于 HTTP 请求所定义. 里边包含了大量获取 HTTP 请求相关的方法.
*/ //获取请求的URI
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
String uri = httpServletRequest.getRequestURI();
System.out.println("request uri: " + uri); //获得请求方式
String method = httpServletRequest.getMethod();
System.out.println("request method: " + method); //如果是get请求, 则获得问号传参后面的部分, 如果是post请求该项返回null
String getstr = httpServletRequest.getQueryString();
System.out.println("getstr: " + getstr); //获取请求的 Serlvet 的映射路径
String servletPath = httpServletRequest.getServletPath();
System.out.println(servletPath);
} }

--> 配置web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>testHttpForm</display-name> <servlet>
<servlet-name>formServlet</servlet-name>
<servlet-class>com.xiaoan.test.TestForm</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>formServlet</servlet-name>
<url-pattern>/formServlet</url-pattern>
</servle

写表单(WebContent目录下)  新建testform.html

 <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/testHttpForm/formServlet" method="get">
username: <input type="text" name="username"><br>
password: <input type="password" name="password"><br>
多选测试:<input type="checkbox" name="read" value=1>1 &nbsp;&nbsp;&nbsp;
<input type="checkbox" name="read" value=2>2 &nbsp;&nbsp;&nbsp;
<input type="checkbox" name="read" value=3>3 &nbsp;&nbsp;&nbsp;
<input type="checkbox" name="read" value=4>4 &nbsp;&nbsp;&nbsp;
<input type="checkbox" name="read" value=5>5 &nbsp;&nbsp;&nbsp;
<input type="submit" name="submit" value="提交">
</form>
</body>
</html>

提交方式 get和post切换一下, 看看有什么不同

JavaWeb核心编程之(三.5)HTTP请求和接受表单数据的更多相关文章

  1. JavaWeb核心编程之(三.6)HttpServlet

    之前都是集成的Servlet真的太过于繁琐了, Servlet接口提供了一个实现类 为HttpServlet  只要实现doGet 和doPost方法就可以了 仍然以一个表单为例 新建一个web工程 ...

  2. go-web 获取get/post请求中的请求头和表单数据

    package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r * ...

  3. JavaWeb核心编程之(三.1)ServletHello

    Servlet简介Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中. Servlet容器负责Servlet和客户的通信以及调用Servlet方法, 在这里Servlet ...

  4. JavaWeb核心编程之(三.4)Servlet Context 配置

    ServletContextServlet引擎为每个Web应用程序都创建一个对应的ServletContext对象, ServletContext对象被包含在ServletConfig对象中, 调用S ...

  5. JavaWeb核心编程之(三.3)Servlet Init 配置

    Servlet初始化 可以传入一些参数 通过 <init-param>来配置 新建 servletinit项目 新建包 com.xiaoan.test->new Class(Test ...

  6. JavaWeb核心编程之(三.2)Servlet配置

    Servlet配置 1.配置Serlvet加载时机 2.配置多映射 配置加载时机 新建项目config->创建包com.xiaoan.config->创建类FirstServlet imp ...

  7. httpclient模拟post请求json封装表单数据

    好长时间不更博了,主要肚子里没什么好墨水,哈哈.废话不说上代码. public static String httpPostWithJSON(String url) throws Exception ...

  8. 什么是请求参数、表单参数、url参数、header参数、Cookie参数?一文讲懂

    最近在工作中对 http 的请求参数解析有了进一步的认识,写个小短文记录一下. 回顾下自己的情况,大概就是:有点点网络及编程基础,只需要加深一点点对 HTTP 协议的理解就能弄明白了. 先分享一个小故 ...

  9. Struts2(接受表单参数)请求数据自动封装和数据类型转换

    Struts2请求数据自动封装: (1)实现原理:参数拦截器 (2)方式1:jsp表单数据填充到action中的属性:        普通的成员变量,必须给set,get可以不给的.    注意点,A ...

随机推荐

  1. Ubuntu下nginx+uwsgi+flask的执行环境搭建

    选择web framwork是个非常艰难的事情, 主要分为轻量级和重量级框架. 因为没有搭建站点这样的须要, 所以回避SSH, Django这样的框架, 而选择一个轻量级框架. 自己也比較青睐pyth ...

  2. aps.net js获取服务器控件

    document.getElementById("<%= tx_ownerId.ClientID %>").value;

  3. android开发MD5加密工具类(一)

    MD5加密工具类整理: package com.gzcivil.utils; import java.io.UnsupportedEncodingException; import java.secu ...

  4. (七)Android中AIDL的应用与理解

    一.跨应用启动Service Intent serviceIntent=new Intent();serviceIntent.setComponent(new ComponentName(" ...

  5. Asp.net MVC + EF6.0 经常出现的问题

    1.运行视图时出现问题:未能加载文件或程序集"EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c ...

  6. mysql数据库sql优化

    此文章为转载 一. 前提 这里的原则 只是针对mysql数据库,其他的数据库 某些是殊途同归,某些还是存在差异.我总结的也是mysql普遍的规则,对于某些特殊情况得特殊对待.在构造sql语句的时候养成 ...

  7. 图的最短路径问题————树上奶牛(tree.cpp)

    和往常一样,继续从题目引入 树上奶牛 (tree.cpp) [题目描述] 农夫John的奶牛不是住在地上而是住在树上的QWQ. 奶牛之间需要串门,不过在串门之前他们会向John询问距离的大小.可是Jo ...

  8. Web应用的部署

    本文将介绍一些Web应用的部署: 部署规则 要成功地部署一个Web应用,必须遵循以下目录结构. 1.WEB-INF一定要直接放到应用上下文(Webapp)之下. 2.classes目录必须直接放在WE ...

  9. 前端开发面试题收集 css

    什么是CSS盒子模型 页面上的每个元素都被浏览器看做是一个矩形的盒子. 由内容.填充.边框.边界组成. 什么是 css sprite 将多个图片拼接在一个图片中,通过background-positi ...

  10. smarty的简单介绍

    我们可以看到,smarty的程序部分实际就是符合php语言规范的一组代码,我们依次来解释一下:1./**/语句: 包含的部分为程序篇头注释.主要的内容应该为对程序的作用,版权与作者及编写时间做一个简单 ...