【Servlet 5.0】入门教程


Tomcat版本:10.0.10
Servlet版本:5.0
JDK版本:11

创建项目

使用maven创建一个webapp项目

image

填好项目名称

image

配置好maven的家目录、配置文件、本地仓库路径,即可点击完成

image


导入Servlet包

在项目下的pom.xml里加上依赖包

注意:这里Tomcat10使用的servlet在jakarta包下

  <dependencies>
    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
      <groupId>jakarta.servlet</groupId>
      <artifactId>jakarta.servlet-api</artifactId>
      <version>5.0.0</version>
    </dependency>
    <dependency>
      <groupId>jakarta.servlet.jsp</groupId>
      <artifactId>jakarta.servlet.jsp-api</artifactId>
      <version>3.0.0</version>
    </dependency>
  </dependencies>

手动创建所需目录

image


Servlet配置文件(web.xml)

如Servlet配置文件版本比较久,建议更改为高版本

image

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">

</web-app>

创建Servlet实例

方法一(实现接口)

package com.hua.servlet;

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

/**
 *  实现Servlet接口里的方法
 */
public class HelloServletImpl implements Servlet {

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

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    /**
     * 当客户端访问了绑定该Servlet的路径时,会执行service方法
     * @param req   request,客户端请求对象
     * @param res   response,服务端响应对象
     * @throws ServletException
     * @throws IOException
     */
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("进入service方法");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
    }
}

方法二(继承)【建议使用】

package com.hua.servlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
 * 1、继承HttpServlet
 * 2、重写doGet和doPost方法,客户端的get请求和post请求会分别走到对应的方法里
 */
public class HelloServletExtend extends HttpServlet {
    /**
     * @param req   request,客户端请求对象
     * @param resp   response,服务端响应对象
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("进入HelloServletExtend--》doGet方法");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("进入HelloServletExtend--》doPost方法");
    }
}

方法三 Idea快捷创建

image

image

自动创建Servlet类和Servlet配置,不过需要手动增加<servlet-mapping>

image

配置Servlet(web.xml)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">
    
<!--    servlet标签给tomcat配置Servlet程序-->
<!--    每一个Servlet程序都要做一份配置-->
    <servlet>
<!--    Servlet的名称,建议是类名-->
        <servlet-name>HelloServletImpl</servlet-name>
<!--        Servlet类的全路径-->
        <servlet-class>com.hua.servlet.HelloServletImpl</servlet-class>
    </servlet>
    <servlet-mapping>
<!--        对应Servlet的名称-->
        <servlet-name>HelloServletImpl</servlet-name>
<!--        配置路径,当客户端访问下面的路径,就会访问到相对应的Servlet类处理-->
        <url-pattern>/hello1</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>HelloServletExtend</servlet-name>
        <servlet-class>com.hua.servlet.HelloServletExtend</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServletExtend</servlet-name>
        <url-pattern>/hello2</url-pattern>
    </servlet-mapping>
</web-app>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM