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

这篇具有很好参考价值的文章主要介绍了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以后的版本
javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet,java,servlet,tomcat,java
这里使用的tomcat是10.1.18,而tomcat10.1版本需要jdk11及以后版本。所以这里使用的jdk版本是jdk11。
javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet,java,servlet,tomcat,java

2.1新建项目

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

javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet,java,servlet,tomcat,java

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!");
    }
}

最后项目目录如下:
javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet,java,servlet,tomcat,java

2.4配置tomcat

javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet,java,servlet,tomcat,java
javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet,java,servlet,tomcat,java

点击configure,然后选择自己的tomcat目录
javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet,java,servlet,tomcat,java
javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet,java,servlet,tomcat,java

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

配置端口号
javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet,java,servlet,tomcat,java

需要部署的项目
javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet,java,servlet,tomcat,java
选择对应的项目
javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet,java,servlet,tomcat,java
javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet,java,servlet,tomcat,java
点击启动即可
javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet,java,servlet,tomcat,java
启动之后我们访问:http://localhost:8060/hello

javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet,java,servlet,tomcat,java文章来源地址https://www.toymoban.com/news/detail-808606.html

到了这里,关于javax.servlet 和 jakarta.servlet的关系和使用tomcat部署 jakarta.servlet的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java: 无法访问jakarta.servlet.ServletContext 找不到jakarta.servlet.ServletContext的类文件

    今天在学习springmvc的时候发现了一个关系冲突的问题,首先我不是大神,我只是一个初学者。 问题是由javax和jakerta引出来的。我的tomcat版本是9,jdk是17,spring是6.0.11,然后tomcat9使用的应该还是javax,但是在使用spring自己封装好的WebApplicaitonUtils的  getWebApplicationContext方法去优

    2024年02月04日
    浏览(46)
  • java: 无法访问jakarta.servlet.ServletException

    使用SpringMvc时出现报错报错 java: 无法访问jakarta.servlet.ServletException   找不到jakarta.servlet.ServletException的类文件 在 Java EE 8 中,一些标准的 Java EE 包已经从  javax  包迁移到了  jakarta  包,其中包括  javax.servlet  包 。这个问题通常是由于 使用的依赖版本过低所导致的 。因此,

    2024年04月23日
    浏览(56)
  • 通过Tomcat / Small Tomcat,如何部署Servlet?(超详细)

    目录 基于Tomcat对Servlet进行部署 一、创建项目 二、引入Servlet依赖 三、构建目录结构 四、编写代码 五、打包程序 六、部署程序 七、验证程序 基于Smart Tomcat对Servlet进行部署 第一步:下载Smart Tomcat插件 第二步:进行相关配置   第三步:运行配置  第四步:确认部署是否成功

    2024年01月18日
    浏览(38)
  • Spring Boot 3.1.2版本使用javax.servlet.Filter时,发现Filter不起作用

    在学习Filter的过程中,我实现了Filter的init和destory方法以及doFilter方法后,运行SpringBoot程序发现,我的控制台中并没有输出ini和destory中的调试信息。 代码如下:  可以看到控制台中并没有输出initialize Filter和destory Filter等信息  利用postman发送http请求发现access Filter也没有输出

    2024年03月09日
    浏览(40)
  • springmvc出现requestjava.lang.ClassNotFoundException: jakarta.servlet.http.HttpServletRequest异常

    在springmvc框架下引入request,如图 出现如下异常:    解决方法: 将HttpServletRequest改为javax包下的类  

    2024年02月13日
    浏览(81)
  • java: 程序包javax.servlet不存在、 java: 程序包javax.servlet.http不存在 java: 程序包javax.servlet.annotation不存在

    一般是JDK里没有servlet.api这个jar包,没有扫描到。可以先从你的tomcat的lib包下找,但我的这个里面是没有的,但我之前下过所以可以直接拷贝 然后找到你的jdk位置,不知道自己jdk位置的可以按照一下步骤打开      复制路径然后从文件夹打开,然后塞入你的jar即可。然后再编

    2024年02月10日
    浏览(40)
  • javax.servlet.ServletException: Servlet执行抛出一个异常怎么解决?

    站长亲测 数据库版本过高会导致报错 HTTP状态 500 - 内部服务器错误 如果未在webapp导入lib库会导致500报错

    2024年02月13日
    浏览(46)
  • Tomcat的安装与使用,Maven与Servlet的使用

    Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目, 由Apache, Sun和其他一些公司及个人共同开发而成, 由于有了Sun的参与和支持, 最新的Servlet和JSP规范总是能在Tomcat中得到体现, Tomcat5支持最新的Servlet 2.4和JSP 2.0规范. 因为Tomcat技术先进, 性能稳定, 而且免

    2024年02月08日
    浏览(41)
  • javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping

    出现此类错误 需要检查各子项目中pom文件是否引用了重复的javax.servlet-api maven依赖导致。 如果项目是单体项目,检查是否引用org.springframework-spring-web依赖,必须移除掉移除嵌入式tomcat插件 检查controller层是否地址无误,本人是controller的接口不知道怎么删除掉了,导致一直出现

    2024年02月12日
    浏览(47)
  • javax.servlet-api报错问题

    报错:NoClassDefFoundError: javax/servlet/http/HttpServletResponse 服务原有依赖 新加依赖后解决

    2024年02月02日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包