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

打印 上一主题 下一主题

主题 492|帖子 492|积分 1476

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 包
  1. import javax.servlet.*;
  2. import javax.servlet.http.*;
  3. public class MyServlet extends HttpServlet {
  4.     @Override
  5.     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  6.         resp.getWriter().write("1111");
  7.     }
  8.     @Override
  9.     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  10.         resp.getWriter().write("2222");
  11.     }
  12. }
复制代码
利用jakarta.servlet包
  1. import jakarta.servlet.ServletException;
  2. import jakarta.servlet.annotation.WebServlet;
  3. import jakarta.servlet.http.HttpServlet;
  4. import jakarta.servlet.http.HttpServletRequest;
  5. import jakarta.servlet.http.HttpServletResponse;
  6. public class MyServlet extends HttpServlet {
  7.     @Override
  8.     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  9.         resp.getWriter().write("1111");
  10.     }
  11.     @Override
  12.     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  13.         resp.getWriter().write("2222");
  14.     }
  15. }
复制代码
2,利用tomcat部署 jakarta.servlet

tomcat10以后才支持 jakarta.servlet,所以需要下载tomcat10以后的版本

这里利用的tomcat是10.1.18,而tomcat10.1版本需要jdk11及以后版本。所以这里利用的jdk版本是jdk11。

2.1新建项目

利用Maven模板新建一个Web项目

2.2导入依赖

  1.     <dependencies>
  2.         <!-- 添加servlet5.0依赖 -->
  3.         <dependency>
  4.             <groupId>jakarta.servlet</groupId>
  5.             <artifactId>jakarta.servlet-api</artifactId>
  6.             <version>5.0.0-M1</version>
  7.             <scope>provided</scope>
  8.         </dependency>
  9.         <dependency>
  10.             <groupId>junit</groupId>
  11.             <artifactId>junit</artifactId>
  12.             <version>4.11</version>
  13.             <scope>test</scope>
  14.         </dependency>
  15.     </dependencies>
复制代码
2.3创建Servlet

  1. import jakarta.servlet.ServletException;
  2. import jakarta.servlet.annotation.WebServlet;
  3. import jakarta.servlet.http.HttpServlet;
  4. import jakarta.servlet.http.HttpServletRequest;
  5. import jakarta.servlet.http.HttpServletResponse;
  6. /**
  7. * @Author @Chenxc
  8. * @Date 2024.01.11 9:22
  9. */
  10. @WebServlet(name = "myServlet",
  11.         urlPatterns = "/hello"
  12. )
  13. public class MyServlet extends HttpServlet {
  14.     @Override
  15.     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  16.         resp.getWriter().write("Hello!");
  17.     }
  18.     @Override
  19.     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  20.         resp.getWriter().write("Hello!");
  21.     }
  22. }
复制代码
最后项目目录如下:

2.4设置tomcat



点击configure,然后选择自己的tomcat目录


选择后tomcat后设置端口号和需要部署的项目
设置端口号

需要部署的项目

选择对应的项目


点击启动即可

启动之后我们访问:http://localhost:8060/hello


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

涛声依旧在

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表