Servlet的三种写法

一、什么是Servlet:

     Java Servlet(服务端小应用程序)是一种基于 Java 的技术,用于处理来自 Web 客户端的 HTTP 请求,并生成相应的响应。Servlet 可以看作是服务器端的 Java 应用程序组件,它们扩展了 Web 服务器的功能,使其能够处理复杂的业务逻辑和动态内容生成。

二、环境搭配:

首先我们需要将servlet依赖复制粘贴到pom.xml文件里:

   <!--        servletApi的依赖-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>

这样我们就能使用servlet接口。

三、写接口:

1、直接实现 Servlet 接口

直接实现 Servlet 接口是最基础的方式,需要实现 initservicedestroy 等方法。这种方式较为灵活,但同时也需要更多手动处理的代码。

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

@WebServlet("/simple-servlet")
public class SimpleServlet implements Servlet {

    @Override
         //这个方法在 Servlet 被加载到内存中时调用,用于执行初始化任务。
    public void init(ServletConfig config) throws ServletException {
        // 初始化逻辑
    }

    @Override
       //返回当前 Servlet 的配置对象。
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
       //这个方法用于处理客户端的请求
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
       // 处理请求
        System.out.println("Received request");
        ((HttpServletResponse) res).sendRedirect("/response");
    }

    @Override
      //返回关于 Servlet 的信息字符串
    public String getServletInfo() {
        return "SimpleServlet";
    }

    @Override
//当 Servlet 被卸载或容器关闭时调用。
    public void destroy() {
        // 销毁逻辑
    }
}

2、继承 GenericServlet 类

   GenericServlet 类实现了 Servlet 接口,并提供了一些默认实现。这种方式减少了需要自己实现的方法数量,但仍然需要实现 service 方法来处理请求。

import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import java.io.IOException;

@WebServlet("/generic-servlet")
public class GenericServletExample extends GenericServlet {

    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    }

    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        // 处理请求
        System.out.println("Received request");
        ((HttpServletResponse) res).sendRedirect("/response");
    }

    @Override
    public void destroy() {
        // 销毁逻辑
    }
}

3、继承 HttpServlet 类

HttpServlet 类继承自 GenericServlet 类,为处理 HTTP 请求提供了便利。这是最常用的方式,因为它为 HTTP 请求提供了默认的 doGetdoPost 方法。只需要重写这些方法即可处理特定的 HTTP 请求。

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/http-servlet")
public class HttpExampleServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 处理 GET 请求
        System.out.println("Received GET request");
        resp.sendRedirect("/response");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 处理 POST 请求
        System.out.println("Received POST request");
        resp.sendRedirect("/response");
    }
}

这三类方法可以处理Http的访问请求并处理

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring和Tomcat之间没有直接的对应关系,它们是不同的框架/工具。Spring是一个Java企业级开发框架,它提供了大量的组件和工具,可以帮助我们更快、更方便地开发Java应用程序。而Tomcat是一个开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,可以帮助我们部署和运行Java Web应用程序。 Servlet是Java Web开发中的重要组件,它可以接收HTTP请求并返回HTTP响应。不同版本的Servlet有不同的写法。以下是各版本Servlet写法: - Servlet 2.5及以下版本: ```java public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 处理GET请求 } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 处理POST请求 } } ``` - Servlet 3.0及以上版本: ```java @WebServlet(name = "MyServlet", urlPatterns = {"/myServlet"}) public class MyServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 处理POST请求 } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 处理GET请求 } } ``` 注意,Servlet 3.0及以上版本支持注解,可以通过@WebServlet注解来指定Servlet的名称和URL模式。而Servlet 2.5及以下版本需要在web.xml文件中配置Servlet
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值