JavaWeb 之

一、继承 Servlet 的分发处理

  1、继承 Servlet 的自定义类

    可以观察到,当实现 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        System.out.println("Hello Servlet 被访问了");
13   }
14}

 

  2、分发处理

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

    Demo:

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

 

 

二、

三、

四、

五、

 

上一篇:Spring MVC相关web.xml和springmvc-servlet.xml的配置


下一篇:Filter