Servlet之二 —— HttpServlet的doGet()和doPost()

我们都知道,Servlet程序在Servlet接口中定义了init(),service(),destroy()的方法名称,但是并没有具体实现这些方法。

接着,它在javax.servlet.GenericServlet类中实现了service()方法。而javax.servlet.http.HttpServlet是GenericServlet的子类,所以在HttpServlet中也实现了service()方法,而且,在HttpServlet中还实现了doGet(),doPost(),doOptions(),doTrace(),doDelete(),doHead(),doPut()这7个方法。

因此,通常写Httpservlet时,都是覆盖上面的7中方法中的一种或几种。而最常使用的方法是doGet()、doPost()这两个。

在继承了HttpServlet的Servlet程序执行请求时,它首先执行service()方法,来判断接下来是执行doGet()还是doPost()方法,因此,HttpServlet中的service()就是做一个执行doGet(),doPost()方法的判断。然后去执行相应的方法。

在Tomcat中,默认是执行doGet()方法的,因为doGet()方法,是处理少量数据的,所以,执行的速度较doPost()快。

又因为doGet()和doPost()是用来处理表单请求的,所以,在程序中具体要用doGet(),还是doPost()方法,就要看form标签中method属性的值是“get”还是“post”了。

一般,如果不确定URL请求的是get还是post方法时,就override这两个方法,只是,在一个方法中写具体实现步骤,在另一个方法中去调用实现了具体方法的一个。

下面附一个小例子:

<span style="font-family:SimSun;font-size:18px;">package self.servlet.c;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.*;

/**
 * @author time
 *
 */
@SuppressWarnings("unused")
public class SimpleServlet extends HttpServlet {

	/**
	 *
	 */
	private static final long serialVersionUID = 1L;

	@Override
	public void doPost(HttpServletRequest request,HttpServletResponse response)
				throws ServletException,IOException{
		response.setContentType("text/html");

		PrintWriter writer = response.getWriter();
		writer.print("<html><head></head><body style='font-color:#ee33e3'>Simple Servlet</body></html>");
	}

	@Override
	public void doGet(HttpServletRequest request,HttpServletResponse response)
			throws ServletException,IOException{
		doPost(request,response);
	}

}
</span>
时间: 2024-10-12 13:07:02

Servlet之二 —— HttpServlet的doGet()和doPost()的相关文章

Servlet的Service方法和doget 和 dopost方法的区别,常见的错误解析

package com.sxt.in; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Service方法和doget 和 dopost方

在servlet中出现service()、doGet()和doPost()方法时的执行问题

在建立一个继承了HttpServlet类并重写了该类的service().doPost()和doGet()方法时,java会如何执行?其实若是该三个方法都在存在的情况下,java只会执行service()方法,而其他的两种方法不会被执行.若是没有service() 方法,则是根据jsp传入方式选择对应的方法.比如说,若是jsp是以Post方式传入数据,则是调用doPost()方法处理数据.但是一般上在建立一个继承HttpServlet类时都会重写doPost()和doGet()方法,而且会在其中

SERVLET中的doGet与doPost两个方法之间的区别

get和post是http协议的两种方法,另外还有head, delete等 这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串.post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传. 在servlet开发中,以doGet()和doPost()分别处理get和post方法. 首先判断请求时是get还是post,如果是get就调用doGet(), 如果是post就调用doPost().都会执行这个方法. 1.

servlet中doGet()和doPost()的用法

转自:https://blog.csdn.net/qq_38963960/article/details/79468182 1.servlet中doGet()和doPost()的用法 一般来说我们是用不到doGet方法的,doGet方法提交表单的时候会在url后边显示提交的内容,所以不安全.而且doGet方法只能提交256个字符(1024字节),而doPost没有限制,因为get方式数据的传输载体是URL(提交方式能form,也能任意的URL链接),而POST是HTTP头键值对(只能以form方

[Servlet]深入研究HttpServlet

HttpServlet概述 在大多数的Web应用程序中,客户端都是通过Http协议去访问服务器端的资源,而我们编写的Servlet主要是用于Http协议的请求和响应处理.为了快速开发应用于Http协议的Servlet类,Sun公司在javax.servlet.http包中提供了一个抽象类HttpServlet,它继承于GenericServlet,用于创建适合基于Http协议的Web Servlet. public abstract class HttpServlet extends Gener

doGet和doPost的区别

doget和dopost的区别 get和post是http协议的两种方法,另外还有head, delete等 这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串.post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传. 在servlet开发中,以doGet()和doPost()分别处理get和post方法. 首先判断请求时是get还是post,如果是get就调用doGet(), 如果是post就调用doPos

android doGet和doPost

doGet和doPost的差别 get和post是http协议的两种方法,另外还有head, delete等 这两种方法有本质的差别,get仅仅有一个流,參数附加在url后.大小个数有严格限制且仅仅能是字符串. post的參数是通过另外的流传递的.不通过url.所以能够非常大,也能够传递二进制数据,如文件的上传. 在servlet开发中,以doGet()和doPost()分别处理get和post方法. 首先推断请求时是get还是post,假设是get就调用doGet(), 假设是post就调用d

Servlet的doGet与doPost方法的区别与使用

Servlet的doGet与doPost方法的区别与使用 2016年07月07日 13:05:13 阅读数:10222 一,区别 在使用表单提交数据到服务器的时候有两张方式可共选择,一个是post一个是get.可在<form>中的method属性中指定提交的方式.如:<form action="inputForm"method="get">,如果不指定method属性,则会默认该属性为"get"方式. Get和post都能

【Servlet】doGet()与doPost()的区别

1 doGet与doPost的区别 2 3 1.Servlet接口只定义了一个服务方法--service 4 2.当发出客户端请求时,调用service方法并传递一个请求和响应对象 5 3.使用时经常在doPost()中调用doGet()方法,所以创建servlet时可以不要都Post()方法, 6 4.doGet()只有一个流,参数附加在URL后,大小个数有严格限制且只能是字符串 7 doPost()的参数是通过另外的流传递的,不能通过URL,所以可以很大,也可以传递二进制数据,如文件的上传