• java学习之路(2),http协议,request类

java学习之路(2),http协议,request类

1.一个httpServlet的多个地址定义

对于httpServlet可以定义一个数组,数组可以定义多个地址,即对于一个servlet可以通过多个地址访问。

如:

路径定义规则:/xxx :多层路径:/xxx/xxxx :/xxx/* 其中 星符号表示统配符,即可以/xxx/可以任意字符。 如果说星的情况包含了其他路径,只有在其他路径访问不到的时候才会访问星。即通配的优先级是较低的。 :*.something 注意不要加/。这是前面任意,后面加.something的意思。something是一个随便的单词。

2.我们访问一个页面时http做的事情

http协议基于tcp协议。在http1.1中,http协议可以保持一段时间。注意,当我们访问一段简单的页面的时候,我们可能有多次request的过程。图片,html资源都是单独的请求。

下图是我们访问bing网站的时候,http协议传送的内容。可以利用火狐或者chrome的F12键查看。

3.http:数据格式

概念:Hyper Text Transfer Protocol 超文本传输协议 传输协议:定义了,客户端和服务器端通信时,发送数据的格式 特点

1. 基于TCP/IP的高级协议2. 默认端口号:803. 基于请求/响应模型的:一次请求对应一次响应4. 无状态的:每次请求之间相互独立,不能交互数据* 两版本的区别:* 1.0:每一次请求响应都会建立新的连接* 1.1:复用连接

  • 请求消息数据格式 1. 请求行 请求方式 请求url 请求协议/版本 GET /login.html HTTP/1.1
    请求方式:
    HTTP协议有7种请求方式,常用的有2种
    GET:
    1. 请求参数在请求行中,在url后。
    2. 请求的url长度有限制的
    3. 不太安全
    POST:
    1. 请求参数在请求体中
    2. **请求的url长度没有限制的**
    3. 相对安全2. 请求头:客户端浏览器告诉服务器一些信息 请求头名称: 请求头值

    • 常见的请求头:
  1. User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息
  • 可以在服务器端获取该头的信息,解决浏览器的兼容性问题

    1. Referer:http://localhost/first.html
  • 指示请求来源

    • 作用:
      1 . 防盗链:判断流量来源
  1. 统计工作:比如广告,看广告的效果。

3. 请求空行 空行,就是用于分割POST请求的请求头,和请求体的。 4. 请求体(正文)

  • 封装POST请求消息的请求参数的
  • 字符串格式: POST /login.html HTTP/1.1 Host: localhost User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Referer: http://localhost/login.html Connection: keep-alive Upgrade-Insecure-Requests: 1
    username=zhangsan

4.html内容回顾:form表单是如何做的

<form action="form_action.asp" method="get">First name: <input type="text" name="fname" />Last name: <input type="text" name="lname" /><input type="submit" value="Submit" />
</form>

5.故障排除:部署tomcat后静态资源如html出现404的情况。

解决方法:html的路径配置错误。应当放在web文件夹中。

6.Request对象:

1.原理: 1tomcat根据请求创建对应对象,tomcat会创建两个对象,request封装请求消息。 2.tomcat将request两个对象传递给service方法,并且调用service方法。 3.程序员可以操作两个对象,request是来接收消息,responce是做出响应的对象。

重点:request和response都是服务器来创建的,我们就是在service中操作他们。

  • 获取请求方式 :GET

    • String getMethod()
  • 获取虚拟目录
    • String getContextPath()
  • 获取Servlet路径:

    • String getServletPath()
  • 获取get方式请求参数:name=zhangsan
    • String getQueryString()
  • 获取请求URI:

    • String getRequestURI():
    • StringBuffer getRequestURL() :http://localhost/demo
  • 获取协议及版本:HTTP/1.1
    • String getProtocol()
  • 获取客户机的IP地址:

    • String getRemoteAddr()
  • 获取请求头数据
    • 方法:

      • (*)String getHeader(String name):通过请求头的名称获取请求头的值
      • Enumeration getHeaderNames():获取所有的请求头名称
  • 获取请求体数据:

    • 请求体:只有POST请求方式,才有请求体,在请求体中封装了POST请求的请求参数
    • 步骤:
  1. 获取流对象
  • BufferedReader getReader():获取字符输入流,只能操作字符数据
  • ServletInputStream getInputStream():获取字节输入流,可以操作所有类型数据
    • 在文件上传知识点后讲解
    1. 再从流对象中拿数据
  • 重点掌握:虚拟目录,URL.

7.无法建立package的方法:右键–>new –> Mark Directory As –> Sources Root 就可以啦 ”

不过有一点,就是其实很多时候无法建立就是哪里之前不对或者确实不应该在这里建立啦(对于小白的我来说:))

h5获取http请求头_java学习之路(2),http协议,request类相关推荐

  1. h5获取http请求头_nodejs 中http请求头,响应头

    -------------------- 1.request常见的属性 ----------------------- var http=require("http"); var ...

  2. h5获取http请求头_React 前端获取http请求头信息

    背景: 前端通过react渲染页面,使用了react-slingshot,相当于是前端跑在一个node服务上面 需求: 需要通过客户端通过HTTP请求传递来的参数(header里放了token)进行用 ...

  3. java http头_JAVA如何获取HTTP请求头

    JAVA如何获取HTTP请求头 在利用Java网络编程时,常常需要获取HTTP请求头,那么JAVA如何获取HTTP请求头呢?下面小编为大家介绍了JAVA获取HTTP请求头的.方法,希望能帮到大家! 在 ...

  4. openresty获取nginx请求头信息

    vi test.lua:在nginx.conf配置文件中已经指定了lua脚本了 获取到请求头信息可以帮助我们做什么呢? ①比如对同一请求url,实际上也可以认定为是同一请求用户,可以限定其单位时间内的 ...

  5. java获取get请求返回_Java中处理调用第三方接口(post/get),该如何处理,返回的数据如何处理...

    条件:1.请求URL:http://ip:port/yypt/*.jsonRequest 2.接口采用http post协议.Content-Type为application/json 调用流程: 第 ...

  6. 7.1使用Request获取HTTP请求头

    首先得说说请求头包括什么吧!!这里有参考的文章,点击我跳转!! 请求头包括了: Host User-Agent Accept Accept-Language Accept-Encoding Conne ...

  7. 获取referer中的请求参数_javaweb之request获取referer请求头实现防盗链

    在开发web程序的时候,有时我们需要得到用户是从什么页面连过来的,这就用到了referer. 它是http协议,所以任何能开发web程序的语言都可以实现,比如jsp中是: request.getHea ...

  8. java开发五大原则_Java学习之路-五大基本原则

    Java学习之路-五大基本原则 Java学习之路-五大基本原则 转载:https://github.com/hollischuang/toBeTopJavaer/blob/master/basics/ ...

  9. 5获取http请求头_获取托管者发送http请求报文的解决方案

    在测试.调试策略代码时.实盘运行机器人时经常有遇到交易所接口报错的情况,此时去查询交易所接口API文档,查询相关报错信息,咨询交易所API技术客服时总是需要提供报错时的请求报文,用来分析报错原因.这个 ...

最新文章

  1. BEP 7:CUDA外部内存管理插件(上)
  2. html js文本框文字列出,js实现文本框中输入文字页面中div层同步获取文本框内容的方法...
  3. requestmapping配置页面后_@RequestMapping使用须知
  4. Java Review - 并发编程_原子操作类原理剖析
  5. linux TCP数据包封装在SKB的过程分析
  6. 【新书推荐】《微软开源跨平台移动开发实践》带你走近微软开源开源跨平台技术
  7. 【经典回放】多种语言系列数据结构算法:快速排序
  8. 使用Redis的简单消息队列
  9. java线程池执行器_Java线程池ThreadPoolExecutor的使用
  10. 苏格拉底的苹果_苏格拉底关于人生的教诲
  11. 毕啸南专栏 | 对话百度王海峰:AI时代会产生新巨头
  12. Django之验证码的生成和使用
  13. 为什么用虚拟机做服务器,虚拟机的优势:保留虚拟机的4个理由
  14. linux思源黑体乱码,Source Han Sans 思源黑体字体包
  15. CSS系列教程----摘自洪恩网站
  16. 线下化妆品零售店如何做私域获客?
  17. visio绘制网络拓扑图要求_必备!可以电脑在线使用的3款网络拓扑图软件安利
  18. FPGA学习汇总(六)----数码管显示(1)
  19. Postman-APIs是干什么的?
  20. 数据分析报告,就该这么写!超详细攻略奉上

热门文章

  1. Linux设置环境变量小结:设置永久变量临时变量 全局变量局部变量
  2. 静态页中利用AJAX.NET实现无刷新页面
  3. php重度写如何优化,win10玩游戏掉帧严重怎么处理
  4. c 抄了java 多少东西,几款Java开发者必备常用的工具,准点下班不在话下
  5. andriod studio 启动service失败_惊呆了!女儿拿着小天才电话手表,问我Android启动流程!...
  6. sql视图能使用触发器吗_冰箱买回家能立即使用吗 冰箱买回家要放多久能使用【详解】...
  7. “Rule can only have one resource source”错误
  8. Python+OpenGL实现Liang-Barsky算法裁剪直线
  9. 广告传媒实际税负怎么计算_建材销售类营业额3亿,缺进项致税负高?成立4家独资企业节税90%...
  10. leetcode_150. 逆波兰表达式求值