JavaEE Servlet Base (1)

来源:互联网 发布:2017广告主投放数据 编辑:程序博客网 时间:2024/04/29 03:35

Java EE Servlet Base(1)

http协议

什么是http协议###

  • 超文本传输协议
  • 基于请求和响应的模式. 先有请求,后有响应.
  • 当客户端连接上web服务器后,若想获得web服务器中的某个web资源,必须遵守某一定的通讯格式,HTTP协议用于定义客户端与web服务器通讯的格式

请求

上文提到了,http是基于请求和响应的模式,必须先有请求,web服务器才能予以响应.对于深入探讨http,不再此博客中进行介绍,以下是对请求和响应的大致介绍.

  • 请求行
    请求方式

         POST,GET,HEAD,OPTIONS,DELETE,TRACE,PUT,CONNECT

    在java开发中,通常使用POST和GET两种请求行.
    get把参数显示在地址栏上,安全级别低,不支持大量数据的传输。
    post把参数封装请求体中,安全级别高,支持大量数据的传输.

  • 请求头

    Host: ss1.bdstatic.comUser-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0Accept: */*Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflate, brReferer:https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=csdn&oq=csdn&rsv_pq=d424b3f4000b79ad&rsv_t=5574WQrqirpBGkNbMTelo5PFLCAwTe%2FY8Pc1yDlKBh3HpNTrQQD07uN%2BeEg&rqlang=cn&rsv_enter=1&inputT=378&rsv_sug3=8&rsv_sug1=3&rsv_sug7=100&rsv_sug2=0&rsv_sug4=768&rsv_sug=1Connection: keep-aliveIf-Modified-Since: Thu, 02 Mar 2017 07:54:29 GMTIf-None-Match: "3c6d8-549babd1b9740"Cache-Control: max-age=0

    重要的头

    If-Modified-Since       //必须和响应头信息一起来完成控制本地的缓存.Referer             //当前的网页的来源。(防止盗链)User-Agent          //判断浏览器的版本(文件下载的时候)

响应

  • 响应行

    状态码

        200 :请求处理成功    302 :请求重定向    304 :服务器端资源没有改动,通知客户端查找本地缓存(cookie或者其他)    404 :客户端访问资源不存在    500 :服务器内部出错     
  • 响应头
    重要的头

    Location                    和302一起完成重定向。Last-Modified               和请求头If-Modified-Since一起控制缓存。和状态码304Refresh                 完成页面的定时跳转Content-Disposition         设置文件是以附件打开Expires: -1 Cache-Control: no-cache  Pragma: no-cache 禁用缓存(网银系统) 
  • 重定向和转发的区别
    重定向和转发的区别

Servlet

  • 什么是Servlet

    在oracle提供的官方文档中,对servlet是这么解释的:

    servlet是用于扩展服务器功能的java编程语言类,通过请求-响应编程模型访问的主机应用程序.通过servlet可以响应任何请求.它一般被用于扩展web服务的程序

    对于servlet的使用,下面进行简要的介绍:

    javax.servlet和javax.servlet.http包为写servlet程序提供了接口和类.所有servlet必须实现Servlet接口所定义的生命周期方法.当实现一个一般服务,你可以使用或者扩展GenericServlet类所提供的API.HttpServlet提供方法,比如doGet和doPost来处理特殊的http服务.

Servlet的生命周期

在Servlet接口中定一个5个方法:

/*Servlet接口定义了servlet的初始化,服务的请求,和销毁servlet方法,这些被称为生命周期方法,并按照以下顺序调用:1.servlet被构造,则调用init方法来进行初始化2.任何从客户端过来的请求,将调用servie方法来进行处理3.servlet被销毁的时候,将调用destory方法,然后进行垃圾回收*/void destory();//由servlet容器调用,用以向Servlet指明servlet停止服务.ServletConfig getServletConfig();//返回一个ServletConfig对象,包含这个servlet的初始化和启动参数.String getServletInfo();//返回servlet的信息,比如作者,版本和版权void service(ServletRequest req, ServletResponse res);//由servlet容器调用以允许servlet响应请求。

你可以通过定一个listener来监视servlet生命周期的事件方法在何时被调用.
实际开发中,使用Servlet肯定不会直接实现javax.servlet.Servlet接口,具体从哪个类继承,以及编码,下篇文章中会讲.

0 0