service() 方法是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。本质上Service()方法才是servlet中真正用于处理请求的方法!!!!
每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。
service() 方法由容器调用,service 方法在适当的时候调用 doGet、doPost、doPut、doDelete 等方法。所以,您不用对 service() 方法做任何动作,您只需要根据来自客户端的请求类型来重写 doGet() 或 doPost() 即可。
doGet() 方法
GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。
doPost() 方法
POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。
很多情况下,需要传递一些信息,从浏览器到 Web 服务器,最终到后台程序。浏览器使用两种方法可将这些信息传递到 Web 服务器,分别为 GET 方法和 POST 方法。
http://www.test.com/hello?key1=value1&key2=value2
GET 方法是默认的从浏览器向 Web 服务器传递信息的方法,它会产生一个很长的字符串,出现在浏览器的地址栏中。如果您要向服务器传递的是密码或其他的敏感信息,请不要使用 GET 方法。GET 方法有大小限制:请求字符串中最多只能有 1024 个字符。
另一个向后台程序传递信息的比较可靠的方法是 POST 方法。POST 方法打包信息的方式与 GET 方法基本相同,但是 POST 方法不是把信息作为 URL 中 ? 字符后的文本字符串进行发送,而是把这些信息作为一个单独的消息。消息以标准输出的形式传到后台程序,您可以解析和使用这些标准输出。Servlet 使用 doPost() 方法处理这种类型的请求。
destroy() 方法:
destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。而servlet的生命周期是在服务器关闭的时候结束的,也就是在servlet被初始化到服务器关闭之前,中间的过程都是servlet的生命周期,因为这样servlet就可以一直接收来自客户端的请求,而不用一直打开关闭打开关闭。就像开店一样,只要早上开一下,晚上回家以后关一下就好了,中间可以一直开着。
destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。
在调用 destroy() 方法之后,servlet 对象被标记为垃圾回收。destroy 方法定义如下所示:
Javaweb当中对Servlet中的doget和dopost方法的简单使用
上述为一个jsp文件代码。
通过href超链接进行请求的访问时,将会采用get方式将数据信息发送到所制定的Servlet对象当中的doGet方法中来进行数据的处理操作
form表当中设置了提交的方法为post方式进行请求的发送之后,请求数据将会同过制定的Servlet方法当中的dopost方法来进行数据的请求操作
上述为一个Servlet程序代码,在该代码当中进行了doget和dopost方法的重写操作。用于处理客户端所发来的get类型的请求和post类型的请求。
Servlet是实现了javax.servlet.Servlet接口的类,这个接口规定了特定的方法来处理特定的请求,我们只需要实现Servlet相关的方法,Servlet规范是建立在HTTP协议上的,http1.1规范支持OPTIONS/GET/POST/HEAD/PUT/DELETE/TRACE等7种访问方式。下面我们重点介绍Get/Post。
GET:表示查询信息,URL中附带少量参数信息,URL总长度不超过255个字符,参数还会在浏览器的地址栏中显示
POST:表示提交信息,一般用于提交大数据信息或者文件,提交的内容不收长度限制,也不会在地址栏中显示。
(可以结合下面http中的get和post请求方式来看)