java学习篇——HTTP协议(request、response、servletContext)(有验证码实现)

目录

HTTP协议

​ javaapi ——Request:

servletContext:获取  只获取  不讲解这个对象是什么。getServletContext:

响应消息:

response对象

验证码:

Servletcontext:代表整个web应用,负责与servlet的容器去交互通信


HTTP协议

HTTP基本原理(简介)_Robin Hu的博客-CSDN博客_http原理

一个页面的内容对应多个资源,我们敲回车的时候作为一次会话。

一次会话多个请求 ,

1.0 请求的的实现过程:建立连接、发送请求、解析请求、处理请求、返回响应、展示响应、断开连接。

1.1版本 :保持连接  每一次请求后 等待下一次请求  没有响应断开。

浏览器查看   请求了哪些资源。


请求消息的格式:
        请求头:请求方式  请求路径  请求版本   
                        请求方式有7种,常见有2中
                                get: 请求参数在url里面   ——
                                post:请求参数在请求体中

        请求行:请求头名称  : 请求值  (k:v形式)

        请求空行:空行/分割请求体和请求头

        请求体/请求消息正文:封装post的请求体的  (get请求的直接在url里面)

请求头+请求行:

关于请求行的信息:
        User-Agent:根据值判断是哪种浏览器发送的请求,做了判断对不同浏览器响应不同内容(因为每个浏览器解析程度不一样)
        

 Accpet:接受的资源模式     /斜杠后面的值。   */*表示什么都可以

Accpet-language:接受的语言

Acepet-Encoding: 支持的压缩格式
Connection:是否保持连接

 升级信息  版本
告诉服务器、我从哪里来、
                        防盗链
                        统计功能

 防盗链: 在请求行里面判断 referer是不是来自优酷首页。

 统计:

将我自己的网站在其他平台推广,就可以判断访问者从哪个方向来。统计哪个平台打广告比较好。



 javaapi ——Request:

httpservlet  ——webapi
serletRequest 接口:可以得到浏览器请求的东西

Interface HttpServletRequest实现接口ServletRequest
HttpServletRequest常用方法

 获取请求头的信息

 获取请求体/请求消息



                  


其他功能:get  post的请求 下面的方法通用。(有什么意义:doget就可以直接调用dopost方法   简化代码)

1.0 ——获取不同请求方式的请求参数。



获取参数时乱码问题 :上面读取流的问题。(字节  字符)



2.0——请求转发。

: 一种在服务器跳转资源的方式。

 

将demo08的转发到demo09/  (如果将demo09页跳转到demo08  就死循环了)


共享数据:相当于自己可以设置一些 request属性的值,将值转到,转发的对象中去。

 

 


servletContext:获取  只获取  不讲解这个对象是什么。
getServletContext:


BeanUtils: 将参数封装成对象的工具类(简化数据封装)
对应spring mvc里面的controller  方法接受的参数为对象时。 

 关于封装的实体类:

 工具类的方法:

 上面的设置值就是根据上面的方法来设置值
区分以下  在 工具类中的      成员变量:本来的成员变量             属性:set后面的名

 



响应消息:

response对象

ServeletContext对象

————————

 响应行

响应行

响应空行

响应体:

————————

响应行:




 

响应头:

响应空行  空格

响应体:真实传输的数据。



Respouse对象:访问servlet时创建的

 设置响应消息。

自己就可以设置响应头 响应行 响应空行 响应体

 代码完成重定向

 代码完成输出字节数据   输出字符数据

代码完成验证码

————————

重定向

 

重定与转发的区别:

         
重定向的路径写法:
相对路径:./ 上级目录 ../上上级目录

绝对路径:直接写全路径,或不写localhost

绝对路径的规则:判断请求从哪发出(服务器内部:转发   )(客户端:地址栏  超链接  / 重定向/表单提交)

        给客户端使用:需要加虚拟目录。/day01/demo01  (day01为tomcat设置虚拟路径)

        给服务器用:/demo01


输出字符数据到浏览器:

代码实现 

        

 乱码问题:乱码原因——编码和解码的方式不一样
        中文Windows用的gbk

        读写的流是tomcat提供的,不是我们自己new 的 ,用的是iso-8859-1

实现:设置content-type

简单实现:



验证码:

本质:图片   为了防止机器人注册

可以设置到response里面,让前端拿到显示。

 

 


——实现点击切换验证码;

使用JavaScript发送请求换图片
超链接和

        
 


Servletcontext:代表整个web应用,负责与servlet的容器去交互通信

        获取:————

 功能:——————

获取miniType

 获取共享域对象的内容
不存在转发就可获取:可以共享所有数据  生命周期长

 

 获取真实数据的位置

        我们的项目在服务器和本地空间会有各一份。

        我们这里获取的是服务器上的 。

获取src下:在服务器的class下。



文件下载案例:

        在html里面的超链接标签a里面写的资源路径,点击超链接会弹出下载。
        

         

分析怎么实现:

 ——————

 文件名乱码问题:


 在响应发送之前获取请求的浏览器数据,将文件的编码方式更改



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值