5:Servlet程序-Java Web

5.1 Servlet要求

Servlet要求: 为了创建和部署一个Servlet,需要满足以下基本条件:

  • Java环境:Servlet是基于Java的,所以必须在支持Java EE(现在通常称为Jakarta EE)的环境中开发和运行。
  • Servlet API依赖:编写Servlet时,需要包含Servlet API库作为项目的依赖。在Maven项目中,这可以通过添加对应的坐标到pom.xml文件来实现;在非Maven项目中,则需手动将Servlet API JAR文件添加到类路径中。
  • 容器支持:Servlet必须部署在支持Servlet规范的应用服务器或Servlet容器上,如Apache Tomcat、Jetty等。

5.2 创建Servlet

创建Servlet的过程

  1. 新建Servlet类 :创建一个新的Java类,继承自javax.servlet.http.HttpServlet。这个类至少需要重写doGet()和/或doPost()方法以处理HTTP GET和POST请求。
java 复制代码
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class MyFirstServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 在这里处理GET请求逻辑
        response.getWriter().println("<h1>Hello from My First Servlet!</h1>");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 在这里处理POST请求逻辑
    }
}
  1. 注解配置(可选) :从Servlet 3.0开始,可以使用注解代替web.xml进行配置,例如使用@WebServlet注解直接在Servlet类上指定URL映射。
java 复制代码
@WebServlet("/my-first-servlet")
public class MyFirstServlet extends HttpServlet {
    // ...
}

5.3 第一个Servlet

下面是一个基础Servlet示例,它响应HTTP GET请求并返回简单的HTML内容:

java 复制代码
@WebServlet("/hello")
public class HelloWorldServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html");
        response.getWriter().println("<html><body><h1>Hello, World!</h1></body></html>");
    }
}

当用户访问 http://your-server.com/your-app-context/hello 时,会触发该Servlet并显示 "Hello, World!"。

5.4 Servlet编译

Servlet编译 : 编译Servlet就像编译任何其他Java类一样,使用Java编译器(javac)或其他IDE(如Eclipse、IntelliJ IDEA)的内置编译功能将源代码转换为.class字节码文件。

5.5 Servlet配置

Servlet配置: Servlet可以通过两种方式配置其行为和服务的URL:

  • XML配置(web.xml) :在Web应用的部署描述符web.xml文件中声明Servlet。
xml 复制代码
<servlet>
    <servlet-name>MyFirstServlet</servlet-name>
    <servlet-class>com.example.MyFirstServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>MyFirstServlet</servlet-name>
    <url-pattern>/my-first-url</url-pattern>
</servlet-mapping>

上述配置表示Servlet类com.example.MyFirstServlet被映射到/my-first-url的HTTP请求上。

  • 注解配置:如前所述,Servlet 3.0及以上版本支持使用注解来替代XML配置。

完成编译和配置后,将编译后的Servlet类及其依赖放入Web应用程序结构的正确位置,并部署到Servlet容器中即可启动并访问Servlet。

相关推荐
咩咩啃树皮2 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
阳光是sunny2 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
灯澜忆梦2 小时前
GO_并发编程---定时器
开发语言·后端·golang
阳光是sunny2 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
鱟鲥鳚2 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
皮皮林5512 小时前
开源实力派,给本地 AI 装上深度调研能力,一张 3090 跑到 95.7 分!
后端
努力的小雨3 小时前
把 Windows 桌面图标做成一个会自己运转的小世界
后端
武子康4 小时前
Search Console Platform Properties 扩大 SEO 资产边界:从 Page Ranking 到 Topic Coverage(5 类误读边界 + 3 表数据层设计)
前端·人工智能·后端
大模型码小白4 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
腾渊信息科技公司4 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求