up:: 请求参数的发送与接收


1:Get方式参数会把参数放在url中传递,会显示出来;Post方式会将参数放在请求体中,隐性的发送;


2:默认是get方式:


3.1:get方式时,在浏览器中查看参数:

3.2:post方式时,在浏览器中查看参数:

发现,post请求方式中,url中不显示参数了

post方法将参数放在了请求体中;点击下面Form Data旁边的view source可以看到参数的具体形式;

其实post和get的参数形式是一样的,都是【?num1=4 &num2=7】;只是这两种方式参数存放的位置不同而已,get方式将参数放在了Query String Parameter中,post方式将参数放在了Form Data中


4:注解: request.getMethod():获取当前的请求的传递方式

可以通过:String methodName = request.getMethod();获取当前的请求是以什么方式传递的;


5:doGet()方法,doPost()方法

service是请求处理的核心方法,无论是get或者post都会被service()方法接收到;

但是,在实际工作中,get请求和post请求是需要分开处理的,他们的处理逻辑可能不一样;如果get和post都让service()方法处理的话,service()方法未免权力过大。

    public class RequestMethodServlet extends HttpServlet{
 
    	// doGet()方法,专用于处理get请求
    	public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException {
    		String name = request.getParameter("name");
    		response.getWriter().println("<h1 style='color:green'>"+name+"</h1>");
    	}
    	// doPost()方法,专用于处理post请求
    	public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException {
    		String name = request.getParameter("name");
    		response.getWriter().println("<h1 style='color:red'>"+name+"</h1>");
    	}
    }
 
service()方法对所有请求无差别处理;当我们不重写service()方法是,其实sevice()方法相当于要给分发器,他是doGet()方法和doPost()方法的上级;当一个请求过来后,service()方法接收,如果是get方式service()方法会把这个请求转给doGet()方法处理;如果是post方式,service()方法会把这个请求转给doPost()方法处理
 
* * *

6:Get和Post的应用场景


注解:本篇博客的代码在FristServlet中,代码在Github上的FirstServlet这个仓库;