Servlet的两种创建方法

本文介绍了两种创建Servlet的方法:常规方法和注解方式。常规方法包括继承HttpServlet并重写doGet/doPost方法,在web.xml中配置;注解方式则简化了配置过程,但需要Servlet 3.0及以上版本支持。


Servlet的两种创建方法


我们所说servlet是一种运行在服务器端的扩展程序,继承自javax.servlet.http.HttpServlet。HttpServlet继承GenericServlet,GenericServlet实现了

Servlet, ServletConfig, Serializable这三个接口。它的作用是处理客户端发送的请求。

访问方法:http://主机名:端口号/servlet名称  这里说servlet名称是不准确的,应该说是servlet名称的映射名称或者是urlPatterns

例如:http://localhost:8080/hehe 即可访问该servlet


1.常规方法

(1)创建一个类,继承javax.servlet.http.HttpServlet,重写doPost,doGet等方法


package com.test.hehe;

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


public class Haha extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().println("hahaha");
    }
}



(2)在项目的/web/WEB-INF/目录下,打开web.xml,在<web-app> 这里是内部 </web-app>的内部加入如下几行:

    <servlet>
        <display-name>Haha</display-name>
        <servlet-name>Haha</servlet-name>
        <servlet-class>com.test.hehe.Haha</servlet-class>
    </servlet>


    <servlet-mapping>
        <servlet-name>Haha</servlet-name>
        <url-pattern>/hahaha</url-pattern>
    </servlet-mapping>

在浏览器中输入http://localhost:8080/hahaha就可以看见结果了(前提是,你已经启动了服务器,并且该项目已经在服务器中跑了,端口号是8080,主机名是localhost)。


2.注解

这个创建sevrlet很简单,但是在较低的版本中不支持,废话不多说,看代码:


package com.test.hehe;

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(name="hehe",urlPatterns="/hehe")
public class SayHehe extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().println("hehe");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {    
        resp.getWriter().println("hehe");
}}



一定要 importjavax.servlet.annotation.WebServlet;

并在顶部写:@WebServlet(name="hehe",urlPatterns="/hehe")

http://localhost:8080/hehe 就可以看到效果了


### 一、创建 Java Servlet两种方式 #### 1. 手动创建 Servlet 手动创建 Servlet 是一种基础方式,适合理解 Servlet 的工作原理。具体步骤如下: - 首先创建一个 Web 项目,并在项目的 `src` 目录下新建一个类文件。 - 创建的类需要继承 `HttpServlet` 类以获得 Servlet 功能。 - 接下来重写 `doGet()` 和 `doPost()` 方法来处理 HTTP 请求。 - 完成类的编写后,还需在 `web.xml` 文件中配置该 Servlet 的信息,包括其名称和映射路径。 示例代码如下所示: ```java import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { // 处理 GET 请求的逻辑 } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { // 处理 POST 请求的逻辑 } } ``` 然后,在 `web.xml` 中添加相应的配置: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myServlet</url-pattern> </servlet-mapping> ``` 这种方式有助于深入理解 Servlet 的生命周期和请求处理机制[^1]。 #### 2. 使用 IDE(如 IntelliJ IDEA 或 Eclipse)自动创建 Servlet 现代集成开发环境(IDE)提供了便捷的方式来创建 Servlet,大大简化了开发流程。 ##### 在 IntelliJ IDEA 中创建 Servlet: - 创建一个普通的 Java 项目,并确保已部署 Tomcat 服务器。 - 使用插件或内置功能创建 Servlet,IDE 会自动生成必要的类和配置文件。 ##### 在 Eclipse 中创建 Servlet: - 右键点击项目中的 `src` 目录,选择 `New` -> `Servlet`。 - 输入 Servlet 名称,例如 `Hello`。 - 可以选择是否生成 `doGet()`、`doPost()` 等方法。 - 完成操作后,Eclipse 会自动创建 Servlet 类并在 `web.xml` 中进行配置。 这种方式适用于快速开发,尤其适合已经熟悉 Servlet 基本概念的开发者[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值