javaServlet的get和post请求

1、 Servlet在javaWeb中的作用

Java sevlet是运行在 Web 服务器或应用服务器上的程序,它是作为来自Web浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

若是还不明白,可以将Servlet代替成contoller

Servlet规范介绍:
- servlet规范来自于JAVAEE规范中的一种

* 作用:
    1: 在Servlet规范中,指定【动态资源文件】开发步骤
    2: 在Servlet规范中,指定Http服务器调用动态资源文件规则
    3: 在Servelt规范中,指定Http服务器管理动态资源文件实例对象规则    
        - 例: Object newObj = new Object();

2、 Get请求和post请求

浏览器需要和服务端进行交互,而交互就需要用到get或者post请求,但如何运用get和post请求?
这时在浏览器和服务端进行信息交互时,会出现http请求协议包和http响应协议包

  1. http请求协议包
    它作用于浏览器向服务端发送请求时产生的容器,此容器中包括
    请求行:在发送请求时,请求行会归类该请求的相关信息(url、method)
    url:请求地址
    method:请求方式
    请求头:cookie、请求参数【GET】
    空白行:包含其他数据
    请求体:请求参数【POST】
    等于说,在浏览器发起请求后,服务端Servlet接收到的东西其实就是Http请求协议包,我们可以根据这个协议包来获得该请求在协议包中的信息。
    Get和Post请求,在协议包中分别将数据存储于请求头和请求体中

  2. http响应协议包
    与请求协议包一样,也可以看作是一种容器,只不过这个容器是服务端向浏览器发起的一个返回信息
    此容器中包括:
    状态行:包含的是该针对某一请求的状态信息(码)
    响应头:Cookie、Content-Type:编译器
    (content-Type可以说是指定返回信息至浏览器的一种编译方式,在Servlet中可以进行更改)
    空白行:
    响应体:向浏览器返回 文件内容/文件命令 但这些信息内容都是以【二进制】的方式发送

  3. Servlet在服务端中如何处理请求?
    Servlet在服务端中可以看作是一个java类,但它几乎不用main这个主函数,通常使用都是doGet或者doPost这两个方法

这两个方式,都会有对应的请求对象和响应对象,在浏览器选择好对应servlet的路径,浏览器的请求就会发送至对应路径的Servlet中,Servlet会区分浏览器的请求方式是get还是post,如果是get,那么Servlet执行的方式是doGet,post请求则反之。

在请求送至Servlet中的doGet或doPost方法中后,就可以从请求对象中获得请求协议包中的数据,同时,也可以设置将doGet方法完成后发向浏览器的响应对象。

这里不得不提的是,在java中,包含了请求转发等一系列与浏览器相关的操作,这些操作就可以保证java的多态化。

3、 传输过程中的异常情况

在请求和响应的传输过程中,如果传输依赖网络,那么不得不考虑的是网络波动和网络地址问题,这些明显的因素会有导致内容传输不全的可能,如果传输内容跟不全,服务端很可能就会包各种bug,也就是“刚刚运行没问题!但是这下哪蹦出来一个BUG?”的情况。

如果Servlet没有接收到和浏览器传输过来的内容或者内容错误请确认浏览器的缓存是否影响了传输过程或者在浏览器端发送请求的地址是否配对正确。

4、 总结

在javaWeb的开发中,请求这概念一定要弄清楚,像浏览器如何发送一个请求,又如何生成一个请求,发送请求中如何传输,这些都很关键也很重要。

如果还不是很明白,那么可以想象一个这样的场景,一条河,两端各有一人,一条绳子贯穿河流,两人只能通过绳子传输物品,或者说传递纸条进行对话。
在这里,河就意味着浏览器和服务端之间的距离。两端的人一个是浏览器,一个则是服务端。绳子代表得是请求的路径。浏览器和服务端要是想通话那么只能够通过这条绳子进行沟通。
同时,传输过程中的异常,在两端的人和绳子这三者中指定有一个出现了问题。

你可能感兴趣的:(java,html,服务器,前端,javascript,java)