GenericServlet类

Posted 你要永远相信光z

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GenericServlet类相关的知识,希望对你有一定的参考价值。

GenericServlet类

javax. servlet. GenericServlet抽象类实现了Servlet接口和ServletConfig 接口,它提供了Servlet接口中除了service()外的所有方法的实现,同时增加了几个支持日志的方法。它与其他接口和类的层次关系如下图所示。
在这里插入图片描述

可以扩展GenericServlet类并实现service()方法来创建任何类型的Servlet。

下面通过的GenericDemoServlet类继承GenericServlet类并实现service()方法。

创建Servlet

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

创建Servlet默认是继承HttpServlet的,以及重写了HttpServlet的两个方法,这些都是不需要的,我们研究的的是GenericServlet抽象类,下面对代码进行修改

package com.example.DemoTest;

import javax.servlet.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "GenericDemoServlet", value = "/generic-demo-servlet")
public class GenericDemoServlet extends GenericServlet {
    /* 重写父类方法 */
    @Override
    public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
        ServletConfig servletConfig = getServletConfig();
        String servletName = servletConfig.getServletName();
        response.setContentType("text/html; charset = utf-8"); //设置响应的内容类型
        PrintWriter out = response.getWriter(); //获得输出流对象
        /* 向浏览器写出html数据*/
        out.print("<!DOCTYPE html>" + "<html>"
                + "<body>hello from " + servletName + "<br>"
                + "世界那么大,我想去看看."
                + "</body></html>");
    }
}

该程序覆盖了GenericServlet类的service()方法,该方法用于为客户提供服务,它的格式如下:

 public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException 

参数ServletRequest和 ServletResponse分别表示请求对象和响应对象。当用户请求该Servlet时,Web容器创建这两个对象并传递给service()方法。

  • ServletRequest接口: 在service()方法中,访问ServletRequest接口的有关方法可以获得请求的信息,如请求参数请求的协议请求的内容类型等。
  • ServletResponse接口: ServletResponse是独立于任何协议的响应对象,定义了向客户发送响应的方法,如调用它的setContentType() 方法可以设置响应的内容类型,调用它的getWriter() 方法可以得到输出流PrintWriter对象,通过输出流对象可向客户写出 HTML数据。

启动浏览器,使用URL访问该Servlet,结果如下
在这里插入图片描述

以上是关于GenericServlet类的主要内容,如果未能解决你的问题,请参考以下文章

GenericServlet类

GenericServlet类

Servlet接口GenericServlet类HttpServlet类

适配器设计模式及GenericServlet

适配器模式改造Servlet(GenericServlet)

GenericServlet