zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    POI2014 洛谷P3574 FarmCraft 题解
    JZOJ 3468 OSU!题解
    sublime配置C++编译环境
    本地配置gitee
    数论基础
    HDU
    HDU-3033 I love sneakers! 题解
    HDU-4341 Gold miner 题解
    HDU
    MyBatis框架及原理分析
  • 原文地址:https://www.cnblogs.com/niujifei/p/12422757.html
Copyright © 2011-2022 走看看