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类的主要内容,如果未能解决你的问题,请参考以下文章
Servlet接口GenericServlet类HttpServlet类