JavaWeb中Servlet的实现方式

本文介绍了三种常见的Servlet实现方式:通过实现Servlet接口、继承GenericServlet并重写service方法,以及利用HttpServlet注解简化开发。详细讲解了每个方法的步骤和配置XML文件的示例。
摘要由CSDN通过智能技术生成

1、第一种实现方式

1.实现Servlet接口

2.重写这个接口的五个方法

3.给当前类设置URL路径(XML方式)

public class FirstServlet implements Servlet {
    private ServletConfig config;

    // 初始化方法 会在Servlet创建时调用,并且只会调用一次
    // 默认情况下,在第一次请求时创建当前Servlet
    public void init(ServletConfig config) throws ServletException {
        this.config = config; // 将局部变量的值赋予给成员变量
        System.out.println("我是FirstServlet的初始化方法!");
    }

    // 获取到config对象
    public ServletConfig getServletConfig() {
        return config;
    }

    // 服务方法 最重要的方法 每一次请求访问这个方法
    public void service(ServletRequest req, ServletResponse resp)
            throws ServletException, IOException {
        System.out.println("我是FirstServlet的service方法!");
    }

    // 返回当前Servlet的信息
    public String getServletInfo() {
        return "我是FirstServlet";
    }

    // 销毁方法,会在Servlet被销毁时执行,并且只执行一次 服务器关闭时
    public void destroy() {
        System.out.println("FirstServlet被销毁了!");
    }
}

 设置xml的路径:

<!--设置Servlet的URL路径-->
    <servlet>
        <servlet-name>first</servlet-name>
        <servlet-class>pack0410.servlet.FirstServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>first</servlet-name>
        <!--/代表根目录  webapp文件就是根目录-->
        <url-pattern>/a</url-pattern>
    </servlet-mapping>

2、第二种实现方式

1.继承GenericServlet抽象类

2.重写service方法

3.在web.xml中注册当前Servlet

public class SecondServlet extends GenericServlet {
    @Override
    public void service(ServletRequest req, ServletResponse resp)
            throws ServletException, IOException {
        System.out.println("我是SecondServlet的服务方法!");
    }
}

  设置xml的路径:

<servlet>
    <servlet-name>second</servlet-name>
    <servlet-class>pack0410.servlet.SecondServlet</servlet-class>
</servlet>
<servlet-mapping>
     <servlet-name>second</servlet-name>
     <url-pattern>/b</url-pattern>
</servlet-mapping>

2、第三种实现方式(最常用的实现方式

1.继承HttpServlet,只针对于Http协议

2.重写doGet和doPost请求

3.使用注解的方式来注册Servlet(注解和xml方式可以互换)

@WebServlet("/c")//注解
public class ThirdServlet extends HttpServlet {

    // 处理所有的get请求
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("我是ThirdServlet的get请求");
    }
    // 处理所有的post请求
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("我是ThirdServlet的post请求");
    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夙愿-妍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值