本文主要是介绍说道说道JSP和HTTP吧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
大家都知道的是JSP(Java Server Pages),也知道有个传输协议为HTTP协议,那么他俩到底有啥关系?像是有关系但又有点说不清楚,这里咱们一块捋一捋。
我们说servlet处理客户端请求的方式有2种:get和post。
也知道了http的8种请求方法:get、post、put、delete、options、trace、connect、head。
那http的get、post方法和servlet处理请求的get、post方式有啥关系呢?我们再说servle的时候都说get和post根据表单的method方法的方式来确定是get还是post,那就有个问题了。
我们刚开始打开浏览器还没有提交表单的时候,浏览器怎么知道是用哪种方式呢?是get还是post呢,毕竟我们只在浏览器输入了URL地址,没有提交任何form。
为什么会有以上的疑问?
因为我们上面提到的http协议,在发送报文的时候,报文前面都是包含请求方式的,例如我们对我们自己的网站里面的index.html请求,在浏览器输入http://localhost:8080/index.html,回车之后客户端向服务器端发送请求:
GET /index.html HTTP/1.0
Host: www.gefionsoftware.com
User-Agent: Mozilla/4.5 [en] (WinNT;I)
Accept: image/gif, image/jpeg, image/pjpeg, image/ping,*/*
Accept-Language : en
Accept-Charset : iso-8859-1,*,utf-8
上面的例子里面,第一行是请求行,表明是GET命令,请求的资源是index.html ,协议是HTTP1.0。
那么GET命令是怎么确定的呢?
1、浏览器会发送Get请求的情况
A、直接在浏览器地址栏输入某个地址。
B、点击某个链接。
C、表单默认的提交方式,也就是不指定method方法的时候,默认是Get方式。
通过上面的说明,大家应该就清楚了,直接在浏览器输入地址是get方式发送请求。
2、浏览器会发送post请求的情况
设置表单method = “post”,在这种情况下,请求方式才会是post方式。
3、get请求的特点
请求参数会添加到URL的后面,只能添加少量参数(因为请求行只有一行,大约只能存放2K左右的数据)
请求参数会显示在浏览器地址栏,路由器会记录请求地址
4、post请求的特点
1、 请求参数添加到实体内容里面,可以添加大量的参数(也解释了为什么浏览器地址栏不能发送post请求,在地址栏里我们只能填写URL,并不能进入到Http包的实体当中)
2、 相对安全,但是,post请求不会对请求参数进行加密处理(可以使用https协议来保证数据安全)。
5、http和jsp没有必然联系
今天去讲http报文的默认get方式,其实要表达的内容跟jsp没有关系,但我们在学jsp的时候,我们在服务器端放着的静态或者动态页面,怎么去展示呢?其实就是浏览器端通过http协议或者报文的方式发送请求到服务器端,服务器根据请求内容去进行业务逻辑处理,然后响应到浏览器的页面上。
举个例子:在浏览器输入栏中输入https://blog.csdn.net/luohaitao 我的博客主页就出现在浏览器窗口。这背后是什么在起作用呢?这个就需要弄明白。
使用浏览器从网站获取HTML页面时,实际在使用Hypertext Transfer Protocol (HTTP) HTTP协议规定了信息在Internet上的传输方法,特别规定了浏览器与服务器的交互方法。
从网站获取页面时,浏览器在网站上打开了一个对网络服务器的连接,并发出请求,服务器收到请求后响应,所以HTTP协议被称作“请求和响应”协议。
浏览器可以直接请求某个网址例如:www.baidu.com,域名映射到ip,然后关联到某个welcome.html或者index.html或者welcome.jsp,也或者是通过映射过滤去处理浏览器的请求。
一个典型请求通常包含许多头,称作请求的HTTP头。头提供了关于信息体的附加信息及请求的来源,其中有些头是标准的,有些头和特定的浏览器有关。
一个请求还可能包含信息体。例如信息体可包含HTML表单的内容。在HTML表单上单击Submit按钮时,该表单使用ACTION=“POST”或ACTION=”GET”特征,输入表单的内容都被发送到服务器上,该表单内容就由POST方法或GET方法在请求的信息体中发送。
服务器在收到请求时,返回HTTP响应。响应也有某种结构,每个响应都由状态行开始,可以包含几个头及可能的信息体,称作响应的HTTP头和响应信息体。这些头和信息体由服务器发送给客户的浏览器,信息体就是客户请求的网页运行结果,对于JSP页面,就是网页的静态信息。
6、jsp怎么响应http的请求方法
还记得前面讲的http的8种请求方法:get、post、put、delete、options、trace、connect、head吧,在讲servlet的时候我们重点提到了响应get和post的方法,对应的servlet对象为:HttpServlet,那么我们很自然的要问,http的其他请求方法怎么办?其实吧,HttpServlet里面也都有了,只是我们前面没用到罢了。
doHead():用来处理HTTP客户端的HEAD请求。
doGet():如果HTTP客户端发给服务器的请求是GET方式,这个方法将被service方法调用。
doPost(): 如果HTTP客户端发给服务器的请水是POSI万式,区个方法会被service方法调用。
doDelete():用来处理HTTP客户端的DELETE请求。
doOptions():用来处理HTTP的OPTIONS请求此外,还有doPut()方法和doTrace()
铁子们,是不是都get到了?能理解你们的是不是只有我才能彩透你们想要问什么,这下心里不堵得慌了吧。
参考资料:
https://blog.csdn.net/guanjungao/article/details/36191107
https://blog.csdn.net/m0_67444502/article/details/127979516
https://blog.csdn.net/m0_64892750/article/details/122114632
这篇关于说道说道JSP和HTTP吧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!