Servlet实现的几种形式

简介: Servlet实现的几种形式

先看示意图:


1.继承GenericServlet

public class TestServlet extends GenericServlet {
    private static final long serialVersionUID = 1L;
    @Override
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException {
    }
}
--------------------------------------------------------
GenericServlet--抽象类,实现了Servlet接口
public abstract class GenericServlet 
    implements Servlet, ServletConfig, java.io.Serializable
{
    private transient ServletConfig config;
    .........
    .........
 }


2.继承HttpServlet

好爽,request,response,config,都是现成的,service方法已经被重写,只需要根据需求调用 doGet() 或者doPost() 方法即可!!!

public class TestServlet2 extends HttpServlet {
    public TestServlet2() {
        super();
    }
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
    }
    public void doDelete(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }
    public void doPut(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }
    public void init() throws ServletException {
    }
}


HttpServlet


这个类继承GenericServlet类,实现了java.io.Serializable的接口,它是个抽象类,给其子类创建一个Http Servlet去适应一个网站。


而HttpServlet的子类必须重写至少一个方法,其中较为经常修改的方法如下:


1、如果你希望servlet支持HTTP的Get请求,重写doGet方法


2、如果你希望servlet支持HTTP的Post请求,重写doPost方法


3、如果你希望servlet不但可以处理数据,还可以处理文件,重写doPut方法。Put的调用和Post相似,它允许客户端把真正的文件存放在服务器上,而不仅仅是传送数据


4、如果你希望servlet允许客户端删除服务器端的文件或者Web页面,重写doDelete方法,它与Put相似。


5、如果你希望控制servlet生命周期所产生的资源,可以重写init和destroy方法


6、如果你希望servlet提供关自身的相关信息,可以调用或重写javax.servlet.http.HttpServlet类继承javax.servlet.GenericServlet类的getServletInfo方法。

public abstract class HttpServlet extends GenericServlet
    implements java.io.Serializable {
    }

3.实现Servlet接口

public class TestServlet implements Servlet {
    private static final long serialVersionUID = 1L;
    public void destroy() {
    }
    public ServletConfig getServletConfig() {
        return null;
    }
    public String getServletInfo() {
        return null;
    }
    public void init(ServletConfig config) throws ServletException {
    }
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException {
    }
}



是不是很不爽,需要重写这么多方法!!!


目录
相关文章
序-Servlet和SpringMVC的联系和区别-配置路径先想好使用的使用的方法,然后匹配的需要的技术
序-Servlet和SpringMVC的联系和区别-配置路径先想好使用的使用的方法,然后匹配的需要的技术
|
8月前
Servlet 教程 之 Servlet 编写过滤器 5
在Servlet教程中,了解如何编写过滤器。示例展示了定义两个过滤器:AuthenFilter和LogFilter。每个过滤器有自己的映射和初始化参数。LogFilter和AuthenFilter都匹配所有URL(/*),按照声明顺序执行。
29 3
|
8月前
|
容器
Servlet 教程 之 Servlet 编写过滤器 6
该教程介绍了如何在Servlet中编写过滤器。可以创建多个过滤器,如AuthenFilter和LogFilter,并通过不同的映射进行配置。过滤器的应用顺序由web.xml中filter-mapping的顺序决定,可通过调整顺序改变过滤器执行的先后。
41 3
|
8月前
|
Java
Servlet 教程 之 Servlet 编写过滤器 3
`LogFilter` 是一个 Servlet 过滤器示例,它打印网站名称并传递请求至过滤链。当与 `DisplayHeader` Servlet(显示 HTTP 头信息)配合使用时,提供基础过滤器概念的理解。过滤器在请求处理前可添加额外功能或修改输入,而 `doGet` 方法则用于响应 GET 请求,展示请求头信息。
29 2
|
8月前
|
XML 数据格式
Servlet 教程 之 Servlet 编写过滤器 4
在Servlet教程中,学习如何编写过滤器。在`web.xml`配置文件中,创建一个名为`LogFilter`的过滤器,类为`com.baidu.test.LogFilter`,设置初始化参数`Site`为`百度`。将过滤器映射到`/*`,确保所有请求都会经过此过滤器。同时定义了一个名为`DisplayHeader`的Servlet,映射到`/TomcatTest/DisplayHeader`路径。
34 1
|
8月前
|
XML Java 数据安全/隐私保护
Servlet 教程 之 Servlet 编写过滤器 1
Servlet过滤器用于动态拦截请求和响应,实现如身份验证、数据压缩、日志记录等多种功能。它们可附加于Servlet、JSP或HTML,按web.xml中配置的顺序执行。Web容器启动时会根据部署描述符创建过滤器实例。
47 2
|
8月前
Servlet 教程 之 Servlet 表单数据 5
Servlet教程展示了如何处理表单数据。一个简单的HTML表单用GET方法提交两个字段:网址名和网址,表单动作指向Servlet "HelloForm"。用户输入后点击"提交",数据将被发送到Servlet进行处理。示例代码已保存为hello.html。
45 2
|
8月前
|
容器
Servlet 教程 之 Servlet 编写过滤器 7
Servlet教程讲解如何编写过滤器。在`web.xml`中,`<filter>`定义过滤器,`<filter-name>`和`<filter-class>`分别设定名称和类。`<init-param>`配置初始化参数。`<filter-mapping>`指定过滤器作用的资源,可通过`<servlet-name>`或`<url-pattern>`定义。`<dispatcher>`定义过滤器触发时机,如REQUEST、INCLUDE、FORWARD和ERROR,控制过滤器何时拦截资源调用。
45 0
|
8月前
Servlet 教程 之 Servlet 编写过滤器 2
Servlet教程讲解如何编写过滤器。在Filter的`init`方法中,通过FilterConfig对象获取配置信息。例如,web.xml定义一个名为LogFilter的过滤器,关联参数Site为"百度"。在`init`方法内,可以使用`config.getInitParameter("Site")`获取到"网站名称:百度",实现过滤器的初始化设置。
26 0
|
关系型数据库 MySQL Java
servlet映射没有问题但是还报404
今天这问题搞了半个小时,地址确认了好多遍肯定没有问题 ,最后其实就是不小心把MySQL的驱动包给点了Add to buildpath;