涛声依旧在 发表于 2024-8-1 08:42:46

javax.servlet 和 jakarta.servlet的关系和利用tomcat部署 jakarta.servlet

1,javax.servlet 和 jakarta.servlet的关系

javax.servlet 和 jakarta.servlet 是 Java Servlet API 的两个版本。
Java Servlet API 是由 Sun Microsystems(如今是 Oracle)开发和维护的,其包名以 javax.servlet 开头。从 Java EE 8 开始,Servlet API 的维护权转交给了 Eclipse Foundation 的 Jakarta EE 社区,因此,在最新的 Jakarta EE 版本中,Servlet API 的包名已经更改为 jakarta.servlet。
javax.servlet 是旧版本的包名,而 jakarta.servlet 是新版本的包名。这个变化是为了反映 Jakarta EE 作为一个独立的开源项目,并且将标准 Java 技术规范的发展移交给了 Jakarta EE 社区。
虽然包名发生了变化,但是 Servlet API 的焦点功能和用法并没有大的改变。大多数代码可以无缝地迁移到 jakarta.servlet 包下,只需要修改导入语句和相应的依赖。
所以,javax.servlet 和 jakarta.servlet 的区别仅在于包名的变化,代表不同版本的 Java Servlet API,也就意味着在代码中利用javax.servlet包大概利用jakarta.servlet包,而不需要修改代码。
如:
利用javax.servlet 包
import javax.servlet.*;
import javax.servlet.http.*;
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      resp.getWriter().write("1111");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      resp.getWriter().write("2222");
    }
}
利用jakarta.servlet包
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      resp.getWriter().write("1111");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      resp.getWriter().write("2222");
    }
}
2,利用tomcat部署 jakarta.servlet

tomcat10以后才支持 jakarta.servlet,所以需要下载tomcat10以后的版本
https://i-blog.csdnimg.cn/blog_migrate/aa96bb8478180bcc3643d8d3197cea6f.png
这里利用的tomcat是10.1.18,而tomcat10.1版本需要jdk11及以后版本。所以这里利用的jdk版本是jdk11。
https://i-blog.csdnimg.cn/blog_migrate/bdc696cac96dc62041610d56e5149b77.png
2.1新建项目

利用Maven模板新建一个Web项目
https://i-blog.csdnimg.cn/blog_migrate/85487bf53a662e40d5ba4e7b8c9714a5.png
2.2导入依赖

    <dependencies>
      <!-- 添加servlet5.0依赖 -->
      <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>5.0.0-M1</version>
            <scope>provided</scope>
      </dependency>
      <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
      </dependency>
    </dependencies>
2.3创建Servlet

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

/**
* @Author @Chenxc
* @Date 2024.01.11 9:22
*/
@WebServlet(name = "myServlet",
      urlPatterns = "/hello"
)
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      resp.getWriter().write("Hello!");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      resp.getWriter().write("Hello!");
    }
}
最后项目目录如下:
https://i-blog.csdnimg.cn/blog_migrate/e8adca526696fd5b84cb6eb33d7baae5.png
2.4设置tomcat

https://i-blog.csdnimg.cn/blog_migrate/bfa1a0a7d129f2490844239d4f245ff6.png
https://i-blog.csdnimg.cn/blog_migrate/369961ab40c8ba5f8d114165d900b04f.png
点击configure,然后选择自己的tomcat目录
https://i-blog.csdnimg.cn/blog_migrate/d716696b3ab020b91642f84b19912934.png
https://i-blog.csdnimg.cn/blog_migrate/011fe28822c21de9081e36bda070b663.png
选择后tomcat后设置端口号和需要部署的项目
设置端口号
https://i-blog.csdnimg.cn/blog_migrate/28813144187c79549f4ab8a6f98a7619.png
需要部署的项目
https://i-blog.csdnimg.cn/blog_migrate/f5d6811c894eeb223028e86cc5897356.png
选择对应的项目
https://i-blog.csdnimg.cn/blog_migrate/dfc41e71588f5fd6d542634eaf2ebd73.png
https://i-blog.csdnimg.cn/blog_migrate/2f8efbbf9d08b082b20ea047eb4d099c.png
点击启动即可
https://i-blog.csdnimg.cn/blog_migrate/d82091a91403192e94e2bf3a608b7b70.png
启动之后我们访问:http://localhost:8060/hello
https://i-blog.csdnimg.cn/blog_migrate/750ee7ca4ccff1b0f2b37215cf17291e.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: javax.servlet 和 jakarta.servlet的关系和利用tomcat部署 jakarta.servlet