JavaWeb 之 GET和POST 请求的分发处理

一、前提

  可以观察到,当实现 Servlet 接口时,里面提供了一个 service() 方法,但是当从客户端对服务器进行访问的时候,无论是采用 GET 方式还是 POST 方式,都会执行这一个里面的代码。

  如果我们需要对不同的请求作出不同的处理,这时就需要进行分发处理。

  Servlet 示例:

 1 public class HelloServlet implements Servlet {
 2   /**
 3   * service 方法是专门用来处理请求和响应的
 4   * @param servletRequest
 5   * @param servletResponse
 6   * @throws ServletException
 7   * @throws IOException
 8   */
 9   @Override
10   public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception{
11   12     System.out.println("Hello Servlet 被访问了");
13   }
14  }

二、分发处理

  在 service() 方法中可以获取 servletRequest,然后把它强转成 HttpServletRequest 对象,就可以获取对应的请求方式,然后再处理。

  Demo:

 1 import javax.servlet.*;
 2 import javax.servlet.http.HttpServletRequest;
 3 import java.io.IOException;
 4 
 5 public class HelloServlet implements Servlet {
 6 
 7    /**
 8      * service方法是专门用来处理请求和响应的
 9      * @param servletRequest
10      * @param servletResponse
11      * @throws ServletException
12      * @throws IOException
13      */
14     @Override
15     public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
16         System.out.println("service === Hello Servlet 被访问了");
17         // 类型转换(因为它有getMethod()方法)
18         HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
19         // 获取请求的方式
20         String method = httpServletRequest.getMethod();
21 
22         if ("GET".equals(method)) {
23             doGet();
24         } else if ("POST".equals(method)) {
25            doPost();
26         }
27 
28     }
29 
30     /**
31      * 做get请求的操作
32      */
33     public void doGet(){
34         System.out.println("get请求");
35         System.out.println("get请求");
36     }
37     /**
38      * 做post请求的操作
39      */
40     public void doPost(){
41         System.out.println("post请求");
42         System.out.println("post请求");
43     }
44 
45 }

猜你喜欢

转载自www.cnblogs.com/niujifei/p/12422757.html