JavaWeb 之 继承 HttpServlet 实现 Servlet 一、继承 Servlet 的分发处理 二、继承 HttpServlet 实现 Servlet 程序 三、使用开发工具创建 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 }

二、继承 HttpServlet 实现 Servlet 程序

  一般在实际项目开发中, 都是使用继承 HttpServlet 类的方式去实现 Servlet 程序:

  (1)编写一个类去继承 HttpServlet 类;

  (2)根据业务需要重写 doGet 或 doPost 方法;

  (3)到 web.xml 中的配置 Servlet 程序的访问地址;

  Servlet 类的代码:

 1 public class HelloServlet3 extends HttpServlet {
 2 
 3     /**
 4      * doPost() 在 post 请求的时候调用
 5      * @param request
 6      * @param response
 7      * @throws ServletException
 8      * @throws IOException
 9      */
10     @Override
11     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
12         System.out.println("HelloServlet3 的 doGet 方法");
13     }
14 
15     /**
16      * doGet() 在 get 请求的时候调用
17      * @param request
18      * @param response
19      * @throws ServletException
20      * @throws IOException
21      */
22     @Override
23     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
24         System.out.println("HelloServlet3 的 doPost 方法");
25     }
26 }

  web.xml 中的配置信息

1     <servlet>
2         <servlet-name>HelloServlet3</servlet-name>
3         <servlet-class>com.njf.java.HelloServlet3</servlet-class>
4     </servlet>
5     <servlet-mapping>
6         <servlet-name>HelloServlet3</servlet-name>
7         <url-pattern>/hello3</url-pattern>
8     </servlet-mapping>

三、使用开发工具创建 Servlet 程序

  1、使用 Eclipse 创建 Servlet 程序

    (1)菜单: new —> Servlet 程序

        JavaWeb 之 继承 HttpServlet 实现 Servlet
一、继承 Servlet 的分发处理
二、继承 HttpServlet 实现 Servlet 程序
三、使用开发工具创建 Servlet 程序

    (2)配置 Servlet 信息

        JavaWeb 之 继承 HttpServlet 实现 Servlet
一、继承 Servlet 的分发处理
二、继承 HttpServlet 实现 Servlet 程序
三、使用开发工具创建 Servlet 程序

  2、使用 Intellij IDEA 创建 Servlet 程序

    (1)菜单:new —> Serlvet 程序

        JavaWeb 之 继承 HttpServlet 实现 Servlet
一、继承 Servlet 的分发处理
二、继承 HttpServlet 实现 Servlet 程序
三、使用开发工具创建 Servlet 程序

    (2)配置 Servlet 信息

        JavaWeb 之 继承 HttpServlet 实现 Servlet
一、继承 Servlet 的分发处理
二、继承 HttpServlet 实现 Servlet 程序
三、使用开发工具创建 Servlet 程序

  3、共性

  可以发现,使用工具创建的 Servlet 是实现 HttpServlet这个类的,然后里面有构造器、doGet() 和 doPost() 方法。

JavaWeb 之 继承 HttpServlet 实现 Servlet
一、继承 Servlet 的分发处理
二、继承 HttpServlet 实现 Servlet 程序
三、使用开发工具创建 Servlet 程序