You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2020/01/13 11:56:01 UTC

[tomcat] 09/18: Rename "javax.servlet.*" to "jakartax.servlet.*" and fix tests

This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit ab35110801998e4f2fa74c62263b0f8030f021d4
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Nov 28 18:56:01 2019 +0000

    Rename "javax.servlet.*" to "jakartax.servlet.*" and fix tests
    
    Note: Tests that depend on JSTL have been ignored - look for comments containing "Jakarta EE / JSTL".
---
 build.xml                                          |  22 +--
 java/jakarta/el/CompositeELResolver.java           |   4 +-
 java/jakarta/el/ImportHandler.java                 |   6 +-
 java/{javax => jakarta}/servlet/AsyncContext.java  |  26 +--
 java/{javax => jakarta}/servlet/AsyncEvent.java    |   2 +-
 java/{javax => jakarta}/servlet/AsyncListener.java |   2 +-
 .../{javax => jakarta}/servlet/DispatcherType.java |   2 +-
 java/{javax => jakarta}/servlet/Filter.java        |   2 +-
 java/{javax => jakarta}/servlet/FilterChain.java   |   2 +-
 java/{javax => jakarta}/servlet/FilterConfig.java  |   2 +-
 .../servlet/FilterRegistration.java                |   2 +-
 java/{javax => jakarta}/servlet/GenericFilter.java |   2 +-
 .../{javax => jakarta}/servlet/GenericServlet.java |   4 +-
 .../servlet/HttpConstraintElement.java             |  10 +-
 .../servlet/HttpMethodConstraintElement.java       |   4 +-
 .../servlet/LocalStrings.properties                |   0
 .../servlet/LocalStrings_cs.properties             |   0
 .../servlet/LocalStrings_de.properties             |   0
 .../servlet/LocalStrings_es.properties             |   0
 .../servlet/LocalStrings_fr.properties             |   0
 .../servlet/LocalStrings_ja.properties             |   0
 .../servlet/LocalStrings_ko.properties             |   0
 .../servlet/LocalStrings_zh_CN.properties          |   0
 .../servlet/MultipartConfigElement.java            |   4 +-
 java/{javax => jakarta}/servlet/ReadListener.java  |   2 +-
 java/{javax => jakarta}/servlet/Registration.java  |   2 +-
 .../servlet/RequestDispatcher.java                 |  38 ++---
 java/{javax => jakarta}/servlet/Servlet.java       |   8 +-
 java/{javax => jakarta}/servlet/ServletConfig.java |   2 +-
 .../servlet/ServletContainerInitializer.java       |   8 +-
 .../{javax => jakarta}/servlet/ServletContext.java |  82 ++++-----
 .../servlet/ServletContextAttributeEvent.java      |   2 +-
 .../servlet/ServletContextAttributeListener.java   |   2 +-
 .../servlet/ServletContextEvent.java               |   2 +-
 .../servlet/ServletContextListener.java            |   2 +-
 .../servlet/ServletException.java                  |   2 +-
 .../servlet/ServletInputStream.java                |   2 +-
 .../servlet/ServletOutputStream.java               |   6 +-
 .../servlet/ServletRegistration.java               |   2 +-
 .../{javax => jakarta}/servlet/ServletRequest.java |   8 +-
 .../servlet/ServletRequestAttributeEvent.java      |   2 +-
 .../servlet/ServletRequestAttributeListener.java   |   2 +-
 .../servlet/ServletRequestEvent.java               |   2 +-
 .../servlet/ServletRequestListener.java            |   2 +-
 .../servlet/ServletRequestWrapper.java             |   6 +-
 .../servlet/ServletResponse.java                   |   2 +-
 .../servlet/ServletResponseWrapper.java            |   6 +-
 .../servlet/ServletSecurityElement.java            |   6 +-
 .../servlet/SessionCookieConfig.java               |   2 +-
 .../servlet/SessionTrackingMode.java               |   2 +-
 .../servlet/SingleThreadModel.java                 |   2 +-
 .../servlet/UnavailableException.java              |   2 +-
 java/{javax => jakarta}/servlet/WriteListener.java |   2 +-
 .../servlet/annotation/HandlesTypes.java           |   4 +-
 .../servlet/annotation/HttpConstraint.java         |  10 +-
 .../servlet/annotation/HttpMethodConstraint.java   |   8 +-
 .../servlet/annotation/MultipartConfig.java        |  10 +-
 .../servlet/annotation/ServletSecurity.java        |   4 +-
 .../servlet/annotation/WebFilter.java              |  12 +-
 .../servlet/annotation/WebInitParam.java           |   8 +-
 .../servlet/annotation/WebListener.java            |  16 +-
 .../servlet/annotation/WebServlet.java             |   6 +-
 .../servlet/descriptor/JspConfigDescriptor.java    |   2 +-
 .../descriptor/JspPropertyGroupDescriptor.java     |   2 +-
 .../servlet/descriptor/TaglibDescriptor.java       |   2 +-
 java/{javax => jakarta}/servlet/http/Cookie.java   |   4 +-
 .../servlet/http/HttpFilter.java                   |  12 +-
 .../servlet/http/HttpServlet.java                  |  38 ++---
 .../servlet/http/HttpServletMapping.java           |   6 +-
 .../servlet/http/HttpServletRequest.java           |   8 +-
 .../servlet/http/HttpServletRequestWrapper.java    |   8 +-
 .../servlet/http/HttpServletResponse.java          |   6 +-
 .../servlet/http/HttpServletResponseWrapper.java   |   6 +-
 .../servlet/http/HttpSession.java                  |   4 +-
 .../http/HttpSessionActivationListener.java        |   2 +-
 .../servlet/http/HttpSessionAttributeListener.java |   2 +-
 .../servlet/http/HttpSessionBindingEvent.java      |   2 +-
 .../servlet/http/HttpSessionBindingListener.java   |   2 +-
 .../servlet/http/HttpSessionContext.java           |   2 +-
 .../servlet/http/HttpSessionEvent.java             |   2 +-
 .../servlet/http/HttpSessionIdListener.java        |   6 +-
 .../servlet/http/HttpSessionListener.java          |   2 +-
 .../servlet/http/HttpUpgradeHandler.java           |   2 +-
 .../{javax => jakarta}/servlet/http/HttpUtils.java |   6 +-
 .../servlet/http/LocalStrings.properties           |   0
 .../servlet/http/LocalStrings_de.properties        |   0
 .../servlet/http/LocalStrings_es.properties        |   0
 .../servlet/http/LocalStrings_fr.properties        |   0
 .../servlet/http/LocalStrings_ja.properties        |   0
 .../servlet/http/LocalStrings_ko.properties        |   0
 .../servlet/http/LocalStrings_zh_CN.properties     |   0
 .../servlet/http/MappingMatch.java                 |   2 +-
 java/{javax => jakarta}/servlet/http/Part.java     |   4 +-
 .../servlet/http/PushBuilder.java                  |   2 +-
 .../servlet/http/WebConnection.java                |   6 +-
 java/{javax => jakarta}/servlet/http/package.html  |   2 +-
 java/{javax => jakarta}/servlet/jsp/ErrorData.java |   2 +-
 .../servlet/jsp/HttpJspPage.java                   |   8 +-
 .../servlet/jsp/JspApplicationContext.java         |   2 +-
 .../{javax => jakarta}/servlet/jsp/JspContext.java |   6 +-
 .../servlet/jsp/JspEngineInfo.java                 |   2 +-
 .../servlet/jsp/JspException.java                  |   2 +-
 .../{javax => jakarta}/servlet/jsp/JspFactory.java |  14 +-
 java/{javax => jakarta}/servlet/jsp/JspPage.java   |   4 +-
 .../servlet/jsp/JspTagException.java               |   2 +-
 java/{javax => jakarta}/servlet/jsp/JspWriter.java |   2 +-
 .../servlet/jsp/PageContext.java                   |  40 ++---
 .../servlet/jsp/SkipPageException.java             |   8 +-
 .../servlet/jsp/el/ELException.java                |   2 +-
 .../servlet/jsp/el/ELParseException.java           |   2 +-
 .../servlet/jsp/el/Expression.java                 |   2 +-
 .../servlet/jsp/el/ExpressionEvaluator.java        |   2 +-
 .../servlet/jsp/el/FunctionMapper.java             |   2 +-
 .../servlet/jsp/el/ImplicitObjectELResolver.java   |  13 +-
 .../servlet/jsp/el/ScopedAttributeELResolver.java  |   7 +-
 .../servlet/jsp/el/VariableResolver.java           |   2 +-
 .../{javax => jakarta}/servlet/jsp/el/package.html |   0
 java/{javax => jakarta}/servlet/jsp/package.html   |   2 +-
 .../servlet/jsp/resources/jspxml.dtd               |   0
 .../servlet/jsp/resources/jspxml.xsd               |   0
 .../servlet/jsp/tagext/BodyContent.java            |   4 +-
 .../servlet/jsp/tagext/BodyTag.java                |   4 +-
 .../servlet/jsp/tagext/BodyTagSupport.java         |   6 +-
 .../servlet/jsp/tagext/DynamicAttributes.java      |   4 +-
 .../servlet/jsp/tagext/FunctionInfo.java           |   2 +-
 .../servlet/jsp/tagext/IterationTag.java           |   4 +-
 .../servlet/jsp/tagext/JspFragment.java            |  10 +-
 .../servlet/jsp/tagext/JspIdConsumer.java          |   2 +-
 .../servlet/jsp/tagext/JspTag.java                 |   2 +-
 .../servlet/jsp/tagext/PageData.java               |   2 +-
 .../servlet/jsp/tagext/SimpleTag.java              |  10 +-
 .../servlet/jsp/tagext/SimpleTagSupport.java       |   8 +-
 .../{javax => jakarta}/servlet/jsp/tagext/Tag.java |   6 +-
 .../servlet/jsp/tagext/TagAdapter.java             |   6 +-
 .../servlet/jsp/tagext/TagAttributeInfo.java       |   2 +-
 .../servlet/jsp/tagext/TagData.java                |   2 +-
 .../servlet/jsp/tagext/TagExtraInfo.java           |   2 +-
 .../servlet/jsp/tagext/TagFileInfo.java            |   2 +-
 .../servlet/jsp/tagext/TagInfo.java                |   2 +-
 .../servlet/jsp/tagext/TagLibraryInfo.java         |   6 +-
 .../servlet/jsp/tagext/TagLibraryValidator.java    |   2 +-
 .../servlet/jsp/tagext/TagSupport.java             |   6 +-
 .../servlet/jsp/tagext/TagVariableInfo.java        |   2 +-
 .../servlet/jsp/tagext/TryCatchFinally.java        |   2 +-
 .../servlet/jsp/tagext/ValidationMessage.java      |   2 +-
 .../servlet/jsp/tagext/VariableInfo.java           |   2 +-
 .../jsp/tagext/doc-files/BodyTagProtocol.gif       | Bin
 .../jsp/tagext/doc-files/IterationTagProtocol.gif  | Bin
 .../servlet/jsp/tagext/doc-files/TagProtocol.gif   | Bin
 .../jsp/tagext/doc-files/VariableInfo-1.gif        | Bin
 .../servlet/jsp/tagext/package.html                |   0
 java/{javax => jakarta}/servlet/package.html       |   2 +-
 .../servlet/resources/XMLSchema.dtd                |   0
 .../servlet/resources/datatypes.dtd                |   0
 .../servlet/resources/j2ee_1_4.xsd                 |   0
 .../servlet/resources/j2ee_web_services_1_1.xsd    |   0
 .../resources/j2ee_web_services_client_1_1.xsd     |   0
 .../servlet/resources/javaee_5.xsd                 |   0
 .../servlet/resources/javaee_6.xsd                 |   0
 .../servlet/resources/javaee_7.xsd                 |   0
 .../servlet/resources/javaee_8.xsd                 |   0
 .../servlet/resources/javaee_web_services_1_2.xsd  |   0
 .../servlet/resources/javaee_web_services_1_3.xsd  |   0
 .../servlet/resources/javaee_web_services_1_4.xsd  |   0
 .../resources/javaee_web_services_client_1_2.xsd   |   0
 .../resources/javaee_web_services_client_1_3.xsd   |   0
 .../resources/javaee_web_services_client_1_4.xsd   |   0
 .../servlet/resources/jsp_2_0.xsd                  |   0
 .../servlet/resources/jsp_2_1.xsd                  |   0
 .../servlet/resources/jsp_2_2.xsd                  |   0
 .../servlet/resources/jsp_2_3.xsd                  |   0
 .../servlet/resources/web-app_2_2.dtd              |   0
 .../servlet/resources/web-app_2_3.dtd              |   0
 .../servlet/resources/web-app_2_4.xsd              |   0
 .../servlet/resources/web-app_2_5.xsd              |   0
 .../servlet/resources/web-app_3_0.xsd              |   0
 .../servlet/resources/web-app_3_1.xsd              |   0
 .../servlet/resources/web-app_4_0.xsd              |   0
 .../servlet/resources/web-common_3_0.xsd           |   0
 .../servlet/resources/web-common_3_1.xsd           |   0
 .../servlet/resources/web-common_4_0.xsd           |   0
 .../servlet/resources/web-fragment_3_0.xsd         |   0
 .../servlet/resources/web-fragment_3_1.xsd         |   0
 .../servlet/resources/web-fragment_4_0.xsd         |   0
 .../servlet/resources/web-jsptaglibrary_1_1.dtd    |   0
 .../servlet/resources/web-jsptaglibrary_1_2.dtd    |   0
 .../servlet/resources/web-jsptaglibrary_2_0.xsd    |   0
 .../servlet/resources/web-jsptaglibrary_2_1.xsd    |   0
 java/{javax => jakarta}/servlet/resources/xml.xsd  |   0
 java/javax/websocket/server/HandshakeRequest.java  |   2 +-
 java/org/apache/catalina/AsyncDispatcher.java      |   6 +-
 java/org/apache/catalina/Authenticator.java        |   4 +-
 java/org/apache/catalina/Context.java              |  26 +--
 java/org/apache/catalina/Globals.java              |  10 +-
 java/org/apache/catalina/Manager.java              |  20 +--
 java/org/apache/catalina/Session.java              |   2 +-
 java/org/apache/catalina/Valve.java                |   2 +-
 java/org/apache/catalina/Wrapper.java              |   8 +-
 .../catalina/authenticator/AuthenticatorBase.java  |  16 +-
 .../catalina/authenticator/BasicAuthenticator.java |   4 +-
 .../authenticator/DigestAuthenticator.java         |   4 +-
 .../catalina/authenticator/FormAuthenticator.java  |   8 +-
 .../authenticator/NonLoginAuthenticator.java       |   2 +-
 .../catalina/authenticator/SSLAuthenticator.java   |   4 +-
 .../catalina/authenticator/SavedRequest.java       |   2 +-
 .../catalina/authenticator/SingleSignOn.java       |   4 +-
 .../catalina/authenticator/SingleSignOnEntry.java  |   2 +-
 .../authenticator/SpnegoAuthenticator.java         |   3 +-
 .../authenticator/jaspic/MessageInfoImpl.java      |   5 +-
 .../apache/catalina/connector/CoyoteAdapter.java   |  12 +-
 .../catalina/connector/CoyoteInputStream.java      |   4 +-
 .../catalina/connector/CoyoteOutputStream.java     |   4 +-
 .../org/apache/catalina/connector/InputBuffer.java |   2 +-
 .../apache/catalina/connector/OutputBuffer.java    |   4 +-
 java/org/apache/catalina/connector/Request.java    |  45 ++---
 .../apache/catalina/connector/RequestFacade.java   |  32 ++--
 java/org/apache/catalina/connector/Response.java   |  12 +-
 .../apache/catalina/connector/ResponseFacade.java  |   6 +-
 .../apache/catalina/core/ApplicationContext.java   |  45 ++---
 .../catalina/core/ApplicationContextFacade.java    |  22 +--
 .../catalina/core/ApplicationDispatcher.java       |  32 ++--
 .../catalina/core/ApplicationFilterChain.java      |  18 +-
 .../catalina/core/ApplicationFilterConfig.java     |  15 +-
 .../catalina/core/ApplicationFilterFactory.java    |   6 +-
 .../core/ApplicationFilterRegistration.java        |   4 +-
 .../catalina/core/ApplicationHttpRequest.java      |  24 +--
 .../catalina/core/ApplicationHttpResponse.java     |  10 +-
 .../apache/catalina/core/ApplicationMapping.java   |   4 +-
 java/org/apache/catalina/core/ApplicationPart.java |   2 +-
 .../catalina/core/ApplicationPushBuilder.java      |  10 +-
 .../apache/catalina/core/ApplicationRequest.java   |  10 +-
 .../apache/catalina/core/ApplicationResponse.java  |   8 +-
 .../core/ApplicationServletRegistration.java       |   6 +-
 .../core/ApplicationSessionCookieConfig.java       |   4 +-
 .../org/apache/catalina/core/AsyncContextImpl.java |  21 +--
 .../apache/catalina/core/AsyncListenerWrapper.java |   8 +-
 java/org/apache/catalina/core/StandardContext.java |  55 +++---
 .../apache/catalina/core/StandardContextValve.java |   6 +-
 .../apache/catalina/core/StandardEngineValve.java  |   2 +-
 .../apache/catalina/core/StandardHostValve.java    |  10 +-
 java/org/apache/catalina/core/StandardWrapper.java |  21 +--
 .../catalina/core/StandardWrapperFacade.java       |   4 +-
 .../apache/catalina/core/StandardWrapperValve.java |  12 +-
 .../catalina/filters/AddDefaultCharsetFilter.java  |  14 +-
 java/org/apache/catalina/filters/CorsFilter.java   |  28 ++--
 .../catalina/filters/CsrfPreventionFilter.java     |  18 +-
 .../catalina/filters/CsrfPreventionFilterBase.java |   8 +-
 .../org/apache/catalina/filters/ExpiresFilter.java |  22 +--
 .../catalina/filters/FailedRequestFilter.java      |  10 +-
 java/org/apache/catalina/filters/FilterBase.java   |   6 +-
 .../catalina/filters/HttpHeaderSecurityFilter.java |  12 +-
 .../apache/catalina/filters/RemoteAddrFilter.java  |   8 +-
 .../apache/catalina/filters/RemoteCIDRFilter.java  |  10 +-
 .../apache/catalina/filters/RemoteHostFilter.java  |   8 +-
 .../apache/catalina/filters/RemoteIpFilter.java    |  20 +--
 .../catalina/filters/RequestDumperFilter.java      |  16 +-
 .../org/apache/catalina/filters/RequestFilter.java |  12 +-
 .../catalina/filters/RestCsrfPreventionFilter.java |  16 +-
 .../catalina/filters/SessionInitializerFilter.java |  16 +-
 .../filters/SetCharacterEncodingFilter.java        |   8 +-
 .../apache/catalina/filters/WebdavFixFilter.java   |  14 +-
 java/org/apache/catalina/ha/ClusterSession.java    |   2 +-
 .../catalina/ha/context/ReplicatedContext.java     |   2 +-
 .../catalina/ha/session/JvmRouteBinderValve.java   |   2 +-
 .../apache/catalina/ha/tcp/ReplicationValve.java   |   2 +-
 .../catalina/loader/WebappClassLoaderBase.java     |  18 +-
 java/org/apache/catalina/loader/WebappLoader.java  |   3 +-
 .../apache/catalina/manager/DummyProxySession.java |   2 +-
 .../catalina/manager/HTMLManagerServlet.java       |  14 +-
 .../apache/catalina/manager/JMXProxyServlet.java   |   9 +-
 .../apache/catalina/manager/ManagerServlet.java    |  15 +-
 .../catalina/manager/StatusManagerServlet.java     |   9 +-
 .../apache/catalina/manager/StatusTransformer.java |   3 +-
 .../manager/host/HTMLHostManagerServlet.java       |   6 +-
 .../catalina/manager/host/HostManagerServlet.java  |  11 +-
 .../apache/catalina/manager/util/SessionUtils.java |   7 +-
 java/org/apache/catalina/mapper/Mapper.java        |   2 +-
 java/org/apache/catalina/mapper/MappingData.java   |   4 +-
 .../catalina/realm/JAASMemoryLoginModule.java      |   3 +-
 java/org/apache/catalina/realm/JAASRealm.java      |   3 +-
 java/org/apache/catalina/realm/RealmBase.java      |   4 +-
 .../catalina/security/SecurityClassLoad.java       |   2 +-
 .../org/apache/catalina/security/SecurityUtil.java |  13 +-
 java/org/apache/catalina/servlets/CGIServlet.java  |  18 +-
 .../apache/catalina/servlets/DefaultServlet.java   |  23 +--
 .../apache/catalina/servlets/WebdavServlet.java    |  13 +-
 java/org/apache/catalina/session/FileStore.java    |   2 +-
 .../apache/catalina/session/StandardManager.java   |   4 +-
 .../apache/catalina/session/StandardSession.java   |  24 +--
 .../catalina/session/StandardSessionFacade.java    |   6 +-
 .../catalina/ssi/ByteArrayServletOutputStream.java |   4 +-
 .../catalina/ssi/ResponseIncludeWrapper.java       |   6 +-
 java/org/apache/catalina/ssi/SSIFilter.java        |  14 +-
 java/org/apache/catalina/ssi/SSIServlet.java       |  10 +-
 .../catalina/ssi/SSIServletExternalResolver.java   |  10 +-
 .../apache/catalina/ssi/SSIServletRequestUtil.java |   4 +-
 .../org/apache/catalina/startup/ContextConfig.java |  16 +-
 .../org/apache/catalina/startup/FailedContext.java |  12 +-
 java/org/apache/catalina/startup/Tomcat.java       |  24 +--
 .../apache/catalina/startup/WebAnnotationSet.java  |   5 +-
 .../catalina/startup/WebappServiceLoader.java      |   4 +-
 java/org/apache/catalina/util/RequestUtil.java     |   4 +-
 java/org/apache/catalina/util/SessionConfig.java   |   2 +-
 .../catalina/valves/AbstractAccessLogValve.java    |   8 +-
 .../valves/CrawlerSessionManagerValve.java         |   8 +-
 .../apache/catalina/valves/ErrorReportValve.java   |   8 +-
 .../catalina/valves/ExtendedAccessLogValve.java    |   4 +-
 .../apache/catalina/valves/HealthCheckValve.java   |   2 +-
 .../apache/catalina/valves/JDBCAccessLogValve.java |   2 +-
 .../catalina/valves/LoadBalancerDrainingValve.java |   6 +-
 .../apache/catalina/valves/PersistentValve.java    |   4 +-
 .../apache/catalina/valves/RemoteAddrValve.java    |   2 +-
 .../apache/catalina/valves/RemoteCIDRValve.java    |   4 +-
 .../apache/catalina/valves/RemoteHostValve.java    |   2 +-
 java/org/apache/catalina/valves/RemoteIpValve.java |   6 +-
 .../apache/catalina/valves/RequestFilterValve.java |   4 +-
 java/org/apache/catalina/valves/SSLValve.java      |   2 +-
 .../org/apache/catalina/valves/SemaphoreValve.java |   2 +-
 .../catalina/valves/StuckThreadDetectionValve.java |   2 +-
 .../catalina/valves/rewrite/RewriteValve.java      |   6 +-
 .../catalina/webresources/ExtractingRoot.java      |   2 +-
 java/org/apache/coyote/AbstractProcessor.java      |   2 +-
 java/org/apache/coyote/AbstractProtocol.java       |   5 +-
 java/org/apache/coyote/ActionCode.java             |   8 +-
 java/org/apache/coyote/AsyncContextCallback.java   |   2 +-
 java/org/apache/coyote/Request.java                |   2 +-
 java/org/apache/coyote/Response.java               |   2 +-
 java/org/apache/coyote/UpgradeToken.java           |   2 +-
 java/org/apache/coyote/ajp/AjpProcessor.java       |   2 +-
 .../coyote/http11/AbstractHttp11Protocol.java      |   2 +-
 java/org/apache/coyote/http11/Http11Processor.java |   2 +-
 .../http11/upgrade/InternalHttpUpgradeHandler.java |   2 +-
 .../http11/upgrade/UpgradeProcessorBase.java       |   2 +-
 .../http11/upgrade/UpgradeProcessorExternal.java   |   4 +-
 .../http11/upgrade/UpgradeProcessorInternal.java   |   4 +-
 .../http11/upgrade/UpgradeServletInputStream.java  |   4 +-
 .../http11/upgrade/UpgradeServletOutputStream.java |   4 +-
 java/org/apache/coyote/http2/Http2AsyncParser.java |   2 +-
 .../coyote/http2/Http2AsyncUpgradeHandler.java     |   2 +-
 java/org/apache/coyote/http2/Http2Parser.java      |   2 +-
 .../apache/coyote/http2/Http2UpgradeHandler.java   |   2 +-
 java/org/apache/jasper/Constants.java              |   6 +-
 java/org/apache/jasper/EmbeddedServletOptions.java |   8 +-
 java/org/apache/jasper/JasperException.java        |   2 +-
 java/org/apache/jasper/JspC.java                   |   4 +-
 java/org/apache/jasper/JspCompilationContext.java  |   4 +-
 java/org/apache/jasper/Options.java                |   2 +-
 .../apache/jasper/compiler/ELFunctionMapper.java   |   2 +-
 java/org/apache/jasper/compiler/ELInterpreter.java |   2 +-
 .../jasper/compiler/ELInterpreterFactory.java      |   2 +-
 java/org/apache/jasper/compiler/ELNode.java        |   2 +-
 java/org/apache/jasper/compiler/Generator.java     | 185 ++++++++++-----------
 .../jasper/compiler/ImplicitTagLibraryInfo.java    |  10 +-
 .../apache/jasper/compiler/JarScannerFactory.java  |   2 +-
 java/org/apache/jasper/compiler/JasperTagInfo.java |  10 +-
 java/org/apache/jasper/compiler/JspConfig.java     |   6 +-
 .../apache/jasper/compiler/JspDocumentParser.java  |   7 +-
 .../apache/jasper/compiler/JspRuntimeContext.java  |   4 +-
 java/org/apache/jasper/compiler/JspUtil.java       |   2 +-
 java/org/apache/jasper/compiler/Node.java          |  25 ++-
 java/org/apache/jasper/compiler/PageDataImpl.java  |   4 +-
 java/org/apache/jasper/compiler/PageInfo.java      |   3 +-
 java/org/apache/jasper/compiler/Parser.java        |   8 +-
 .../apache/jasper/compiler/ScriptingVariabler.java |   4 +-
 .../apache/jasper/compiler/TagFileProcessor.java   |  13 +-
 .../apache/jasper/compiler/TagLibraryInfoImpl.java |  22 +--
 .../apache/jasper/compiler/TagPluginManager.java   |   2 +-
 java/org/apache/jasper/compiler/TldCache.java      |   2 +-
 java/org/apache/jasper/compiler/Validator.java     |  19 +--
 java/org/apache/jasper/el/ELResolverImpl.java      |   7 +-
 .../apache/jasper/el/ExpressionEvaluatorImpl.java  |  13 +-
 java/org/apache/jasper/el/ExpressionImpl.java      |   7 +-
 java/org/apache/jasper/el/FunctionMapperImpl.java  |   2 +-
 java/org/apache/jasper/el/JasperELResolver.java    |   5 +-
 .../org/apache/jasper/el/VariableResolverImpl.java |   5 +-
 .../jasper/resources/LocalStrings.properties       |   2 +-
 .../jasper/resources/LocalStrings_es.properties    |   2 +-
 .../jasper/resources/LocalStrings_fr.properties    |   2 +-
 .../jasper/resources/LocalStrings_ja.properties    |   2 +-
 .../jasper/resources/LocalStrings_ko.properties    |   2 +-
 .../org/apache/jasper/runtime/BodyContentImpl.java |   4 +-
 java/org/apache/jasper/runtime/HttpJspBase.java    |  12 +-
 .../jasper/runtime/InstanceManagerFactory.java     |   2 +-
 .../jasper/runtime/JspApplicationContextImpl.java  |   7 +-
 .../apache/jasper/runtime/JspContextWrapper.java   |  37 ++---
 java/org/apache/jasper/runtime/JspFactoryImpl.java |  16 +-
 .../apache/jasper/runtime/JspFragmentHelper.java   |   8 +-
 .../apache/jasper/runtime/JspRuntimeLibrary.java   |  26 +--
 java/org/apache/jasper/runtime/JspWriterImpl.java  |   4 +-
 .../org/apache/jasper/runtime/PageContextImpl.java |  39 +++--
 .../jasper/runtime/ProtectedFunctionMapper.java    |   2 +-
 .../runtime/ServletResponseWrapperInclude.java     |  10 +-
 java/org/apache/jasper/runtime/TagHandlerPool.java |   6 +-
 .../apache/jasper/servlet/JasperInitializer.java   |   8 +-
 .../apache/jasper/servlet/JspCServletContext.java  |  24 +--
 java/org/apache/jasper/servlet/JspServlet.java     |  16 +-
 .../apache/jasper/servlet/JspServletWrapper.java   |  20 +--
 java/org/apache/jasper/servlet/TldPreScanned.java  |   2 +-
 java/org/apache/jasper/servlet/TldScanner.java     |   6 +-
 java/org/apache/jasper/tagplugins/jstl/Util.java   |  16 +-
 .../apache/jasper/tagplugins/jstl/core/Out.java    |   2 +-
 java/org/apache/tomcat/JarScanner.java             |   2 +-
 .../tomcat/util/descriptor/DigesterFactory.java    |   4 +-
 .../util/descriptor/tagplugin/TagPluginParser.java |   2 +-
 .../apache/tomcat/util/descriptor/tld/TagXml.java  |   6 +-
 .../tomcat/util/descriptor/tld/TaglibXml.java      |   2 +-
 .../tomcat/util/descriptor/tld/TldRuleSet.java     |   8 +-
 .../tomcat/util/descriptor/web/FilterDef.java      |   2 +-
 .../tomcat/util/descriptor/web/FilterMap.java      |   2 +-
 .../descriptor/web/JspConfigDescriptorImpl.java    |   6 +-
 .../web/JspPropertyGroupDescriptorImpl.java        |   2 +-
 .../util/descriptor/web/SecurityConstraint.java    |  10 +-
 .../tomcat/util/descriptor/web/SessionConfig.java  |   2 +-
 .../util/descriptor/web/TaglibDescriptorImpl.java  |   2 +-
 .../apache/tomcat/util/descriptor/web/WebXml.java  |  12 +-
 .../apache/tomcat/util/http/CookieProcessor.java   |   2 +-
 .../tomcat/util/http/LegacyCookieProcessor.java    |   2 +-
 java/org/apache/tomcat/util/http/RequestUtil.java  |   2 +-
 java/org/apache/tomcat/util/http/ResponseUtil.java |   2 +-
 .../tomcat/util/http/Rfc6265CookieProcessor.java   |   2 +-
 .../http/fileupload/disk/DiskFileItemFactory.java  |   2 +-
 .../http/fileupload/servlet/ServletFileUpload.java |   2 +-
 .../fileupload/servlet/ServletRequestContext.java  |   2 +-
 java/org/apache/tomcat/util/net/SSLSupport.java    |  10 +-
 .../tomcat/util/scan/StandardJarScanner.java       |   2 +-
 .../tomcat/websocket/server/UpgradeUtil.java       |  11 +-
 .../tomcat/websocket/server/WsContextListener.java |   6 +-
 .../apache/tomcat/websocket/server/WsFilter.java   |  14 +-
 .../websocket/server/WsHandshakeRequest.java       |   3 +-
 .../websocket/server/WsHttpUpgradeHandler.java     |   5 +-
 java/org/apache/tomcat/websocket/server/WsSci.java |   9 +-
 .../tomcat/websocket/server/WsServerContainer.java |  13 +-
 .../tomcat/websocket/server/WsSessionListener.java |   4 +-
 .../tomcat/websocket/server/WsWriteTimeout.java    |   4 +-
 .../web/tomcat/OpenWebBeansSecurityFilter.java     |  12 +-
 .../web/tomcat/OpenWebBeansSecurityValve.java      |   2 +-
 .../apache/webbeans/web/tomcat/TomcatPlugin.java   |  20 +--
 .../webbeans/web/tomcat/TomcatSecurityService.java |   2 +-
 ...=> jakarta.servlet.ServletContainerInitializer} |   0
 res/META-INF/jsp-api.jar.manifest                  |   4 +-
 res/META-INF/servlet-api.jar.manifest              |   4 +-
 ...=> jakarta.servlet.ServletContainerInitializer} |   0
 res/bnd/jsp-api.jar.tmp.bnd                        |   8 +-
 res/bnd/servlet-api.jar.tmp.bnd                    |  10 +-
 res/bnd/tomcat-embed-core.jar.tmp.bnd              |  10 +-
 res/bnd/tomcat-embed-jasper.jar.tmp.bnd            |   8 +-
 res/checkstyle/jakarta-import-control.xml          |   8 +
 res/checkstyle/javax-import-control.xml            |   8 -
 res/checkstyle/org-import-control.xml              |  16 +-
 res/findbugs/filter-false-positives.xml            |  14 +-
 res/maven/tomcat-servlet-api.pom                   |   2 +-
 res/rat/rat-excludes.txt                           | 126 +++++++-------
 res/tomcat-maven/pom.xml                           |   2 +-
 res/tomcat-maven/tomcat-reflection.json            |   2 +-
 res/tomcat-maven/tomcat-resource.json              |   4 +-
 ...=> jakarta.servlet.ServletContainerInitializer} |   0
 test/jakarta/el/TestCompositeELResolver.java       |   2 +-
 .../jakarta/el/TesterImportHandlerPerformance.java |  12 +-
 .../servlet/annotation/TestServletSecurity.java    |  10 +-
 .../annotation/TestServletSecurityMappings.java    |  16 +-
 .../servlet/http/TestCookie.java                   |   2 +-
 .../servlet/http/TestCookieRFC2109Validator.java   |   2 +-
 .../servlet/http/TestCookieRFC6265Validator.java   |   2 +-
 .../servlet/http/TestCookieStrict.java             |   2 +-
 .../servlet/http/TestHttpServlet.java              |   4 +-
 .../http/TestHttpServletResponseSendError.java     |   6 +-
 .../servlet/jsp/TestPageContext.java               |   2 +-
 .../servlet/jsp/TesterPageContext.java             |  21 ++-
 .../jsp/el/TestScopedAttributeELResolver.java      |   4 +-
 .../TestScopedAttributeELResolverPerformance.java  |   7 +-
 .../servlet/resources/TestSchemaValidation.java    |   2 +-
 .../authenticator/TestAuthInfoResponseHeaders.java |   2 +-
 .../authenticator/TestFormAuthenticator.java       |   8 +-
 .../TestJaspicCallbackHandlerInAuthenticator.java  |   3 +-
 .../TestNonLoginAndBasicAuthenticator.java         |   2 +-
 .../TestSSOnonLoginAndBasicAuthenticator.java      |   2 +-
 .../TesterDigestAuthenticatorPerformance.java      |   2 +-
 .../apache/catalina/connector/TestConnector.java   |   2 +-
 .../catalina/connector/TestCoyoteAdapter.java      |  10 +-
 .../catalina/connector/TestCoyoteInputStream.java  |   8 +-
 .../catalina/connector/TestCoyoteOutputStream.java |  14 +-
 .../apache/catalina/connector/TestInputBuffer.java |   8 +-
 .../catalina/connector/TestKeepAliveCount.java     |   8 +-
 .../catalina/connector/TestMaxConnections.java     |   8 +-
 .../catalina/connector/TestOutputBuffer.java       |   8 +-
 .../org/apache/catalina/connector/TestRequest.java |   8 +-
 .../apache/catalina/connector/TestResponse.java    |  10 +-
 .../apache/catalina/connector/TestSendFile.java    |   8 +-
 .../catalina/core/TestApplicationContext.java      |  18 +-
 ...TestApplicationContextGetRequestDispatcher.java |  12 +-
 ...estApplicationContextGetRequestDispatcherB.java |  42 ++---
 .../catalina/core/TestApplicationHttpRequest.java  |   8 +-
 .../catalina/core/TestApplicationMapping.java      |  14 +-
 .../apache/catalina/core/TestAsyncContextImpl.java |  38 ++---
 .../core/TestAsyncContextImplDispatch.java         |  10 +-
 .../core/TestAsyncContextStateChanges.java         |  18 +-
 .../catalina/core/TestNamingContextListener.java   |   5 +-
 .../apache/catalina/core/TestStandardContext.java  |  42 ++---
 .../catalina/core/TestStandardContextAliases.java  |  10 +-
 .../core/TestStandardContextResources.java         |  10 +-
 .../catalina/core/TestStandardContextValve.java    |  12 +-
 .../catalina/core/TestStandardHostValve.java       |  12 +-
 .../apache/catalina/core/TestStandardWrapper.java  |  28 ++--
 .../catalina/core/TestSwallowAbortedUploads.java   |  14 +-
 .../apache/catalina/core/TesterTldListener.java    |   6 +-
 .../catalina/filters/TestAddCharSetFilter.java     |   8 +-
 .../apache/catalina/filters/TestCorsFilter.java    |  12 +-
 .../catalina/filters/TestCsrfPreventionFilter.java |   2 +-
 .../apache/catalina/filters/TestExpiresFilter.java |   8 +-
 .../catalina/filters/TestRemoteIpFilter.java       |  14 +-
 .../filters/TestRestCsrfPreventionFilter.java      |  12 +-
 .../filters/TestRestCsrfPreventionFilter2.java     |   8 +-
 .../apache/catalina/filters/TesterFilterChain.java |   8 +-
 .../catalina/filters/TesterFilterConfigs.java      |   4 +-
 .../catalina/filters/TesterHttpServletRequest.java |  32 ++--
 .../filters/TesterHttpServletResponse.java         |   8 +-
 .../catalina/ha/context/TestReplicatedContext.java |   8 +-
 test/org/apache/catalina/loader/EchoTag.java       |   4 +-
 .../apache/catalina/loader/MyAnnotatedServlet.java |  10 +-
 .../catalina/loader/TestWebappClassLoader.java     |   5 +-
 .../TestWebappClassLoaderExecutorMemoryLeak.java   |   8 +-
 .../loader/TestWebappClassLoaderMemoryLeak.java    |   8 +-
 ...TestWebappClassLoaderThreadLocalMemoryLeak.java |   2 +-
 .../apache/catalina/mapper/TestMapperWebapps.java  |   8 +-
 .../catalina/nonblocking/TestNonBlockingAPI.java   |  25 +--
 .../nonblocking/TesterAjpNonBlockingClient.java    |   3 +-
 test/org/apache/catalina/realm/TestRealmBase.java  |   6 +-
 .../catalina/realm/TesterServletSecurity01.java    |   6 +-
 .../servlets/DefaultServletEncodingBaseTest.java   |  10 +-
 .../catalina/servlets/ServletOptionsBaseTest.java  |   2 +-
 .../catalina/servlets/TestDefaultServlet.java      |   2 +-
 .../servlets/TestDefaultServletOptions.java        |   2 +-
 .../catalina/servlets/TestWebdavServlet.java       |   2 +-
 .../servlets/TestWebdavServletOptions.java         |   2 +-
 .../catalina/session/TestPersistentManager.java    |   6 +-
 .../session/TestPersistentManagerIntegration.java  |  10 +-
 .../session/TestStandardSessionIntegration.java    |  10 +-
 .../startup/DuplicateMappingParamFilter.java       |  12 +-
 .../startup/DuplicateMappingParamServlet.java      |  12 +-
 .../catalina/startup/NoMappingParamServlet.java    |  12 +-
 test/org/apache/catalina/startup/ParamFilter.java  |  16 +-
 test/org/apache/catalina/startup/ParamServlet.java |  12 +-
 .../apache/catalina/startup/TestContextConfig.java |  16 +-
 .../startup/TestContextConfigAnnotation.java       |  10 +-
 test/org/apache/catalina/startup/TestListener.java |  10 +-
 test/org/apache/catalina/startup/TestTomcat.java   |   9 +-
 .../catalina/startup/TestTomcatClassLoader.java    |   8 +-
 .../catalina/startup/TestWebappServiceLoader.java  |   6 +-
 .../org/apache/catalina/startup/TesterServlet.java |   8 +-
 .../TesterServletContainerInitializer1.java        |  10 +-
 .../TesterServletContainerInitializer2.java        |  10 +-
 .../catalina/startup/TesterServletEncodeUrl.java   |   8 +-
 .../startup/TesterServletWithAnnotations.java      |   9 +-
 .../startup/TesterServletWithLifeCycleMethods.java |   9 +-
 .../apache/catalina/startup/TomcatBaseTest.java    |  12 +-
 .../valves/TestCrawlerSessionManagerValve.java     |   6 +-
 .../catalina/valves/TestErrorReportValve.java      |  16 +-
 .../valves/TestLoadBalancerDrainingValve.java      |   6 +-
 .../apache/catalina/valves/TestRemoteIpValve.java  |   2 +-
 .../catalina/valves/TestRequestFilterValve.java    |   2 +-
 .../valves/TestStuckThreadDetectionValve.java      |   6 +-
 .../catalina/valves/TesterAccessLogValve.java      |   2 +-
 .../catalina/webresources/TestFileResource.java    |   2 +-
 test/org/apache/coyote/TestIoTimeouts.java         |  18 +-
 test/org/apache/coyote/TestResponse.java           |   8 +-
 .../coyote/ajp/TestAbstractAjpProcessor.java       |  10 +-
 .../coyote/http11/TestHttp11InputBuffer.java       |   8 +-
 .../apache/coyote/http11/TestHttp11Processor.java  |  14 +-
 .../http11/filters/TestChunkedInputFilter.java     |   8 +-
 .../apache/coyote/http11/upgrade/TestUpgrade.java  |  21 +--
 .../http11/upgrade/TestUpgradeInternalHandler.java |  13 +-
 test/org/apache/coyote/http2/Http2TestBase.java    |   9 +-
 .../org/apache/coyote/http2/TestAbortedUpload.java |   6 +-
 test/org/apache/coyote/http2/TestAsync.java        |  12 +-
 test/org/apache/coyote/http2/TestAsyncFlush.java   |  12 +-
 test/org/apache/coyote/http2/TestAsyncTimeout.java |  12 +-
 test/org/apache/coyote/http2/TestStream.java       |   8 +-
 .../apache/coyote/http2/TestStreamProcessor.java   |  10 +-
 .../apache/coyote/http2/TestStreamQueryString.java |   8 +-
 test/org/apache/el/TestELInJsp.java                |  11 +-
 .../apache/jasper/TestJspCompilationContext.java   |   2 +-
 .../jasper/compiler/TestELInterpreterFactory.java  |   6 +-
 test/org/apache/jasper/compiler/TestGenerator.java |  12 +-
 .../jasper/compiler/TestJspDocumentParser.java     |   3 +-
 .../jasper/compiler/TestScriptingVariabler.java    |   8 +-
 .../jasper/compiler/TestTagLibraryInfoImpl.java    |   2 +-
 .../jasper/compiler/TestTagPluginManager.java      |   6 +-
 test/org/apache/jasper/compiler/TestValidator.java |   6 +-
 test/org/apache/jasper/compiler/TesterTag.java     |   2 +-
 .../org/apache/jasper/el/TestJasperELResolver.java |   3 +-
 .../jasper/runtime/TestCustomHttpJspPage.java      |   2 +-
 .../jasper/runtime/TestJspContextWrapper.java      |  10 +-
 .../apache/jasper/runtime/TestJspWriterImpl.java   |   2 +-
 .../apache/jasper/runtime/TestPageContextImpl.java |  14 +-
 .../runtime/TestTagHandlerPoolPerformance.java     |   4 +-
 .../apache/jasper/runtime/TesterHttpJspBase.java   |  16 +-
 .../jasper/servlet/TestJspCServletContext.java     |   4 +-
 test/org/apache/jasper/servlet/TestJspServlet.java |   8 +-
 .../jasper/tagplugins/jstl/core/TestForEach.java   |   5 +-
 .../jasper/tagplugins/jstl/core/TestOut.java       |   5 +-
 .../jasper/tagplugins/jstl/core/TestSet.java       |   2 +-
 test/org/apache/naming/TestEnvEntry.java           |   2 +-
 test/org/apache/naming/TesterInjectionServlet.java |   8 +-
 .../apache/naming/resources/TestNamingContext.java |   9 +-
 test/org/apache/tomcat/unittest/TesterContext.java |  13 +-
 .../tomcat/unittest/TesterLeakingServlet1.java     |   8 +-
 .../tomcat/unittest/TesterLeakingServlet2.java     |   8 +-
 test/org/apache/tomcat/unittest/TesterRequest.java |   4 +-
 .../tomcat/unittest/TesterServletContext.java      |  28 ++--
 .../tomcat/unittest/TesterSessionCookieConfig.java |   2 +-
 test/org/apache/tomcat/unittest/tags/Bug53545.java |   2 +-
 .../tomcat/util/descriptor/TestLocalResolver.java  |   2 +-
 .../tomcat/util/descriptor/tld/TestTldParser.java  |  10 +-
 .../web/TestJspConfigDescriptorImpl.java           |   6 +-
 .../descriptor/web/TestSecurityConstraint.java     |  10 +-
 .../apache/tomcat/util/http/CookiesBaseTest.java   |   8 +-
 test/org/apache/tomcat/util/http/TestBug49158.java |  10 +-
 .../apache/tomcat/util/http/TestCookieParsing.java |  10 +-
 .../util/http/TestCookieProcessorGeneration.java   |   2 +-
 .../http/TestCookieProcessorGenerationHttp.java    |  10 +-
 test/org/apache/tomcat/util/http/TestCookies.java  |   2 +-
 .../util/http/TestCookiesDefaultSysProps.java      |   2 +-
 .../util/http/TestCookiesNoFwdStrictSysProps.java  |   2 +-
 .../http/TestCookiesNoStrictNamingSysProps.java    |   2 +-
 .../util/http/TestCookiesStrictSysProps.java       |   2 +-
 .../util/http/TestMimeHeadersIntegration.java      |   8 +-
 .../util/http/TestRequestUtilSameOrigin.java       |   4 +-
 test/org/apache/tomcat/util/net/TesterSupport.java |   9 +-
 .../tomcat/websocket/TestWsWebSocketContainer.java |   3 +-
 .../TestWsWebSocketContainerGetOpenSessions.java   |   3 +-
 .../apache/tomcat/websocket/TesterEchoServer.java  |   3 +-
 .../websocket/pojo/TestEncodingDecoding.java       |   3 +-
 .../tomcat/websocket/server/TestCloseBug58624.java |   3 +-
 .../websocket/server/TesterEndpointConfig.java     |   3 +-
 test/webapp-fragments/WEB-INF/lib/resources.jar    | Bin 20061 -> 19989 bytes
 test/webapp/WEB-INF/tags/bug43400.tag              |   2 +-
 .../docs/appdev/sample/src/mypackage/Hello.java    |   8 +-
 webapps/docs/config/context.xml                    |   4 +-
 webapps/docs/config/cookie-processor.xml           |   4 +-
 webapps/docs/config/filter.xml                     |   4 +-
 webapps/docs/config/host.xml                       |   2 +-
 webapps/docs/config/valve.xml                      |   2 +-
 webapps/docs/funcspecs/fs-default.xml              |   2 +-
 webapps/docs/graal.xml                             |   2 +-
 webapps/docs/logging.xml                           |   6 +-
 webapps/docs/manager-howto.xml                     |   4 +-
 webapps/docs/ssi-howto.xml                         |   2 +-
 webapps/docs/ssl-howto.xml                         |  12 +-
 .../examples/WEB-INF/classes/CookieExample.java    |  12 +-
 .../WEB-INF/classes/HelloWorldExample.java         |   8 +-
 .../WEB-INF/classes/RequestHeaderExample.java      |  10 +-
 .../WEB-INF/classes/RequestInfoExample.java        |  10 +-
 .../WEB-INF/classes/RequestParamExample.java       |   8 +-
 webapps/examples/WEB-INF/classes/ServletToJsp.java |   6 +-
 .../examples/WEB-INF/classes/SessionExample.java   |  10 +-
 webapps/examples/WEB-INF/classes/async/Async0.java |  10 +-
 webapps/examples/WEB-INF/classes/async/Async1.java |  10 +-
 webapps/examples/WEB-INF/classes/async/Async2.java |  10 +-
 webapps/examples/WEB-INF/classes/async/Async3.java |  10 +-
 .../classes/async/AsyncStockContextListener.java   |   6 +-
 .../WEB-INF/classes/async/AsyncStockServlet.java   |  16 +-
 webapps/examples/WEB-INF/classes/cal/Entries.java  |   2 +-
 .../examples/WEB-INF/classes/cal/TableBean.java    |   2 +-
 .../compressionFilters/CompressionFilter.java      |  16 +-
 .../CompressionFilterTestServlet.java              |  10 +-
 .../CompressionResponseStream.java                 |   4 +-
 .../CompressionServletResponseWrapper.java         |   6 +-
 .../WEB-INF/classes/examples/ExampleTagBase.java   |   8 +-
 .../examples/WEB-INF/classes/examples/FooTag.java  |   4 +-
 .../WEB-INF/classes/examples/FooTagExtraInfo.java  |   6 +-
 .../examples/WEB-INF/classes/examples/LogTag.java  |   4 +-
 .../WEB-INF/classes/examples/ValuesTag.java        |   8 +-
 .../WEB-INF/classes/filters/ExampleFilter.java     |  10 +-
 .../WEB-INF/classes/http2/SimpleImagePush.java     |  10 +-
 .../jsp2/examples/simpletag/EchoAttributesTag.java |   8 +-
 .../jsp2/examples/simpletag/FindBookSimpleTag.java |   4 +-
 .../examples/simpletag/HelloWorldSimpleTag.java    |   4 +-
 .../jsp2/examples/simpletag/RepeatSimpleTag.java   |   4 +-
 .../jsp2/examples/simpletag/ShuffleSimpleTag.java  |   6 +-
 .../jsp2/examples/simpletag/TileSimpleTag.java     |   4 +-
 .../WEB-INF/classes/listeners/ContextListener.java |  10 +-
 .../WEB-INF/classes/listeners/SessionListener.java |  14 +-
 .../WEB-INF/classes/nonblocking/ByteCounter.java   |  18 +-
 .../WEB-INF/classes/nonblocking/NumberWriter.java  |  18 +-
 .../WEB-INF/classes/trailers/ResponseTrailers.java |   8 +-
 .../WEB-INF/classes/validators/DebugValidator.java |   6 +-
 .../drawboard/DrawboardContextListener.java        |   4 +-
 webapps/examples/servlets/cookies.html             |   4 +-
 webapps/examples/servlets/helloworld.html          |   4 +-
 webapps/examples/servlets/reqheaders.html          |   4 +-
 webapps/examples/servlets/reqinfo.html             |   4 +-
 webapps/examples/servlets/reqparams.html           |   4 +-
 webapps/examples/servlets/sessions.html            |   4 +-
 webapps/host-manager/WEB-INF/jsp/404.jsp           |   2 +-
 webapps/manager/WEB-INF/jsp/404.jsp                |   2 +-
 webapps/manager/WEB-INF/jsp/sessionDetail.jsp      |   2 +-
 696 files changed, 2558 insertions(+), 2536 deletions(-)

diff --git a/build.xml b/build.xml
index a553b56..1f30fc0 100644
--- a/build.xml
+++ b/build.xml
@@ -270,7 +270,7 @@
     <include name="**/LICENSE"/>
     <include name="**/NOTICE"/>
     <include name="**/RELEASE-NOTES"/>
-    <include name="**/javax.servlet.ServletContainerInitializer"/>
+    <include name="**/jakarta.servlet.ServletContainerInitializer"/>
     <include name="**/javax.websocket.ContainerProvider"/>
     <include name="**/javax.websocket.server.ServerEndpointConfig$Configurator"/>
     <include name="**/.gitignore"/>
@@ -331,16 +331,16 @@
   </patternset>
 
   <patternset id="files.servlet-api">
-    <include name="javax/servlet/*" />
-    <include name="javax/servlet/annotation/**" />
-    <include name="javax/servlet/descriptor/**" />
-    <include name="javax/servlet/http/**" />
-    <include name="javax/servlet/resources/**" />
-    <exclude name="javax/servlet/jsp"/>
+    <include name="jakarta/servlet/*" />
+    <include name="jakarta/servlet/annotation/**" />
+    <include name="jakarta/servlet/descriptor/**" />
+    <include name="jakarta/servlet/http/**" />
+    <include name="jakarta/servlet/resources/**" />
+    <exclude name="jakarta/servlet/jsp"/>
   </patternset>
 
   <patternset id="files.jsp-api">
-    <include name="javax/servlet/jsp/**" />
+    <include name="jakarta/servlet/jsp/**" />
   </patternset>
 
   <patternset id="files.el-api">
@@ -1907,8 +1907,8 @@ Apache Tomcat ${version} native binaries for Win64 AMD64/EMT64 platform.
         <path location="${ant.core.lib}"/>
       </classpath>
     </javadoc>
-    <javadoc packagenames="javax.servlet.*"
-      excludepackagenames="javax.servlet.jsp.*"
+    <javadoc packagenames="jakarta.servlet.*"
+      excludepackagenames="jakarta.servlet.jsp.*"
       sourcepath="${tomcat.dist}/src/java"
       destdir="${tomcat.dist}/webapps/docs/servletapi"
       version="true"
@@ -1929,7 +1929,7 @@ Apache Tomcat ${version} native binaries for Win64 AMD64/EMT64 platform.
         <path location="${ant.core.lib}"/>
       </classpath>
     </javadoc>
-    <javadoc packagenames="javax.servlet.jsp.*"
+    <javadoc packagenames="jakarta.servlet.jsp.*"
       sourcepath="${tomcat.dist}/src/java"
       destdir="${tomcat.dist}/webapps/docs/jspapi"
       version="true"
diff --git a/java/jakarta/el/CompositeELResolver.java b/java/jakarta/el/CompositeELResolver.java
index afcdbcd..e0123f3 100644
--- a/java/jakarta/el/CompositeELResolver.java
+++ b/java/jakarta/el/CompositeELResolver.java
@@ -27,7 +27,7 @@ public class CompositeELResolver extends ELResolver {
     static {
         Class<?> clazz = null;
         try {
-            clazz = Class.forName("javax.servlet.jsp.el.ScopedAttributeELResolver");
+            clazz = Class.forName("jakarta.servlet.jsp.el.ScopedAttributeELResolver");
         } catch (ClassNotFoundException e) {
             // Ignore. This is expected if using the EL stand-alone
         }
@@ -94,7 +94,7 @@ public class CompositeELResolver extends ELResolver {
                 if (SCOPED_ATTRIBUTE_EL_RESOLVER != null &&
                         SCOPED_ATTRIBUTE_EL_RESOLVER.isAssignableFrom(resolvers[i].getClass())) {
                     // Special case since
-                    // javax.servlet.jsp.el.ScopedAttributeELResolver will
+                    // jakarta.servlet.jsp.el.ScopedAttributeELResolver will
                     // always return Object.class for type
                     Object value = resolvers[i].getValue(context, base, property);
                     if (value != null) {
diff --git a/java/jakarta/el/ImportHandler.java b/java/jakarta/el/ImportHandler.java
index cc18f6f..bfda5b4 100644
--- a/java/jakarta/el/ImportHandler.java
+++ b/java/jakarta/el/ImportHandler.java
@@ -85,7 +85,7 @@ public class ImportHandler {
         // Exceptions
         servletClassNames.add("ServletException");
         servletClassNames.add("UnavailableException");
-        standardPackages.put("javax.servlet", servletClassNames);
+        standardPackages.put("jakarta.servlet", servletClassNames);
 
         // Servlet 4.0
         Set<String> servletHttpClassNames = new HashSet<>();
@@ -115,7 +115,7 @@ public class ImportHandler {
         servletHttpClassNames.add("HttpUtils");
         // Enums
         servletHttpClassNames.add("MappingMatch");
-        standardPackages.put("javax.servlet.http", servletHttpClassNames);
+        standardPackages.put("jakarta.servlet.http", servletHttpClassNames);
 
         // JSP 2.3
         Set<String> servletJspClassNames = new HashSet<>();
@@ -134,7 +134,7 @@ public class ImportHandler {
         servletJspClassNames.add("JspException");
         servletJspClassNames.add("JspTagException");
         servletJspClassNames.add("SkipPageException");
-        standardPackages.put("javax.servlet.jsp", servletJspClassNames);
+        standardPackages.put("jakarta.servlet.jsp", servletJspClassNames);
 
         Set<String> javaLangClassNames = new HashSet<>();
         // Taken from Java 14 EA27 Javadoc
diff --git a/java/javax/servlet/AsyncContext.java b/java/jakarta/servlet/AsyncContext.java
similarity index 81%
rename from java/javax/servlet/AsyncContext.java
rename to java/jakarta/servlet/AsyncContext.java
index 9d0c81d..31d5ca5 100644
--- a/java/javax/servlet/AsyncContext.java
+++ b/java/jakarta/servlet/AsyncContext.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet;
+package jakarta.servlet;
 
 /**
  * TODO SERVLET3 - Add comments
@@ -22,17 +22,17 @@ package javax.servlet;
  */
 public interface AsyncContext {
     public static final String ASYNC_REQUEST_URI =
-            "javax.servlet.async.request_uri";
+            "jakarta.servlet.async.request_uri";
     public static final String ASYNC_CONTEXT_PATH  =
-            "javax.servlet.async.context_path";
+            "jakarta.servlet.async.context_path";
     public static final String ASYNC_MAPPING =
-            "javax.servlet.async.mapping";
+            "jakarta.servlet.async.mapping";
     public static final String ASYNC_PATH_INFO =
-            "javax.servlet.async.path_info";
+            "jakarta.servlet.async.path_info";
     public static final String ASYNC_SERVLET_PATH =
-            "javax.servlet.async.servlet_path";
+            "jakarta.servlet.async.servlet_path";
     public static final String ASYNC_QUERY_STRING =
-            "javax.servlet.async.query_string";
+            "jakarta.servlet.async.query_string";
 
     ServletRequest getRequest();
 
@@ -43,8 +43,8 @@ public interface AsyncContext {
     /**
      * @throws IllegalStateException if this method is called when the request
      * is not in asynchronous mode. The request is in asynchronous mode after
-     * {@link javax.servlet.http.HttpServletRequest#startAsync()} or
-     * {@link javax.servlet.http.HttpServletRequest#startAsync(ServletRequest,
+     * {@link jakarta.servlet.http.HttpServletRequest#startAsync()} or
+     * {@link jakarta.servlet.http.HttpServletRequest#startAsync(ServletRequest,
      * ServletResponse)} has been called and before {@link #complete()} or any
      * other dispatch() method has been called.
      */
@@ -57,8 +57,8 @@ public interface AsyncContext {
      *
      * @throws IllegalStateException if this method is called when the request
      * is not in asynchronous mode. The request is in asynchronous mode after
-     * {@link javax.servlet.http.HttpServletRequest#startAsync()} or
-     * {@link javax.servlet.http.HttpServletRequest#startAsync(ServletRequest,
+     * {@link jakarta.servlet.http.HttpServletRequest#startAsync()} or
+     * {@link jakarta.servlet.http.HttpServletRequest#startAsync(ServletRequest,
      * ServletResponse)} has been called and before {@link #complete()} or any
      * other dispatch() method has been called.
      */
@@ -72,8 +72,8 @@ public interface AsyncContext {
      *
      * @throws IllegalStateException if this method is called when the request
      * is not in asynchronous mode. The request is in asynchronous mode after
-     * {@link javax.servlet.http.HttpServletRequest#startAsync()} or
-     * {@link javax.servlet.http.HttpServletRequest#startAsync(ServletRequest,
+     * {@link jakarta.servlet.http.HttpServletRequest#startAsync()} or
+     * {@link jakarta.servlet.http.HttpServletRequest#startAsync(ServletRequest,
      * ServletResponse)} has been called and before {@link #complete()} or any
      * other dispatch() method has been called.
      */
diff --git a/java/javax/servlet/AsyncEvent.java b/java/jakarta/servlet/AsyncEvent.java
similarity index 98%
rename from java/javax/servlet/AsyncEvent.java
rename to java/jakarta/servlet/AsyncEvent.java
index 4b0f0b3..5d2bdd1 100644
--- a/java/javax/servlet/AsyncEvent.java
+++ b/java/jakarta/servlet/AsyncEvent.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet;
+package jakarta.servlet;
 
 /**
  * TODO SERVLET3 - Add comments
diff --git a/java/javax/servlet/AsyncListener.java b/java/jakarta/servlet/AsyncListener.java
similarity index 97%
rename from java/javax/servlet/AsyncListener.java
rename to java/jakarta/servlet/AsyncListener.java
index 66f6392..dc3e1a0 100644
--- a/java/javax/servlet/AsyncListener.java
+++ b/java/jakarta/servlet/AsyncListener.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.IOException;
 import java.util.EventListener;
diff --git a/java/javax/servlet/DispatcherType.java b/java/jakarta/servlet/DispatcherType.java
similarity index 97%
rename from java/javax/servlet/DispatcherType.java
rename to java/jakarta/servlet/DispatcherType.java
index 67e5603..6511ce0 100644
--- a/java/javax/servlet/DispatcherType.java
+++ b/java/jakarta/servlet/DispatcherType.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet;
+package jakarta.servlet;
 
 /**
  * @since Servlet 3.0
diff --git a/java/javax/servlet/Filter.java b/java/jakarta/servlet/Filter.java
similarity index 99%
rename from java/javax/servlet/Filter.java
rename to java/jakarta/servlet/Filter.java
index 06b07cd..dbbe718 100644
--- a/java/javax/servlet/Filter.java
+++ b/java/jakarta/servlet/Filter.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.IOException;
 
diff --git a/java/javax/servlet/FilterChain.java b/java/jakarta/servlet/FilterChain.java
similarity index 98%
rename from java/javax/servlet/FilterChain.java
rename to java/jakarta/servlet/FilterChain.java
index fca19c3..86d3f30 100644
--- a/java/javax/servlet/FilterChain.java
+++ b/java/jakarta/servlet/FilterChain.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.IOException;
 
diff --git a/java/javax/servlet/FilterConfig.java b/java/jakarta/servlet/FilterConfig.java
similarity index 99%
rename from java/javax/servlet/FilterConfig.java
rename to java/jakarta/servlet/FilterConfig.java
index 5e3c44b..f0a1a93 100644
--- a/java/javax/servlet/FilterConfig.java
+++ b/java/jakarta/servlet/FilterConfig.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package javax.servlet;
+package jakarta.servlet;
 
 import java.util.Enumeration;
 
diff --git a/java/javax/servlet/FilterRegistration.java b/java/jakarta/servlet/FilterRegistration.java
similarity index 99%
rename from java/javax/servlet/FilterRegistration.java
rename to java/jakarta/servlet/FilterRegistration.java
index b9b10ed..0516459 100644
--- a/java/javax/servlet/FilterRegistration.java
+++ b/java/jakarta/servlet/FilterRegistration.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.util.Collection;
 import java.util.EnumSet;
diff --git a/java/javax/servlet/GenericFilter.java b/java/jakarta/servlet/GenericFilter.java
similarity index 98%
rename from java/javax/servlet/GenericFilter.java
rename to java/jakarta/servlet/GenericFilter.java
index 3f78fe4..7d999a5 100644
--- a/java/javax/servlet/GenericFilter.java
+++ b/java/jakarta/servlet/GenericFilter.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.Serializable;
 import java.util.Enumeration;
diff --git a/java/javax/servlet/GenericServlet.java b/java/jakarta/servlet/GenericServlet.java
similarity index 98%
rename from java/javax/servlet/GenericServlet.java
rename to java/jakarta/servlet/GenericServlet.java
index da70a61..92cff5c 100644
--- a/java/javax/servlet/GenericServlet.java
+++ b/java/jakarta/servlet/GenericServlet.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.IOException;
 import java.util.Enumeration;
 
 /**
  * Defines a generic, protocol-independent servlet. To write an HTTP servlet for
- * use on the Web, extend {@link javax.servlet.http.HttpServlet} instead.
+ * use on the Web, extend {@link jakarta.servlet.http.HttpServlet} instead.
  * <p>
  * <code>GenericServlet</code> implements the <code>Servlet</code> and
  * <code>ServletConfig</code> interfaces. <code>GenericServlet</code> may be
diff --git a/java/javax/servlet/HttpConstraintElement.java b/java/jakarta/servlet/HttpConstraintElement.java
similarity index 93%
rename from java/javax/servlet/HttpConstraintElement.java
rename to java/jakarta/servlet/HttpConstraintElement.java
index 82af497..e0fe8d1 100644
--- a/java/javax/servlet/HttpConstraintElement.java
+++ b/java/jakarta/servlet/HttpConstraintElement.java
@@ -14,22 +14,22 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.util.ResourceBundle;
 
-import javax.servlet.annotation.ServletSecurity.EmptyRoleSemantic;
-import javax.servlet.annotation.ServletSecurity.TransportGuarantee;
+import jakarta.servlet.annotation.ServletSecurity.EmptyRoleSemantic;
+import jakarta.servlet.annotation.ServletSecurity.TransportGuarantee;
 
 /**
- * Equivalent of {@link javax.servlet.annotation.HttpConstraint} for
+ * Equivalent of {@link jakarta.servlet.annotation.HttpConstraint} for
  * programmatic configuration of security constraints.
  *
  * @since Servlet 3.0
  */
 public class HttpConstraintElement {
 
-    private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
+    private static final String LSTRING_FILE = "jakarta.servlet.LocalStrings";
     private static final ResourceBundle lStrings =
         ResourceBundle.getBundle(LSTRING_FILE);
 
diff --git a/java/javax/servlet/HttpMethodConstraintElement.java b/java/jakarta/servlet/HttpMethodConstraintElement.java
similarity index 95%
rename from java/javax/servlet/HttpMethodConstraintElement.java
rename to java/jakarta/servlet/HttpMethodConstraintElement.java
index 5de2ad9..1adfbe5 100644
--- a/java/javax/servlet/HttpMethodConstraintElement.java
+++ b/java/jakarta/servlet/HttpMethodConstraintElement.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.util.ResourceBundle;
 
@@ -25,7 +25,7 @@ import java.util.ResourceBundle;
 public class HttpMethodConstraintElement extends HttpConstraintElement {
 
     // Can't inherit from HttpConstraintElement as API does not allow it
-    private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
+    private static final String LSTRING_FILE = "jakarta.servlet.LocalStrings";
     private static final ResourceBundle lStrings =
         ResourceBundle.getBundle(LSTRING_FILE);
 
diff --git a/java/javax/servlet/LocalStrings.properties b/java/jakarta/servlet/LocalStrings.properties
similarity index 100%
rename from java/javax/servlet/LocalStrings.properties
rename to java/jakarta/servlet/LocalStrings.properties
diff --git a/java/javax/servlet/LocalStrings_cs.properties b/java/jakarta/servlet/LocalStrings_cs.properties
similarity index 100%
rename from java/javax/servlet/LocalStrings_cs.properties
rename to java/jakarta/servlet/LocalStrings_cs.properties
diff --git a/java/javax/servlet/LocalStrings_de.properties b/java/jakarta/servlet/LocalStrings_de.properties
similarity index 100%
rename from java/javax/servlet/LocalStrings_de.properties
rename to java/jakarta/servlet/LocalStrings_de.properties
diff --git a/java/javax/servlet/LocalStrings_es.properties b/java/jakarta/servlet/LocalStrings_es.properties
similarity index 100%
rename from java/javax/servlet/LocalStrings_es.properties
rename to java/jakarta/servlet/LocalStrings_es.properties
diff --git a/java/javax/servlet/LocalStrings_fr.properties b/java/jakarta/servlet/LocalStrings_fr.properties
similarity index 100%
rename from java/javax/servlet/LocalStrings_fr.properties
rename to java/jakarta/servlet/LocalStrings_fr.properties
diff --git a/java/javax/servlet/LocalStrings_ja.properties b/java/jakarta/servlet/LocalStrings_ja.properties
similarity index 100%
rename from java/javax/servlet/LocalStrings_ja.properties
rename to java/jakarta/servlet/LocalStrings_ja.properties
diff --git a/java/javax/servlet/LocalStrings_ko.properties b/java/jakarta/servlet/LocalStrings_ko.properties
similarity index 100%
rename from java/javax/servlet/LocalStrings_ko.properties
rename to java/jakarta/servlet/LocalStrings_ko.properties
diff --git a/java/javax/servlet/LocalStrings_zh_CN.properties b/java/jakarta/servlet/LocalStrings_zh_CN.properties
similarity index 100%
rename from java/javax/servlet/LocalStrings_zh_CN.properties
rename to java/jakarta/servlet/LocalStrings_zh_CN.properties
diff --git a/java/javax/servlet/MultipartConfigElement.java b/java/jakarta/servlet/MultipartConfigElement.java
similarity index 97%
rename from java/javax/servlet/MultipartConfigElement.java
rename to java/jakarta/servlet/MultipartConfigElement.java
index a2c6c06..f30101c 100644
--- a/java/javax/servlet/MultipartConfigElement.java
+++ b/java/jakarta/servlet/MultipartConfigElement.java
@@ -14,9 +14,9 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet;
+package jakarta.servlet;
 
-import javax.servlet.annotation.MultipartConfig;
+import jakarta.servlet.annotation.MultipartConfig;
 
 /**
  * @since Servlet 3.0
diff --git a/java/javax/servlet/ReadListener.java b/java/jakarta/servlet/ReadListener.java
similarity index 98%
rename from java/javax/servlet/ReadListener.java
rename to java/jakarta/servlet/ReadListener.java
index bb2ed18..c31bba6 100644
--- a/java/javax/servlet/ReadListener.java
+++ b/java/jakarta/servlet/ReadListener.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.IOException;
 
diff --git a/java/javax/servlet/Registration.java b/java/jakarta/servlet/Registration.java
similarity index 99%
rename from java/javax/servlet/Registration.java
rename to java/jakarta/servlet/Registration.java
index 3eebca5..c6c0de8 100644
--- a/java/javax/servlet/Registration.java
+++ b/java/jakarta/servlet/Registration.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.util.Map;
 import java.util.Set;
diff --git a/java/javax/servlet/RequestDispatcher.java b/java/jakarta/servlet/RequestDispatcher.java
similarity index 88%
rename from java/javax/servlet/RequestDispatcher.java
rename to java/jakarta/servlet/RequestDispatcher.java
index 73bfe7e..11c498e 100644
--- a/java/javax/servlet/RequestDispatcher.java
+++ b/java/jakarta/servlet/RequestDispatcher.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.IOException;
 
@@ -45,7 +45,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    static final String FORWARD_REQUEST_URI = "javax.servlet.forward.request_uri";
+    static final String FORWARD_REQUEST_URI = "jakarta.servlet.forward.request_uri";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -56,7 +56,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    static final String FORWARD_CONTEXT_PATH = "javax.servlet.forward.context_path";
+    static final String FORWARD_CONTEXT_PATH = "jakarta.servlet.forward.context_path";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -67,7 +67,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 4.0
      */
-    static final String FORWARD_MAPPING = "javax.servlet.forward.mapping";
+    static final String FORWARD_MAPPING = "jakarta.servlet.forward.mapping";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -78,7 +78,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    static final String FORWARD_PATH_INFO = "javax.servlet.forward.path_info";
+    static final String FORWARD_PATH_INFO = "jakarta.servlet.forward.path_info";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -89,7 +89,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    static final String FORWARD_SERVLET_PATH = "javax.servlet.forward.servlet_path";
+    static final String FORWARD_SERVLET_PATH = "jakarta.servlet.forward.servlet_path";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -100,7 +100,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    static final String FORWARD_QUERY_STRING = "javax.servlet.forward.query_string";
+    static final String FORWARD_QUERY_STRING = "jakarta.servlet.forward.query_string";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -112,7 +112,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    static final String INCLUDE_REQUEST_URI = "javax.servlet.include.request_uri";
+    static final String INCLUDE_REQUEST_URI = "jakarta.servlet.include.request_uri";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -124,7 +124,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    static final String INCLUDE_CONTEXT_PATH = "javax.servlet.include.context_path";
+    static final String INCLUDE_CONTEXT_PATH = "jakarta.servlet.include.context_path";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -136,7 +136,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    static final String INCLUDE_PATH_INFO = "javax.servlet.include.path_info";
+    static final String INCLUDE_PATH_INFO = "jakarta.servlet.include.path_info";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -148,7 +148,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 4.0
      */
-    static final String INCLUDE_MAPPING = "javax.servlet.include.mapping";
+    static final String INCLUDE_MAPPING = "jakarta.servlet.include.mapping";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -160,7 +160,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    static final String INCLUDE_SERVLET_PATH = "javax.servlet.include.servlet_path";
+    static final String INCLUDE_SERVLET_PATH = "jakarta.servlet.include.servlet_path";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -172,7 +172,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    static final String INCLUDE_QUERY_STRING = "javax.servlet.include.query_string";
+    static final String INCLUDE_QUERY_STRING = "jakarta.servlet.include.query_string";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -182,7 +182,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    public static final String ERROR_EXCEPTION = "javax.servlet.error.exception";
+    public static final String ERROR_EXCEPTION = "jakarta.servlet.error.exception";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -192,7 +192,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    public static final String ERROR_EXCEPTION_TYPE = "javax.servlet.error.exception_type";
+    public static final String ERROR_EXCEPTION_TYPE = "jakarta.servlet.error.exception_type";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -202,7 +202,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    public static final String ERROR_MESSAGE = "javax.servlet.error.message";
+    public static final String ERROR_MESSAGE = "jakarta.servlet.error.message";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -212,7 +212,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    public static final String ERROR_REQUEST_URI = "javax.servlet.error.request_uri";
+    public static final String ERROR_REQUEST_URI = "jakarta.servlet.error.request_uri";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -222,7 +222,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    public static final String ERROR_SERVLET_NAME = "javax.servlet.error.servlet_name";
+    public static final String ERROR_SERVLET_NAME = "jakarta.servlet.error.servlet_name";
 
     /**
      * The name of the request attribute that should be set by the container
@@ -232,7 +232,7 @@ public interface RequestDispatcher {
      *
      * @since Servlet 3.0
      */
-    public static final String ERROR_STATUS_CODE = "javax.servlet.error.status_code";
+    public static final String ERROR_STATUS_CODE = "jakarta.servlet.error.status_code";
 
     /**
      * Forwards a request from a servlet to another resource (servlet, JSP file,
diff --git a/java/javax/servlet/Servlet.java b/java/jakarta/servlet/Servlet.java
similarity index 97%
rename from java/javax/servlet/Servlet.java
rename to java/jakarta/servlet/Servlet.java
index 73d30bb..2b7d247 100644
--- a/java/javax/servlet/Servlet.java
+++ b/java/jakarta/servlet/Servlet.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.IOException;
 
@@ -29,8 +29,8 @@ import java.io.IOException;
  *
  * <p>
  * To implement this interface, you can write a generic servlet that extends
- * <code>javax.servlet.GenericServlet</code> or an HTTP servlet that extends
- * <code>javax.servlet.http.HttpServlet</code>.
+ * <code>jakarta.servlet.GenericServlet</code> or an HTTP servlet that extends
+ * <code>jakarta.servlet.http.HttpServlet</code>.
  *
  * <p>
  * This interface defines methods to initialize a servlet, to service requests,
@@ -52,7 +52,7 @@ import java.io.IOException;
  * version, and copyright.
  *
  * @see GenericServlet
- * @see javax.servlet.http.HttpServlet
+ * @see jakarta.servlet.http.HttpServlet
  */
 public interface Servlet {
 
diff --git a/java/javax/servlet/ServletConfig.java b/java/jakarta/servlet/ServletConfig.java
similarity index 99%
rename from java/javax/servlet/ServletConfig.java
rename to java/jakarta/servlet/ServletConfig.java
index be61656..a8cdfc3 100644
--- a/java/javax/servlet/ServletConfig.java
+++ b/java/jakarta/servlet/ServletConfig.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.util.Enumeration;
 
diff --git a/java/javax/servlet/ServletContainerInitializer.java b/java/jakarta/servlet/ServletContainerInitializer.java
similarity index 88%
rename from java/javax/servlet/ServletContainerInitializer.java
rename to java/jakarta/servlet/ServletContainerInitializer.java
index 3dace91..94e4b04 100644
--- a/java/javax/servlet/ServletContainerInitializer.java
+++ b/java/jakarta/servlet/ServletContainerInitializer.java
@@ -14,13 +14,13 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.util.Set;
 
 /**
  * ServletContainerInitializers (SCIs) are registered via an entry in the
- * file META-INF/services/javax.servlet.ServletContainerInitializer that must be
+ * file META-INF/services/jakarta.servlet.ServletContainerInitializer that must be
  * included in the JAR file that contains the SCI implementation.
  * <p>
  * SCI processing is performed regardless of the setting of metadata-complete.
@@ -30,7 +30,7 @@ import java.util.Set;
  * absolute ordering may be defined.
  * <p>
  * SCIs register an interest in annotations (class, method or field) and/or
- * types via the {@link javax.servlet.annotation.HandlesTypes} annotation which
+ * types via the {@link jakarta.servlet.annotation.HandlesTypes} annotation which
  * is added to the class.
  *
  * @since Servlet 3.0
@@ -40,7 +40,7 @@ public interface ServletContainerInitializer {
     /**
      * Receives notification during startup of a web application of the classes
      * within the web application that matched the criteria defined via the
-     * {@link javax.servlet.annotation.HandlesTypes} annotation.
+     * {@link jakarta.servlet.annotation.HandlesTypes} annotation.
      *
      * @param c     The (possibly null) set of classes that met the specified
      *              criteria
diff --git a/java/javax/servlet/ServletContext.java b/java/jakarta/servlet/ServletContext.java
similarity index 93%
rename from java/javax/servlet/ServletContext.java
rename to java/jakarta/servlet/ServletContext.java
index 6083566..95191f9 100644
--- a/java/javax/servlet/ServletContext.java
+++ b/java/jakarta/servlet/ServletContext.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.InputStream;
 import java.net.MalformedURLException;
@@ -24,7 +24,7 @@ import java.util.EventListener;
 import java.util.Map;
 import java.util.Set;
 
-import javax.servlet.descriptor.JspConfigDescriptor;
+import jakarta.servlet.descriptor.JspConfigDescriptor;
 
 /**
  * Defines a set of methods that a servlet uses to communicate with its servlet
@@ -51,12 +51,12 @@ import javax.servlet.descriptor.JspConfigDescriptor;
  */
 public interface ServletContext {
 
-    public static final String TEMPDIR = "javax.servlet.context.tempdir";
+    public static final String TEMPDIR = "jakarta.servlet.context.tempdir";
 
     /**
      * @since Servlet 3.0
      */
-    public static final String ORDERED_LIBS = "javax.servlet.context.orderedLibs";
+    public static final String ORDERED_LIBS = "jakarta.servlet.context.orderedLibs";
 
     /**
      * Return the main path associated with this context.
@@ -114,7 +114,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      *
@@ -128,7 +128,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0 TODO SERVLET3 - Add comments
@@ -464,7 +464,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @throws NullPointerException If the provided parameter name is
@@ -566,7 +566,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0
@@ -584,7 +584,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0
@@ -596,7 +596,7 @@ public interface ServletContext {
      * @param   servletName  Name of servlet to add
      * @param   servletClass Class of servlet to add
      * @return  <code>null</code> if the servlet has already been fully defined,
-     *          else a {@link javax.servlet.ServletRegistration.Dynamic} object
+     *          else a {@link jakarta.servlet.ServletRegistration.Dynamic} object
      *          that can be used to further configure the servlet
      * @throws IllegalStateException
      *             If the context has already been initialised
@@ -604,7 +604,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0
@@ -619,7 +619,7 @@ public interface ServletContext {
      * @param jspFile   The path, relative to the web application root, for the
      *                  JSP file to be used for this servlet
      *
-     * @return  a {@link javax.servlet.ServletRegistration.Dynamic} object
+     * @return  a {@link jakarta.servlet.ServletRegistration.Dynamic} object
      *          that can be used to further configure the servlet
      *
      * @since Servlet 4.0
@@ -636,7 +636,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0
@@ -657,7 +657,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      *
@@ -672,7 +672,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0
@@ -684,13 +684,13 @@ public interface ServletContext {
      * @param   filterName  Name of filter to add
      * @param   className Name of filter class
      * @return  <code>null</code> if the filter has already been fully defined,
-     *          else a {@link javax.servlet.FilterRegistration.Dynamic} object
+     *          else a {@link jakarta.servlet.FilterRegistration.Dynamic} object
      *          that can be used to further configure the filter
      * @throws UnsupportedOperationException    If called from a
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @throws IllegalStateException
@@ -704,13 +704,13 @@ public interface ServletContext {
      * @param   filterName  Name of filter to add
      * @param   filter      Filter to add
      * @return  <code>null</code> if the filter has already been fully defined,
-     *          else a {@link javax.servlet.FilterRegistration.Dynamic} object
+     *          else a {@link jakarta.servlet.FilterRegistration.Dynamic} object
      *          that can be used to further configure the filter
      * @throws UnsupportedOperationException    If called from a
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @throws IllegalStateException
@@ -724,13 +724,13 @@ public interface ServletContext {
      * @param   filterName  Name of filter to add
      * @param   filterClass Class of filter to add
      * @return  <code>null</code> if the filter has already been fully defined,
-     *          else a {@link javax.servlet.FilterRegistration.Dynamic} object
+     *          else a {@link jakarta.servlet.FilterRegistration.Dynamic} object
      *          that can be used to further configure the filter
      * @throws UnsupportedOperationException    If called from a
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @throws IllegalStateException
@@ -749,7 +749,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @throws ServletException TODO
@@ -765,7 +765,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0
@@ -778,7 +778,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0 TODO SERVLET3 - Add comments
@@ -791,7 +791,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0 TODO SERVLET3 - Add comments
@@ -812,7 +812,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0
@@ -834,7 +834,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0
@@ -850,7 +850,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0
@@ -864,7 +864,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0
@@ -879,7 +879,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0
@@ -893,7 +893,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0
@@ -910,7 +910,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0
@@ -924,7 +924,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @since Servlet 3.0 TODO SERVLET3 - Add comments
@@ -940,7 +940,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @throws SecurityException if access to the class loader is prevented by a
@@ -956,7 +956,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @throws IllegalArgumentException If the list of roleNames is null or
@@ -986,7 +986,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      *
@@ -1004,7 +1004,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @throws IllegalStateException If the ServletContext has already been
@@ -1024,7 +1024,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      *
@@ -1043,7 +1043,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @throws IllegalStateException If the ServletContext has already been
@@ -1063,7 +1063,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      *
@@ -1082,7 +1082,7 @@ public interface ServletContext {
      *    {@link ServletContextListener#contextInitialized(ServletContextEvent)}
      *    method of a {@link ServletContextListener} that was not defined in a
      *    web.xml file, a web-fragment.xml file nor annotated with
-     *    {@link javax.servlet.annotation.WebListener}. For example, a
+     *    {@link jakarta.servlet.annotation.WebListener}. For example, a
      *    {@link ServletContextListener} defined in a TLD would not be able to
      *    use this method.
      * @throws IllegalStateException If the ServletContext has already been
diff --git a/java/javax/servlet/ServletContextAttributeEvent.java b/java/jakarta/servlet/ServletContextAttributeEvent.java
similarity index 98%
rename from java/javax/servlet/ServletContextAttributeEvent.java
rename to java/jakarta/servlet/ServletContextAttributeEvent.java
index 9373b81..edbb266 100644
--- a/java/javax/servlet/ServletContextAttributeEvent.java
+++ b/java/jakarta/servlet/ServletContextAttributeEvent.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 /**
  * This is the event class for notifications about changes to the attributes of
diff --git a/java/javax/servlet/ServletContextAttributeListener.java b/java/jakarta/servlet/ServletContextAttributeListener.java
similarity index 98%
rename from java/javax/servlet/ServletContextAttributeListener.java
rename to java/jakarta/servlet/ServletContextAttributeListener.java
index 61ef615..ced5a7b 100644
--- a/java/javax/servlet/ServletContextAttributeListener.java
+++ b/java/jakarta/servlet/ServletContextAttributeListener.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.util.EventListener;
 
diff --git a/java/javax/servlet/ServletContextEvent.java b/java/jakarta/servlet/ServletContextEvent.java
similarity index 98%
rename from java/javax/servlet/ServletContextEvent.java
rename to java/jakarta/servlet/ServletContextEvent.java
index 92a9120..fe53f16 100644
--- a/java/javax/servlet/ServletContextEvent.java
+++ b/java/jakarta/servlet/ServletContextEvent.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 /**
  * This is the event class for notifications about changes to the servlet
diff --git a/java/javax/servlet/ServletContextListener.java b/java/jakarta/servlet/ServletContextListener.java
similarity index 98%
rename from java/javax/servlet/ServletContextListener.java
rename to java/jakarta/servlet/ServletContextListener.java
index 7f926b4..3468e8e 100644
--- a/java/javax/servlet/ServletContextListener.java
+++ b/java/jakarta/servlet/ServletContextListener.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.util.EventListener;
 
diff --git a/java/javax/servlet/ServletException.java b/java/jakarta/servlet/ServletException.java
similarity index 99%
rename from java/javax/servlet/ServletException.java
rename to java/jakarta/servlet/ServletException.java
index 96e3e5c..dcbe563 100644
--- a/java/javax/servlet/ServletException.java
+++ b/java/jakarta/servlet/ServletException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 /**
  * Defines a general exception a servlet can throw when it encounters
diff --git a/java/javax/servlet/ServletInputStream.java b/java/jakarta/servlet/ServletInputStream.java
similarity index 99%
rename from java/javax/servlet/ServletInputStream.java
rename to java/jakarta/servlet/ServletInputStream.java
index 4e5139e..0c8280c 100644
--- a/java/javax/servlet/ServletInputStream.java
+++ b/java/jakarta/servlet/ServletInputStream.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/java/javax/servlet/ServletOutputStream.java b/java/jakarta/servlet/ServletOutputStream.java
similarity index 98%
rename from java/javax/servlet/ServletOutputStream.java
rename to java/jakarta/servlet/ServletOutputStream.java
index bf40d97..d788b08 100644
--- a/java/javax/servlet/ServletOutputStream.java
+++ b/java/jakarta/servlet/ServletOutputStream.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.CharConversionException;
 import java.io.IOException;
@@ -35,7 +35,7 @@ import java.util.ResourceBundle;
  */
 public abstract class ServletOutputStream extends OutputStream {
 
-    private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
+    private static final String LSTRING_FILE = "jakarta.servlet.LocalStrings";
     private static final ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE);
 
     /**
@@ -305,5 +305,5 @@ public abstract class ServletOutputStream extends OutputStream {
      *
      * @since Servlet 3.1
      */
-    public abstract void setWriteListener(javax.servlet.WriteListener listener);
+    public abstract void setWriteListener(jakarta.servlet.WriteListener listener);
 }
diff --git a/java/javax/servlet/ServletRegistration.java b/java/jakarta/servlet/ServletRegistration.java
similarity index 98%
rename from java/javax/servlet/ServletRegistration.java
rename to java/jakarta/servlet/ServletRegistration.java
index 44be9d2..5169f68 100644
--- a/java/javax/servlet/ServletRegistration.java
+++ b/java/jakarta/servlet/ServletRegistration.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.util.Collection;
 import java.util.Set;
diff --git a/java/javax/servlet/ServletRequest.java b/java/jakarta/servlet/ServletRequest.java
similarity index 99%
rename from java/javax/servlet/ServletRequest.java
rename to java/jakarta/servlet/ServletRequest.java
index 68e00d3..1d0bbdd 100644
--- a/java/javax/servlet/ServletRequest.java
+++ b/java/jakarta/servlet/ServletRequest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -31,9 +31,9 @@ import java.util.Map;
  * and values, attributes, and an input stream. Interfaces that extend
  * <code>ServletRequest</code> can provide additional protocol-specific data
  * (for example, HTTP data is provided by
- * {@link javax.servlet.http.HttpServletRequest}.
+ * {@link jakarta.servlet.http.HttpServletRequest}.
  *
- * @see javax.servlet.http.HttpServletRequest
+ * @see jakarta.servlet.http.HttpServletRequest
  */
 public interface ServletRequest {
 
@@ -44,7 +44,7 @@ public interface ServletRequest {
      * Attributes can be set two ways. The servlet container may set attributes
      * to make available custom information about a request. For example, for
      * requests made using HTTPS, the attribute
-     * <code>javax.servlet.request.X509Certificate</code> can be used to
+     * <code>jakarta.servlet.request.X509Certificate</code> can be used to
      * retrieve information on the certificate of the client. Attributes can
      * also be set programmatically using {@link ServletRequest#setAttribute}.
      * This allows information to be embedded into a request before a
diff --git a/java/javax/servlet/ServletRequestAttributeEvent.java b/java/jakarta/servlet/ServletRequestAttributeEvent.java
similarity index 99%
rename from java/javax/servlet/ServletRequestAttributeEvent.java
rename to java/jakarta/servlet/ServletRequestAttributeEvent.java
index 9b25184..abbdc31 100644
--- a/java/javax/servlet/ServletRequestAttributeEvent.java
+++ b/java/jakarta/servlet/ServletRequestAttributeEvent.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 /**
  * This is the event class for notifications of changes to the attributes of the
diff --git a/java/javax/servlet/ServletRequestAttributeListener.java b/java/jakarta/servlet/ServletRequestAttributeListener.java
similarity index 98%
rename from java/javax/servlet/ServletRequestAttributeListener.java
rename to java/jakarta/servlet/ServletRequestAttributeListener.java
index b310c67..5b6b00e 100644
--- a/java/javax/servlet/ServletRequestAttributeListener.java
+++ b/java/jakarta/servlet/ServletRequestAttributeListener.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.util.EventListener;
 
diff --git a/java/javax/servlet/ServletRequestEvent.java b/java/jakarta/servlet/ServletRequestEvent.java
similarity index 98%
rename from java/javax/servlet/ServletRequestEvent.java
rename to java/jakarta/servlet/ServletRequestEvent.java
index 6d95e92..0005ee2 100644
--- a/java/javax/servlet/ServletRequestEvent.java
+++ b/java/jakarta/servlet/ServletRequestEvent.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 /**
  * Events of this kind indicate lifecycle events for a ServletRequest. The
diff --git a/java/javax/servlet/ServletRequestListener.java b/java/jakarta/servlet/ServletRequestListener.java
similarity index 98%
rename from java/javax/servlet/ServletRequestListener.java
rename to java/jakarta/servlet/ServletRequestListener.java
index 86c1ae1..8818f45 100644
--- a/java/javax/servlet/ServletRequestListener.java
+++ b/java/jakarta/servlet/ServletRequestListener.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.util.EventListener;
 
diff --git a/java/javax/servlet/ServletRequestWrapper.java b/java/jakarta/servlet/ServletRequestWrapper.java
similarity index 98%
rename from java/javax/servlet/ServletRequestWrapper.java
rename to java/jakarta/servlet/ServletRequestWrapper.java
index 53029fa..67ec408 100644
--- a/java/javax/servlet/ServletRequestWrapper.java
+++ b/java/jakarta/servlet/ServletRequestWrapper.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -30,10 +30,10 @@ import java.util.ResourceBundle;
  * through to the wrapped request object.
  *
  * @since Servlet 2.3
- * @see javax.servlet.ServletRequest
+ * @see jakarta.servlet.ServletRequest
  */
 public class ServletRequestWrapper implements ServletRequest {
-    private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
+    private static final String LSTRING_FILE = "jakarta.servlet.LocalStrings";
     private static final ResourceBundle lStrings =
         ResourceBundle.getBundle(LSTRING_FILE);
 
diff --git a/java/javax/servlet/ServletResponse.java b/java/jakarta/servlet/ServletResponse.java
similarity index 99%
rename from java/javax/servlet/ServletResponse.java
rename to java/jakarta/servlet/ServletResponse.java
index a3948aa..e1cdd26 100644
--- a/java/javax/servlet/ServletResponse.java
+++ b/java/jakarta/servlet/ServletResponse.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.IOException;
 import java.io.PrintWriter;
diff --git a/java/javax/servlet/ServletResponseWrapper.java b/java/jakarta/servlet/ServletResponseWrapper.java
similarity index 98%
rename from java/javax/servlet/ServletResponseWrapper.java
rename to java/jakarta/servlet/ServletResponseWrapper.java
index 0d3fb1e..449dea9 100644
--- a/java/javax/servlet/ServletResponseWrapper.java
+++ b/java/jakarta/servlet/ServletResponseWrapper.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -28,10 +28,10 @@ import java.util.ResourceBundle;
  * calling through to the wrapped response object.
  *
  * @since v 2.3
- * @see javax.servlet.ServletResponse
+ * @see jakarta.servlet.ServletResponse
  */
 public class ServletResponseWrapper implements ServletResponse {
-    private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
+    private static final String LSTRING_FILE = "jakarta.servlet.LocalStrings";
     private static final ResourceBundle lStrings =
         ResourceBundle.getBundle(LSTRING_FILE);
 
diff --git a/java/javax/servlet/ServletSecurityElement.java b/java/jakarta/servlet/ServletSecurityElement.java
similarity index 97%
rename from java/javax/servlet/ServletSecurityElement.java
rename to java/jakarta/servlet/ServletSecurityElement.java
index 199779e..2b820a3 100644
--- a/java/javax/servlet/ServletSecurityElement.java
+++ b/java/jakarta/servlet/ServletSecurityElement.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -23,8 +23,8 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 
-import javax.servlet.annotation.HttpMethodConstraint;
-import javax.servlet.annotation.ServletSecurity;
+import jakarta.servlet.annotation.HttpMethodConstraint;
+import jakarta.servlet.annotation.ServletSecurity;
 
 /**
  *
diff --git a/java/javax/servlet/SessionCookieConfig.java b/java/jakarta/servlet/SessionCookieConfig.java
similarity index 99%
rename from java/javax/servlet/SessionCookieConfig.java
rename to java/jakarta/servlet/SessionCookieConfig.java
index 564a4ed..6c683a7 100644
--- a/java/javax/servlet/SessionCookieConfig.java
+++ b/java/jakarta/servlet/SessionCookieConfig.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 /**
  * Configures the session cookies used by the web application associated with
diff --git a/java/javax/servlet/SessionTrackingMode.java b/java/jakarta/servlet/SessionTrackingMode.java
similarity index 97%
rename from java/javax/servlet/SessionTrackingMode.java
rename to java/jakarta/servlet/SessionTrackingMode.java
index c59fd0c..0ca8684 100644
--- a/java/javax/servlet/SessionTrackingMode.java
+++ b/java/jakarta/servlet/SessionTrackingMode.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet;
+package jakarta.servlet;
 
 /**
  * @since Servlet 3.0
diff --git a/java/javax/servlet/SingleThreadModel.java b/java/jakarta/servlet/SingleThreadModel.java
similarity index 98%
rename from java/javax/servlet/SingleThreadModel.java
rename to java/jakarta/servlet/SingleThreadModel.java
index fa9732d..26e8caa 100644
--- a/java/javax/servlet/SingleThreadModel.java
+++ b/java/jakarta/servlet/SingleThreadModel.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 /**
  * Ensures that servlets handle only one request at a time. This interface has
diff --git a/java/javax/servlet/UnavailableException.java b/java/jakarta/servlet/UnavailableException.java
similarity index 99%
rename from java/javax/servlet/UnavailableException.java
rename to java/jakarta/servlet/UnavailableException.java
index 6f13f55..c5af76d 100644
--- a/java/javax/servlet/UnavailableException.java
+++ b/java/jakarta/servlet/UnavailableException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package javax.servlet;
+package jakarta.servlet;
 
 /**
  * Defines an exception that a servlet or filter throws to indicate that it is
diff --git a/java/javax/servlet/WriteListener.java b/java/jakarta/servlet/WriteListener.java
similarity index 98%
rename from java/javax/servlet/WriteListener.java
rename to java/jakarta/servlet/WriteListener.java
index 2ce42ee..6052e21 100644
--- a/java/javax/servlet/WriteListener.java
+++ b/java/jakarta/servlet/WriteListener.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet;
+package jakarta.servlet;
 
 import java.io.IOException;
 
diff --git a/java/javax/servlet/annotation/HandlesTypes.java b/java/jakarta/servlet/annotation/HandlesTypes.java
similarity index 92%
rename from java/javax/servlet/annotation/HandlesTypes.java
rename to java/jakarta/servlet/annotation/HandlesTypes.java
index 66f8dff..e795f73 100644
--- a/java/javax/servlet/annotation/HandlesTypes.java
+++ b/java/jakarta/servlet/annotation/HandlesTypes.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.annotation;
+package jakarta.servlet.annotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -23,7 +23,7 @@ import java.lang.annotation.Target;
 
 /**
  * This annotation is used to declare an array of application classes which are
- * passed to a {@link javax.servlet.ServletContainerInitializer}.
+ * passed to a {@link jakarta.servlet.ServletContainerInitializer}.
  *
  * @since Servlet 3.0
  */
diff --git a/java/javax/servlet/annotation/HttpConstraint.java b/java/jakarta/servlet/annotation/HttpConstraint.java
similarity index 88%
rename from java/javax/servlet/annotation/HttpConstraint.java
rename to java/jakarta/servlet/annotation/HttpConstraint.java
index eb4ff09..289a9be 100644
--- a/java/javax/servlet/annotation/HttpConstraint.java
+++ b/java/jakarta/servlet/annotation/HttpConstraint.java
@@ -14,20 +14,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.annotation;
+package jakarta.servlet.annotation;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
-import javax.servlet.annotation.ServletSecurity.EmptyRoleSemantic;
-import javax.servlet.annotation.ServletSecurity.TransportGuarantee;
+import jakarta.servlet.annotation.ServletSecurity.EmptyRoleSemantic;
+import jakarta.servlet.annotation.ServletSecurity.TransportGuarantee;
 
 /**
  * This annotation represents the security constraints that are applied to all
  * requests with HTTP protocol method types that are not otherwise represented
- * by a corresponding {@link javax.servlet.annotation.HttpMethodConstraint} in a
- * {@link javax.servlet.annotation.ServletSecurity} annotation.
+ * by a corresponding {@link jakarta.servlet.annotation.HttpMethodConstraint} in a
+ * {@link jakarta.servlet.annotation.ServletSecurity} annotation.
  *
  * @since Servlet 3.0
  */
diff --git a/java/javax/servlet/annotation/HttpMethodConstraint.java b/java/jakarta/servlet/annotation/HttpMethodConstraint.java
similarity index 91%
rename from java/javax/servlet/annotation/HttpMethodConstraint.java
rename to java/jakarta/servlet/annotation/HttpMethodConstraint.java
index e8455ec..a700543 100644
--- a/java/javax/servlet/annotation/HttpMethodConstraint.java
+++ b/java/jakarta/servlet/annotation/HttpMethodConstraint.java
@@ -14,19 +14,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.annotation;
+package jakarta.servlet.annotation;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
-import javax.servlet.annotation.ServletSecurity.EmptyRoleSemantic;
-import javax.servlet.annotation.ServletSecurity.TransportGuarantee;
+import jakarta.servlet.annotation.ServletSecurity.EmptyRoleSemantic;
+import jakarta.servlet.annotation.ServletSecurity.TransportGuarantee;
 
 /**
  * Specific security constraints can be applied to different types of request,
  * differentiated by the HTTP protocol method type by using this annotation
- * inside the {@link javax.servlet.annotation.ServletSecurity} annotation.
+ * inside the {@link jakarta.servlet.annotation.ServletSecurity} annotation.
  *
  * @since Servlet 3.0
  *
diff --git a/java/javax/servlet/annotation/MultipartConfig.java b/java/jakarta/servlet/annotation/MultipartConfig.java
similarity index 86%
rename from java/javax/servlet/annotation/MultipartConfig.java
rename to java/jakarta/servlet/annotation/MultipartConfig.java
index 70e0dcc..4cafff3 100644
--- a/java/javax/servlet/annotation/MultipartConfig.java
+++ b/java/jakarta/servlet/annotation/MultipartConfig.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.annotation;
+package jakarta.servlet.annotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -22,16 +22,16 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 /**
- * This annotation is used to indicate that the {@link javax.servlet.Servlet} on
+ * This annotation is used to indicate that the {@link jakarta.servlet.Servlet} on
  * which it is declared expects requests to made using the {@code
  * multipart/form-data} MIME type. <br>
  * <br>
  *
- * {@link javax.servlet.http.Part} components of a given {@code
+ * {@link jakarta.servlet.http.Part} components of a given {@code
  * multipart/form-data} request are retrieved by a Servlet annotated with
  * {@code MultipartConfig} by calling
- * {@link javax.servlet.http.HttpServletRequest#getPart} or
- * {@link javax.servlet.http.HttpServletRequest#getParts}.<br>
+ * {@link jakarta.servlet.http.HttpServletRequest#getPart} or
+ * {@link jakarta.servlet.http.HttpServletRequest#getParts}.<br>
  * <br>
  *
  * E.g. <code>@WebServlet("/upload")}</code><br>
diff --git a/java/javax/servlet/annotation/ServletSecurity.java b/java/jakarta/servlet/annotation/ServletSecurity.java
similarity index 95%
rename from java/javax/servlet/annotation/ServletSecurity.java
rename to java/jakarta/servlet/annotation/ServletSecurity.java
index 356fa0b..7231d72 100644
--- a/java/javax/servlet/annotation/ServletSecurity.java
+++ b/java/jakarta/servlet/annotation/ServletSecurity.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.annotation;
+package jakarta.servlet.annotation;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
@@ -24,7 +24,7 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 /**
- * Declare this annotation on a {@link javax.servlet.Servlet} implementation
+ * Declare this annotation on a {@link jakarta.servlet.Servlet} implementation
  * class to enforce security constraints on HTTP protocol requests.<br>
  * The container applies constraints to the URL patterns mapped to each Servlet
  * which declares this annotation.<br>
diff --git a/java/javax/servlet/annotation/WebFilter.java b/java/jakarta/servlet/annotation/WebFilter.java
similarity index 90%
rename from java/javax/servlet/annotation/WebFilter.java
rename to java/jakarta/servlet/annotation/WebFilter.java
index ddaa08a..f798177 100644
--- a/java/javax/servlet/annotation/WebFilter.java
+++ b/java/jakarta/servlet/annotation/WebFilter.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.annotation;
+package jakarta.servlet.annotation;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
@@ -22,16 +22,16 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
-import javax.servlet.DispatcherType;
+import jakarta.servlet.DispatcherType;
 
 /**
- * The annotation used to declare a Servlet {@link javax.servlet.Filter}. <br>
+ * The annotation used to declare a Servlet {@link jakarta.servlet.Filter}. <br>
  * <br>
  *
  * This annotation will be processed by the container during deployment, the
  * Filter class in which it is found will be created as per the configuration
- * and applied to the URL patterns, {@link javax.servlet.Servlet}s and
- * {@link javax.servlet.DispatcherType}s.<br>
+ * and applied to the URL patterns, {@link jakarta.servlet.Servlet}s and
+ * {@link jakarta.servlet.DispatcherType}s.<br>
  * <br>
  *
  * If the name attribute is not defined, the fully qualified name of the class
@@ -47,7 +47,7 @@ import javax.servlet.DispatcherType;
  * should be used.<br>
  * <br>
  *
- * The annotated class MUST implement {@link javax.servlet.Filter}.
+ * The annotated class MUST implement {@link jakarta.servlet.Filter}.
  *
  * E.g.
  *
diff --git a/java/javax/servlet/annotation/WebInitParam.java b/java/jakarta/servlet/annotation/WebInitParam.java
similarity index 88%
rename from java/javax/servlet/annotation/WebInitParam.java
rename to java/jakarta/servlet/annotation/WebInitParam.java
index fe6c784..a2a6a7b 100644
--- a/java/javax/servlet/annotation/WebInitParam.java
+++ b/java/jakarta/servlet/annotation/WebInitParam.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.annotation;
+package jakarta.servlet.annotation;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
@@ -24,9 +24,9 @@ import java.lang.annotation.Target;
 
 /**
  * The annotation used to declare an initialization parameter on a
- * {@link javax.servlet.Servlet} or {@link javax.servlet.Filter}, within a
- * {@link javax.servlet.annotation.WebFilter} or
- * {@link javax.servlet.annotation.WebServlet} annotation.<br>
+ * {@link jakarta.servlet.Servlet} or {@link jakarta.servlet.Filter}, within a
+ * {@link jakarta.servlet.annotation.WebFilter} or
+ * {@link jakarta.servlet.annotation.WebServlet} annotation.<br>
  * <br>
  *
  * E.g.
diff --git a/java/javax/servlet/annotation/WebListener.java b/java/jakarta/servlet/annotation/WebListener.java
similarity index 78%
rename from java/javax/servlet/annotation/WebListener.java
rename to java/jakarta/servlet/annotation/WebListener.java
index 6ca1e7e..d345b19 100644
--- a/java/javax/servlet/annotation/WebListener.java
+++ b/java/jakarta/servlet/annotation/WebListener.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.annotation;
+package jakarta.servlet.annotation;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
@@ -28,13 +28,13 @@ import java.lang.annotation.Target;
  * <br>
  *
  * The class annotated MUST implement one, (or more), of the following
- * interfaces: {@link javax.servlet.http.HttpSessionAttributeListener},
- * {@link javax.servlet.http.HttpSessionListener},
- * {@link javax.servlet.ServletContextAttributeListener},
- * {@link javax.servlet.ServletContextListener},
- * {@link javax.servlet.ServletRequestAttributeListener},
- * {@link javax.servlet.ServletRequestListener} or
- * {@link javax.servlet.http.HttpSessionIdListener}
+ * interfaces: {@link jakarta.servlet.http.HttpSessionAttributeListener},
+ * {@link jakarta.servlet.http.HttpSessionListener},
+ * {@link jakarta.servlet.ServletContextAttributeListener},
+ * {@link jakarta.servlet.ServletContextListener},
+ * {@link jakarta.servlet.ServletRequestAttributeListener},
+ * {@link jakarta.servlet.ServletRequestListener} or
+ * {@link jakarta.servlet.http.HttpSessionIdListener}
  * <br>
  *
  * E.g. <code>@WebListener</code><br>
diff --git a/java/javax/servlet/annotation/WebServlet.java b/java/jakarta/servlet/annotation/WebServlet.java
similarity index 96%
rename from java/javax/servlet/annotation/WebServlet.java
rename to java/jakarta/servlet/annotation/WebServlet.java
index 29d0b32..6ce3133 100644
--- a/java/javax/servlet/annotation/WebServlet.java
+++ b/java/jakarta/servlet/annotation/WebServlet.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.annotation;
+package jakarta.servlet.annotation;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
@@ -24,7 +24,7 @@ import java.lang.annotation.Target;
 
 /**
  * This annotation is used to declare the configuration of a
- * {@link javax.servlet.Servlet}. <br>
+ * {@link jakarta.servlet.Servlet}. <br>
  *
  * If the name attribute is not defined, the fully qualified name of the class
  * is used.<br>
@@ -40,7 +40,7 @@ import java.lang.annotation.Target;
  * <br>
  *
  * The class on which this annotation is declared MUST extend
- * {@link javax.servlet.http.HttpServlet}. <br>
+ * {@link jakarta.servlet.http.HttpServlet}. <br>
  * <br>
  *
  * E.g. <code>@WebServlet("/path")}<br>
diff --git a/java/javax/servlet/descriptor/JspConfigDescriptor.java b/java/jakarta/servlet/descriptor/JspConfigDescriptor.java
similarity index 96%
rename from java/javax/servlet/descriptor/JspConfigDescriptor.java
rename to java/jakarta/servlet/descriptor/JspConfigDescriptor.java
index 27b3cc7..12d0c01 100644
--- a/java/javax/servlet/descriptor/JspConfigDescriptor.java
+++ b/java/jakarta/servlet/descriptor/JspConfigDescriptor.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.descriptor;
+package jakarta.servlet.descriptor;
 
 import java.util.Collection;
 
diff --git a/java/javax/servlet/descriptor/JspPropertyGroupDescriptor.java b/java/jakarta/servlet/descriptor/JspPropertyGroupDescriptor.java
similarity index 97%
rename from java/javax/servlet/descriptor/JspPropertyGroupDescriptor.java
rename to java/jakarta/servlet/descriptor/JspPropertyGroupDescriptor.java
index ddee69b..94d974d 100644
--- a/java/javax/servlet/descriptor/JspPropertyGroupDescriptor.java
+++ b/java/jakarta/servlet/descriptor/JspPropertyGroupDescriptor.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.descriptor;
+package jakarta.servlet.descriptor;
 
 import java.util.Collection;
 
diff --git a/java/javax/servlet/descriptor/TaglibDescriptor.java b/java/jakarta/servlet/descriptor/TaglibDescriptor.java
similarity index 96%
rename from java/javax/servlet/descriptor/TaglibDescriptor.java
rename to java/jakarta/servlet/descriptor/TaglibDescriptor.java
index b2e8e98..e4e82a4 100644
--- a/java/javax/servlet/descriptor/TaglibDescriptor.java
+++ b/java/jakarta/servlet/descriptor/TaglibDescriptor.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.descriptor;
+package jakarta.servlet.descriptor;
 
 /**
  * @since Servlet 3.0
diff --git a/java/javax/servlet/http/Cookie.java b/java/jakarta/servlet/http/Cookie.java
similarity index 99%
rename from java/javax/servlet/http/Cookie.java
rename to java/jakarta/servlet/http/Cookie.java
index 1ee31d4..f0ea2f2 100644
--- a/java/javax/servlet/http/Cookie.java
+++ b/java/jakarta/servlet/http/Cookie.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.io.Serializable;
 import java.security.AccessController;
@@ -431,7 +431,7 @@ public class Cookie implements Cloneable, Serializable {
 
 
 class CookieNameValidator {
-    private static final String LSTRING_FILE = "javax.servlet.http.LocalStrings";
+    private static final String LSTRING_FILE = "jakarta.servlet.http.LocalStrings";
     protected static final ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE);
 
     protected final BitSet allowed;
diff --git a/java/javax/servlet/http/HttpFilter.java b/java/jakarta/servlet/http/HttpFilter.java
similarity index 94%
rename from java/javax/servlet/http/HttpFilter.java
rename to java/jakarta/servlet/http/HttpFilter.java
index 8622aeb..2cc08df 100644
--- a/java/javax/servlet/http/HttpFilter.java
+++ b/java/jakarta/servlet/http/HttpFilter.java
@@ -14,15 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.io.IOException;
 
-import javax.servlet.FilterChain;
-import javax.servlet.GenericFilter;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.GenericFilter;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
 
 public abstract class HttpFilter extends GenericFilter {
 
diff --git a/java/javax/servlet/http/HttpServlet.java b/java/jakarta/servlet/http/HttpServlet.java
similarity index 97%
rename from java/javax/servlet/http/HttpServlet.java
rename to java/jakarta/servlet/http/HttpServlet.java
index aedbee6..fff8468 100644
--- a/java/javax/servlet/http/HttpServlet.java
+++ b/java/jakarta/servlet/http/HttpServlet.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.io.IOException;
 import java.io.OutputStreamWriter;
@@ -26,12 +26,12 @@ import java.text.MessageFormat;
 import java.util.Enumeration;
 import java.util.ResourceBundle;
 
-import javax.servlet.DispatcherType;
-import javax.servlet.GenericServlet;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.GenericServlet;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
 
 
 /**
@@ -88,7 +88,7 @@ public abstract class HttpServlet extends GenericServlet {
     private static final String HEADER_LASTMOD = "Last-Modified";
 
     private static final String LSTRING_FILE =
-        "javax.servlet.http.LocalStrings";
+        "jakarta.servlet.http.LocalStrings";
     private static final ResourceBundle lStrings =
         ResourceBundle.getBundle(LSTRING_FILE);
 
@@ -123,7 +123,7 @@ public abstract class HttpServlet extends GenericServlet {
      * before the response body.
      *
      * <p>Where possible, set the Content-Length header (with the
-     * {@link javax.servlet.ServletResponse#setContentLength} method),
+     * {@link jakarta.servlet.ServletResponse#setContentLength} method),
      * to allow the servlet container to use a persistent connection
      * to return its response to the client, improving performance.
      * The content length is automatically set if the entire response fits
@@ -163,7 +163,7 @@ public abstract class HttpServlet extends GenericServlet {
      * @exception ServletException  if the request for the GET
      *                                  could not be handled
      *
-     * @see javax.servlet.ServletResponse#setContentType
+     * @see jakarta.servlet.ServletResponse#setContentType
      */
     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
         throws ServletException, IOException
@@ -269,7 +269,7 @@ public abstract class HttpServlet extends GenericServlet {
      * response body.
      *
      * <p>Where possible, set the Content-Length header (with the
-     * {@link javax.servlet.ServletResponse#setContentLength} method),
+     * {@link jakarta.servlet.ServletResponse#setContentLength} method),
      * to allow the servlet container to use a persistent connection
      * to return its response to the client, improving performance.
      * The content length is automatically set if the entire response fits
@@ -302,8 +302,8 @@ public abstract class HttpServlet extends GenericServlet {
      * @exception ServletException  if the request for the POST
      *                                  could not be handled
      *
-     * @see javax.servlet.ServletOutputStream
-     * @see javax.servlet.ServletResponse#setContentType
+     * @see jakarta.servlet.ServletOutputStream
+     * @see jakarta.servlet.ServletResponse#setContentType
      */
     protected void doPost(HttpServletRequest req, HttpServletResponse resp)
         throws ServletException, IOException {
@@ -423,7 +423,7 @@ public abstract class HttpServlet extends GenericServlet {
 
     private static Method[] getAllDeclaredMethods(Class<?> c) {
 
-        if (c.equals(javax.servlet.http.HttpServlet.class)) {
+        if (c.equals(jakarta.servlet.http.HttpServlet.class)) {
             return null;
         }
 
@@ -601,7 +601,7 @@ public abstract class HttpServlet extends GenericServlet {
      * <code>service</code> method and dispatches
      * them to the <code>do</code><i>Method</i> methods defined in
      * this class. This method is an HTTP-specific version of the
-     * {@link javax.servlet.Servlet#service} method. There's no
+     * {@link jakarta.servlet.Servlet#service} method. There's no
      * need to override this method.
      *
      * @param req   the {@link HttpServletRequest} object that
@@ -619,7 +619,7 @@ public abstract class HttpServlet extends GenericServlet {
      * @exception ServletException  if the HTTP request
      *                                  cannot be handled
      *
-     * @see javax.servlet.Servlet#service
+     * @see jakarta.servlet.Servlet#service
      */
     protected void service(HttpServletRequest req, HttpServletResponse resp)
         throws ServletException, IOException {
@@ -723,7 +723,7 @@ public abstract class HttpServlet extends GenericServlet {
      * @exception ServletException  if the HTTP request cannot
      *                                  be handled
      *
-     * @see javax.servlet.Servlet#service
+     * @see jakarta.servlet.Servlet#service
      */
     @Override
     public void service(ServletRequest req, ServletResponse res)
@@ -843,7 +843,7 @@ class NoBodyResponse extends HttpServletResponseWrapper {
 class NoBodyOutputStream extends ServletOutputStream {
 
     private static final String LSTRING_FILE =
-        "javax.servlet.http.LocalStrings";
+        "jakarta.servlet.http.LocalStrings";
     private static final ResourceBundle lStrings =
         ResourceBundle.getBundle(LSTRING_FILE);
 
@@ -895,7 +895,7 @@ class NoBodyOutputStream extends ServletOutputStream {
     }
 
     @Override
-    public void setWriteListener(javax.servlet.WriteListener listener) {
+    public void setWriteListener(jakarta.servlet.WriteListener listener) {
         // TODO SERVLET 3.1
     }
 
diff --git a/java/javax/servlet/http/HttpServletMapping.java b/java/jakarta/servlet/http/HttpServletMapping.java
similarity index 91%
rename from java/javax/servlet/http/HttpServletMapping.java
rename to java/jakarta/servlet/http/HttpServletMapping.java
index 3d8bd92..1b1e54d 100644
--- a/java/javax/servlet/http/HttpServletMapping.java
+++ b/java/jakarta/servlet/http/HttpServletMapping.java
@@ -14,9 +14,9 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
-import javax.servlet.annotation.WebServlet;
+import jakarta.servlet.annotation.WebServlet;
 
 /**
  * Represents how the request from which this object was obtained was mapped to
@@ -40,7 +40,7 @@ public interface HttpServletMapping {
     /**
      * @return The name of the servlet (as specified in web.xml,
      *         {@link WebServlet#name()},
-     *         {@link javax.servlet.ServletContext#addServlet(String, Class)} or
+     *         {@link jakarta.servlet.ServletContext#addServlet(String, Class)} or
      *         one of the other <code>addServlet()</code> methods) that the
      *         request was mapped to.
      */
diff --git a/java/javax/servlet/http/HttpServletRequest.java b/java/jakarta/servlet/http/HttpServletRequest.java
similarity index 99%
rename from java/javax/servlet/http/HttpServletRequest.java
rename to java/jakarta/servlet/http/HttpServletRequest.java
index 872b9b8..3f7272f 100644
--- a/java/javax/servlet/http/HttpServletRequest.java
+++ b/java/jakarta/servlet/http/HttpServletRequest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.io.IOException;
 import java.util.Collection;
@@ -23,11 +23,11 @@ import java.util.Collections;
 import java.util.Enumeration;
 import java.util.Map;
 
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
 
 /**
- * Extends the {@link javax.servlet.ServletRequest} interface to provide request
+ * Extends the {@link jakarta.servlet.ServletRequest} interface to provide request
  * information for HTTP servlets.
  * <p>
  * The servlet container creates an <code>HttpServletRequest</code> object and
diff --git a/java/javax/servlet/http/HttpServletRequestWrapper.java b/java/jakarta/servlet/http/HttpServletRequestWrapper.java
similarity index 98%
rename from java/javax/servlet/http/HttpServletRequestWrapper.java
rename to java/jakarta/servlet/http/HttpServletRequestWrapper.java
index 085e9a5..12f54c1 100644
--- a/java/javax/servlet/http/HttpServletRequestWrapper.java
+++ b/java/jakarta/servlet/http/HttpServletRequestWrapper.java
@@ -14,15 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.io.IOException;
 import java.util.Collection;
 import java.util.Enumeration;
 import java.util.Map;
 
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequestWrapper;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequestWrapper;
 
 /**
  * Provides a convenient implementation of the HttpServletRequest interface that
@@ -30,7 +30,7 @@ import javax.servlet.ServletRequestWrapper;
  * This class implements the Wrapper or Decorator pattern. Methods default to
  * calling through to the wrapped request object.
  *
- * @see javax.servlet.http.HttpServletRequest
+ * @see jakarta.servlet.http.HttpServletRequest
  * @since v 2.3
  */
 public class HttpServletRequestWrapper extends ServletRequestWrapper implements
diff --git a/java/javax/servlet/http/HttpServletResponse.java b/java/jakarta/servlet/http/HttpServletResponse.java
similarity index 99%
rename from java/javax/servlet/http/HttpServletResponse.java
rename to java/jakarta/servlet/http/HttpServletResponse.java
index a108654..4fb5538 100644
--- a/java/javax/servlet/http/HttpServletResponse.java
+++ b/java/jakarta/servlet/http/HttpServletResponse.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.io.IOException;
 import java.util.Collection;
 import java.util.Map;
 import java.util.function.Supplier;
 
-import javax.servlet.ServletResponse;
+import jakarta.servlet.ServletResponse;
 
 /**
  * Extends the {@link ServletResponse} interface to provide HTTP-specific
@@ -31,7 +31,7 @@ import javax.servlet.ServletResponse;
  * The servlet container creates an <code>HttpServletResponse</code> object and
  * passes it as an argument to the servlet's service methods (<code>doGet</code>, <code>doPost</code>, etc).
  *
- * @see javax.servlet.ServletResponse
+ * @see jakarta.servlet.ServletResponse
  */
 public interface HttpServletResponse extends ServletResponse {
 
diff --git a/java/javax/servlet/http/HttpServletResponseWrapper.java b/java/jakarta/servlet/http/HttpServletResponseWrapper.java
similarity index 98%
rename from java/javax/servlet/http/HttpServletResponseWrapper.java
rename to java/jakarta/servlet/http/HttpServletResponseWrapper.java
index 7d312d9..582a667 100644
--- a/java/javax/servlet/http/HttpServletResponseWrapper.java
+++ b/java/jakarta/servlet/http/HttpServletResponseWrapper.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.io.IOException;
 import java.util.Collection;
 import java.util.Map;
 import java.util.function.Supplier;
 
-import javax.servlet.ServletResponseWrapper;
+import jakarta.servlet.ServletResponseWrapper;
 
 /**
  * Provides a convenient implementation of the HttpServletResponse interface
@@ -30,7 +30,7 @@ import javax.servlet.ServletResponseWrapper;
  * default to calling through to the wrapped response object.
  *
  * @since v 2.3
- * @see javax.servlet.http.HttpServletResponse
+ * @see jakarta.servlet.http.HttpServletResponse
  */
 public class HttpServletResponseWrapper extends ServletResponseWrapper
         implements HttpServletResponse {
diff --git a/java/javax/servlet/http/HttpSession.java b/java/jakarta/servlet/http/HttpSession.java
similarity index 99%
rename from java/javax/servlet/http/HttpSession.java
rename to java/jakarta/servlet/http/HttpSession.java
index 8501d2e..9b03f0d 100644
--- a/java/javax/servlet/http/HttpSession.java
+++ b/java/jakarta/servlet/http/HttpSession.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.util.Enumeration;
 
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 /**
  * Provides a way to identify a user across more than one page request or visit
diff --git a/java/javax/servlet/http/HttpSessionActivationListener.java b/java/jakarta/servlet/http/HttpSessionActivationListener.java
similarity index 98%
rename from java/javax/servlet/http/HttpSessionActivationListener.java
rename to java/jakarta/servlet/http/HttpSessionActivationListener.java
index 1c13b4c..61cf840 100644
--- a/java/javax/servlet/http/HttpSessionActivationListener.java
+++ b/java/jakarta/servlet/http/HttpSessionActivationListener.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.util.EventListener;
 
diff --git a/java/javax/servlet/http/HttpSessionAttributeListener.java b/java/jakarta/servlet/http/HttpSessionAttributeListener.java
similarity index 98%
rename from java/javax/servlet/http/HttpSessionAttributeListener.java
rename to java/jakarta/servlet/http/HttpSessionAttributeListener.java
index 4f2f456..d386c66 100644
--- a/java/javax/servlet/http/HttpSessionAttributeListener.java
+++ b/java/jakarta/servlet/http/HttpSessionAttributeListener.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.util.EventListener;
 
diff --git a/java/javax/servlet/http/HttpSessionBindingEvent.java b/java/jakarta/servlet/http/HttpSessionBindingEvent.java
similarity index 99%
rename from java/javax/servlet/http/HttpSessionBindingEvent.java
rename to java/jakarta/servlet/http/HttpSessionBindingEvent.java
index 70138c7..37720ed 100644
--- a/java/javax/servlet/http/HttpSessionBindingEvent.java
+++ b/java/jakarta/servlet/http/HttpSessionBindingEvent.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 /**
  * Events of this type are either sent to an object that implements
diff --git a/java/javax/servlet/http/HttpSessionBindingListener.java b/java/jakarta/servlet/http/HttpSessionBindingListener.java
similarity index 98%
rename from java/javax/servlet/http/HttpSessionBindingListener.java
rename to java/jakarta/servlet/http/HttpSessionBindingListener.java
index 2e6a80c..daa6905 100644
--- a/java/javax/servlet/http/HttpSessionBindingListener.java
+++ b/java/jakarta/servlet/http/HttpSessionBindingListener.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.util.EventListener;
 
diff --git a/java/javax/servlet/http/HttpSessionContext.java b/java/jakarta/servlet/http/HttpSessionContext.java
similarity index 98%
rename from java/javax/servlet/http/HttpSessionContext.java
rename to java/jakarta/servlet/http/HttpSessionContext.java
index b78ea1d..275d17d 100644
--- a/java/javax/servlet/http/HttpSessionContext.java
+++ b/java/jakarta/servlet/http/HttpSessionContext.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.util.Enumeration;
 
diff --git a/java/javax/servlet/http/HttpSessionEvent.java b/java/jakarta/servlet/http/HttpSessionEvent.java
similarity index 98%
rename from java/javax/servlet/http/HttpSessionEvent.java
rename to java/jakarta/servlet/http/HttpSessionEvent.java
index 3a6ffcf..1ee7c8d 100644
--- a/java/javax/servlet/http/HttpSessionEvent.java
+++ b/java/jakarta/servlet/http/HttpSessionEvent.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 /**
  * This is the class representing event notifications for changes to sessions
diff --git a/java/javax/servlet/http/HttpSessionIdListener.java b/java/jakarta/servlet/http/HttpSessionIdListener.java
similarity index 89%
rename from java/javax/servlet/http/HttpSessionIdListener.java
rename to java/jakarta/servlet/http/HttpSessionIdListener.java
index 0c3c0c2..4636103 100644
--- a/java/javax/servlet/http/HttpSessionIdListener.java
+++ b/java/jakarta/servlet/http/HttpSessionIdListener.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.util.EventListener;
 
@@ -22,8 +22,8 @@ import java.util.EventListener;
  * Implementations of this interface are notified when an {@link HttpSession}'s
  * ID changes. To receive notification events, the implementation class must be
  * configured in the deployment descriptor for the web application, annotated
- * with {@link javax.servlet.annotation.WebListener} or registered by calling an
- * addListener method on the {@link javax.servlet.ServletContext}.
+ * with {@link jakarta.servlet.annotation.WebListener} or registered by calling an
+ * addListener method on the {@link jakarta.servlet.ServletContext}.
  *
  * @see HttpSessionEvent
  * @see HttpServletRequest#changeSessionId()
diff --git a/java/javax/servlet/http/HttpSessionListener.java b/java/jakarta/servlet/http/HttpSessionListener.java
similarity index 98%
rename from java/javax/servlet/http/HttpSessionListener.java
rename to java/jakarta/servlet/http/HttpSessionListener.java
index 7941f37..181d328 100644
--- a/java/javax/servlet/http/HttpSessionListener.java
+++ b/java/jakarta/servlet/http/HttpSessionListener.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.util.EventListener;
 
diff --git a/java/javax/servlet/http/HttpUpgradeHandler.java b/java/jakarta/servlet/http/HttpUpgradeHandler.java
similarity index 98%
rename from java/javax/servlet/http/HttpUpgradeHandler.java
rename to java/jakarta/servlet/http/HttpUpgradeHandler.java
index 095200c..b1b152b 100644
--- a/java/javax/servlet/http/HttpUpgradeHandler.java
+++ b/java/jakarta/servlet/http/HttpUpgradeHandler.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 /**
  * Interface between the HTTP upgrade process and the new protocol.
diff --git a/java/javax/servlet/http/HttpUtils.java b/java/jakarta/servlet/http/HttpUtils.java
similarity index 98%
rename from java/javax/servlet/http/HttpUtils.java
rename to java/jakarta/servlet/http/HttpUtils.java
index 4356af1..17acf86 100644
--- a/java/javax/servlet/http/HttpUtils.java
+++ b/java/jakarta/servlet/http/HttpUtils.java
@@ -15,7 +15,7 @@
 * limitations under the License.
 */
 
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.io.IOException;
 import java.util.Arrays;
@@ -23,7 +23,7 @@ import java.util.Hashtable;
 import java.util.ResourceBundle;
 import java.util.StringTokenizer;
 
-import javax.servlet.ServletInputStream;
+import jakarta.servlet.ServletInputStream;
 
 /**
  * @deprecated            As of Java(tm) Servlet API 2.3.
@@ -35,7 +35,7 @@ import javax.servlet.ServletInputStream;
 public class HttpUtils {
 
     private static final String LSTRING_FILE =
-        "javax.servlet.http.LocalStrings";
+        "jakarta.servlet.http.LocalStrings";
     private static final ResourceBundle lStrings =
         ResourceBundle.getBundle(LSTRING_FILE);
 
diff --git a/java/javax/servlet/http/LocalStrings.properties b/java/jakarta/servlet/http/LocalStrings.properties
similarity index 100%
rename from java/javax/servlet/http/LocalStrings.properties
rename to java/jakarta/servlet/http/LocalStrings.properties
diff --git a/java/javax/servlet/http/LocalStrings_de.properties b/java/jakarta/servlet/http/LocalStrings_de.properties
similarity index 100%
rename from java/javax/servlet/http/LocalStrings_de.properties
rename to java/jakarta/servlet/http/LocalStrings_de.properties
diff --git a/java/javax/servlet/http/LocalStrings_es.properties b/java/jakarta/servlet/http/LocalStrings_es.properties
similarity index 100%
rename from java/javax/servlet/http/LocalStrings_es.properties
rename to java/jakarta/servlet/http/LocalStrings_es.properties
diff --git a/java/javax/servlet/http/LocalStrings_fr.properties b/java/jakarta/servlet/http/LocalStrings_fr.properties
similarity index 100%
rename from java/javax/servlet/http/LocalStrings_fr.properties
rename to java/jakarta/servlet/http/LocalStrings_fr.properties
diff --git a/java/javax/servlet/http/LocalStrings_ja.properties b/java/jakarta/servlet/http/LocalStrings_ja.properties
similarity index 100%
rename from java/javax/servlet/http/LocalStrings_ja.properties
rename to java/jakarta/servlet/http/LocalStrings_ja.properties
diff --git a/java/javax/servlet/http/LocalStrings_ko.properties b/java/jakarta/servlet/http/LocalStrings_ko.properties
similarity index 100%
rename from java/javax/servlet/http/LocalStrings_ko.properties
rename to java/jakarta/servlet/http/LocalStrings_ko.properties
diff --git a/java/javax/servlet/http/LocalStrings_zh_CN.properties b/java/jakarta/servlet/http/LocalStrings_zh_CN.properties
similarity index 100%
rename from java/javax/servlet/http/LocalStrings_zh_CN.properties
rename to java/jakarta/servlet/http/LocalStrings_zh_CN.properties
diff --git a/java/javax/servlet/http/MappingMatch.java b/java/jakarta/servlet/http/MappingMatch.java
similarity index 97%
rename from java/javax/servlet/http/MappingMatch.java
rename to java/jakarta/servlet/http/MappingMatch.java
index 97d2d66..1bf4992 100644
--- a/java/javax/servlet/http/MappingMatch.java
+++ b/java/jakarta/servlet/http/MappingMatch.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 /**
  * Represents the ways that a request can be mapped to a servlet
diff --git a/java/javax/servlet/http/Part.java b/java/jakarta/servlet/http/Part.java
similarity index 97%
rename from java/javax/servlet/http/Part.java
rename to java/jakarta/servlet/http/Part.java
index 5326054..bd4ad86 100644
--- a/java/javax/servlet/http/Part.java
+++ b/java/jakarta/servlet/http/Part.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -87,7 +87,7 @@ public interface Part {
      *
      * @param fileName  The location into which the uploaded part should be
      *                  stored. Relative locations are relative to {@link
-     *                  javax.servlet.MultipartConfigElement#getLocation()}
+     *                  jakarta.servlet.MultipartConfigElement#getLocation()}
      *
      * @throws IOException if an I/O occurs while attempting to write the part
      */
diff --git a/java/javax/servlet/http/PushBuilder.java b/java/jakarta/servlet/http/PushBuilder.java
similarity index 99%
rename from java/javax/servlet/http/PushBuilder.java
rename to java/jakarta/servlet/http/PushBuilder.java
index a0f3e67..166737d 100644
--- a/java/javax/servlet/http/PushBuilder.java
+++ b/java/jakarta/servlet/http/PushBuilder.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.util.Set;
 
diff --git a/java/javax/servlet/http/WebConnection.java b/java/jakarta/servlet/http/WebConnection.java
similarity index 93%
rename from java/javax/servlet/http/WebConnection.java
rename to java/jakarta/servlet/http/WebConnection.java
index a68a298..3a50c68 100644
--- a/java/javax/servlet/http/WebConnection.java
+++ b/java/jakarta/servlet/http/WebConnection.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.http;
+package jakarta.servlet.http;
 
 import java.io.IOException;
 
-import javax.servlet.ServletInputStream;
-import javax.servlet.ServletOutputStream;
+import jakarta.servlet.ServletInputStream;
+import jakarta.servlet.ServletOutputStream;
 
 /**
  * The interface used by an {@link HttpUpgradeHandler} to interact with an upgraded
diff --git a/java/javax/servlet/http/package.html b/java/jakarta/servlet/http/package.html
similarity index 93%
rename from java/javax/servlet/http/package.html
rename to java/jakarta/servlet/http/package.html
index 08e6692..b418dc8 100644
--- a/java/javax/servlet/http/package.html
+++ b/java/jakarta/servlet/http/package.html
@@ -20,7 +20,7 @@
 </HEAD>
 <BODY BGCOLOR="white">
 
-The javax.servlet.http package contains a number of classes and interfaces
+The jakarta.servlet.http package contains a number of classes and interfaces
 that describe and define the contracts between a servlet class
 running under the HTTP protocol and the runtime environment provided
 for an instance of such a class by a conforming servlet container.
diff --git a/java/javax/servlet/jsp/ErrorData.java b/java/jakarta/servlet/jsp/ErrorData.java
similarity index 98%
rename from java/javax/servlet/jsp/ErrorData.java
rename to java/jakarta/servlet/jsp/ErrorData.java
index 45615fc..44f73cb 100644
--- a/java/javax/servlet/jsp/ErrorData.java
+++ b/java/jakarta/servlet/jsp/ErrorData.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp;
+package jakarta.servlet.jsp;
 
 /**
  * Contains information about an error, for error pages. The information
diff --git a/java/javax/servlet/jsp/HttpJspPage.java b/java/jakarta/servlet/jsp/HttpJspPage.java
similarity index 93%
rename from java/javax/servlet/jsp/HttpJspPage.java
rename to java/jakarta/servlet/jsp/HttpJspPage.java
index 1ee74d2..558574b 100644
--- a/java/javax/servlet/jsp/HttpJspPage.java
+++ b/java/jakarta/servlet/jsp/HttpJspPage.java
@@ -15,13 +15,13 @@
 * limitations under the License.
 */
 
-package javax.servlet.jsp;
+package jakarta.servlet.jsp;
 
 import java.io.IOException;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 /**
  * The HttpJspPage interface describes the interaction that a JSP Page
diff --git a/java/javax/servlet/jsp/JspApplicationContext.java b/java/jakarta/servlet/jsp/JspApplicationContext.java
similarity index 98%
rename from java/javax/servlet/jsp/JspApplicationContext.java
rename to java/jakarta/servlet/jsp/JspApplicationContext.java
index a998f32..2cfaa4e 100644
--- a/java/javax/servlet/jsp/JspApplicationContext.java
+++ b/java/jakarta/servlet/jsp/JspApplicationContext.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp;
+package jakarta.servlet.jsp;
 
 import jakarta.el.ELContextListener;
 import jakarta.el.ELResolver;
diff --git a/java/javax/servlet/jsp/JspContext.java b/java/jakarta/servlet/jsp/JspContext.java
similarity index 98%
rename from java/javax/servlet/jsp/JspContext.java
rename to java/jakarta/servlet/jsp/JspContext.java
index e9d4964..855417b 100644
--- a/java/javax/servlet/jsp/JspContext.java
+++ b/java/jakarta/servlet/jsp/JspContext.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.jsp;
+package jakarta.servlet.jsp;
 
 import java.util.Enumeration;
 
@@ -225,7 +225,7 @@ public abstract class JspContext {
      *             JspApplicationContext.getExpressionFactory()
      */
     @SuppressWarnings("dep-ann") // TCK signature test fails with annotation
-    public abstract javax.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator();
+    public abstract jakarta.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator();
 
 
     public abstract ELContext getELContext();
@@ -243,7 +243,7 @@ public abstract class JspContext {
      *             jspContext.getELContext().getELResolver()
      */
     @SuppressWarnings("dep-ann") // TCK signature test fails with annotation
-    public abstract javax.servlet.jsp.el.VariableResolver getVariableResolver();
+    public abstract jakarta.servlet.jsp.el.VariableResolver getVariableResolver();
 
     /**
      * Return a new JspWriter object that sends output to the
diff --git a/java/javax/servlet/jsp/JspEngineInfo.java b/java/jakarta/servlet/jsp/JspEngineInfo.java
similarity index 98%
rename from java/javax/servlet/jsp/JspEngineInfo.java
rename to java/jakarta/servlet/jsp/JspEngineInfo.java
index e369b48..805919c 100644
--- a/java/javax/servlet/jsp/JspEngineInfo.java
+++ b/java/jakarta/servlet/jsp/JspEngineInfo.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.jsp;
+package jakarta.servlet.jsp;
 
 /**
  * The JspEngineInfo is an abstract class that provides information on the
diff --git a/java/javax/servlet/jsp/JspException.java b/java/jakarta/servlet/jsp/JspException.java
similarity index 99%
rename from java/javax/servlet/jsp/JspException.java
rename to java/jakarta/servlet/jsp/JspException.java
index 67671f5..4e7accc 100644
--- a/java/javax/servlet/jsp/JspException.java
+++ b/java/jakarta/servlet/jsp/JspException.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.jsp;
+package jakarta.servlet.jsp;
 
 /**
  * A generic exception known to the JSP engine; uncaught
diff --git a/java/javax/servlet/jsp/JspFactory.java b/java/jakarta/servlet/jsp/JspFactory.java
similarity index 94%
rename from java/javax/servlet/jsp/JspFactory.java
rename to java/jakarta/servlet/jsp/JspFactory.java
index 6ebf094..11ec45f 100644
--- a/java/javax/servlet/jsp/JspFactory.java
+++ b/java/jakarta/servlet/jsp/JspFactory.java
@@ -14,12 +14,12 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.jsp;
+package jakarta.servlet.jsp;
 
-import javax.servlet.Servlet;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
 
 /**
  * <p>
@@ -78,7 +78,7 @@ public abstract class JspFactory {
     /**
      * <p>
      * obtains an instance of an implementation dependent
-     * javax.servlet.jsp.PageContext abstract class for the calling Servlet
+     * jakarta.servlet.jsp.PageContext abstract class for the calling Servlet
      * and currently pending request and response.
      * </p>
      *
@@ -110,7 +110,7 @@ public abstract class JspFactory {
      *
      * @return the page context
      *
-     * @see javax.servlet.jsp.PageContext
+     * @see jakarta.servlet.jsp.PageContext
      */
 
     public abstract PageContext getPageContext(Servlet servlet,
diff --git a/java/javax/servlet/jsp/JspPage.java b/java/jakarta/servlet/jsp/JspPage.java
similarity index 98%
rename from java/javax/servlet/jsp/JspPage.java
rename to java/jakarta/servlet/jsp/JspPage.java
index ddeb9a9..81b8766 100644
--- a/java/javax/servlet/jsp/JspPage.java
+++ b/java/jakarta/servlet/jsp/JspPage.java
@@ -14,9 +14,9 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.jsp;
+package jakarta.servlet.jsp;
 
-import javax.servlet.Servlet;
+import jakarta.servlet.Servlet;
 
 /**
  * The JspPage interface describes the generic interaction that a JSP Page
diff --git a/java/javax/servlet/jsp/JspTagException.java b/java/jakarta/servlet/jsp/JspTagException.java
similarity index 99%
rename from java/javax/servlet/jsp/JspTagException.java
rename to java/jakarta/servlet/jsp/JspTagException.java
index ce554b6..1e6f642 100644
--- a/java/javax/servlet/jsp/JspTagException.java
+++ b/java/jakarta/servlet/jsp/JspTagException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp;
+package jakarta.servlet.jsp;
 
 /**
  * Exception to be used by a Tag Handler to indicate some unrecoverable error.
diff --git a/java/javax/servlet/jsp/JspWriter.java b/java/jakarta/servlet/jsp/JspWriter.java
similarity index 99%
rename from java/javax/servlet/jsp/JspWriter.java
rename to java/jakarta/servlet/jsp/JspWriter.java
index 9d0be8b..5eafd56 100644
--- a/java/javax/servlet/jsp/JspWriter.java
+++ b/java/jakarta/servlet/jsp/JspWriter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package javax.servlet.jsp;
+package jakarta.servlet.jsp;
 
 import java.io.IOException;
 
diff --git a/java/javax/servlet/jsp/PageContext.java b/java/jakarta/servlet/jsp/PageContext.java
similarity index 94%
rename from java/javax/servlet/jsp/PageContext.java
rename to java/jakarta/servlet/jsp/PageContext.java
index 598b4f0..d9ba3f4 100644
--- a/java/javax/servlet/jsp/PageContext.java
+++ b/java/jakarta/servlet/jsp/PageContext.java
@@ -15,19 +15,19 @@
 * limitations under the License.
 */
 
-package javax.servlet.jsp;
+package jakarta.servlet.jsp;
 
 import java.io.IOException;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpSession;
-import javax.servlet.jsp.tagext.BodyContent;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpSession;
+import jakarta.servlet.jsp.tagext.BodyContent;
 
 /**
  * <p>
@@ -137,55 +137,55 @@ public abstract class PageContext
      * Name used to store the Servlet in this PageContext's nametables.
      */
 
-    public static final String PAGE = "javax.servlet.jsp.jspPage";
+    public static final String PAGE = "jakarta.servlet.jsp.jspPage";
 
     /**
      * Name used to store this PageContext in it's own name table.
      */
 
-    public static final String PAGECONTEXT = "javax.servlet.jsp.jspPageContext";
+    public static final String PAGECONTEXT = "jakarta.servlet.jsp.jspPageContext";
 
     /**
      * Name used to store ServletRequest in PageContext name table.
      */
 
-    public static final String REQUEST = "javax.servlet.jsp.jspRequest";
+    public static final String REQUEST = "jakarta.servlet.jsp.jspRequest";
 
     /**
      * Name used to store ServletResponse in PageContext name table.
      */
 
-    public static final String RESPONSE = "javax.servlet.jsp.jspResponse";
+    public static final String RESPONSE = "jakarta.servlet.jsp.jspResponse";
 
     /**
      * Name used to store ServletConfig in PageContext name table.
      */
 
-    public static final String CONFIG = "javax.servlet.jsp.jspConfig";
+    public static final String CONFIG = "jakarta.servlet.jsp.jspConfig";
 
     /**
      * Name used to store HttpSession in PageContext name table.
      */
 
-    public static final String SESSION = "javax.servlet.jsp.jspSession";
+    public static final String SESSION = "jakarta.servlet.jsp.jspSession";
     /**
      * Name used to store current JspWriter in PageContext name table.
      */
 
-    public static final String OUT = "javax.servlet.jsp.jspOut";
+    public static final String OUT = "jakarta.servlet.jsp.jspOut";
 
     /**
      * Name used to store ServletContext in PageContext name table.
      */
 
-    public static final String APPLICATION = "javax.servlet.jsp.jspApplication";
+    public static final String APPLICATION = "jakarta.servlet.jsp.jspApplication";
 
     /**
      * Name used to store uncaught exception in ServletRequest attribute
      * list and PageContext name table.
      */
 
-    public static final String EXCEPTION = "javax.servlet.jsp.jspException";
+    public static final String EXCEPTION = "jakarta.servlet.jsp.jspException";
 
     /**
      * <p>
@@ -254,7 +254,7 @@ public abstract class PageContext
 
     /**
      * The current value of the page object (In a Servlet environment,
-     * this is an instance of javax.servlet.Servlet).
+     * this is an instance of jakarta.servlet.Servlet).
      *
      * @return the Page implementation class instance associated
      *     with this PageContext
diff --git a/java/javax/servlet/jsp/SkipPageException.java b/java/jakarta/servlet/jsp/SkipPageException.java
similarity index 93%
rename from java/javax/servlet/jsp/SkipPageException.java
rename to java/jakarta/servlet/jsp/SkipPageException.java
index 2098c9b..d3b89cb 100644
--- a/java/javax/servlet/jsp/SkipPageException.java
+++ b/java/jakarta/servlet/jsp/SkipPageException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp;
+package jakarta.servlet.jsp;
 
 /**
  * Exception to indicate the calling page must cease evaluation. Thrown by a
@@ -27,9 +27,9 @@ package javax.servlet.jsp;
  * undefined. The exception is intended to be thrown inside SimpleTag handlers
  * and in JSP fragments.
  *
- * @see javax.servlet.jsp.tagext.SimpleTag#doTag
- * @see javax.servlet.jsp.tagext.JspFragment#invoke
- * @see javax.servlet.jsp.tagext.Tag#doEndTag
+ * @see jakarta.servlet.jsp.tagext.SimpleTag#doTag
+ * @see jakarta.servlet.jsp.tagext.JspFragment#invoke
+ * @see jakarta.servlet.jsp.tagext.Tag#doEndTag
  * @since 2.0
  */
 public class SkipPageException extends JspException {
diff --git a/java/javax/servlet/jsp/el/ELException.java b/java/jakarta/servlet/jsp/el/ELException.java
similarity index 98%
rename from java/javax/servlet/jsp/el/ELException.java
rename to java/jakarta/servlet/jsp/el/ELException.java
index 2facb9b..0149507 100644
--- a/java/javax/servlet/jsp/el/ELException.java
+++ b/java/jakarta/servlet/jsp/el/ELException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package javax.servlet.jsp.el;
+package jakarta.servlet.jsp.el;
 
 /**
  * Represents any of the exception conditions that arise during the operation
diff --git a/java/javax/servlet/jsp/el/ELParseException.java b/java/jakarta/servlet/jsp/el/ELParseException.java
similarity index 98%
rename from java/javax/servlet/jsp/el/ELParseException.java
rename to java/jakarta/servlet/jsp/el/ELParseException.java
index 6eeaf34..43678eb 100644
--- a/java/javax/servlet/jsp/el/ELParseException.java
+++ b/java/jakarta/servlet/jsp/el/ELParseException.java
@@ -15,7 +15,7 @@
 * limitations under the License.
 */
 
-package javax.servlet.jsp.el;
+package jakarta.servlet.jsp.el;
 
 
 /**
diff --git a/java/javax/servlet/jsp/el/Expression.java b/java/jakarta/servlet/jsp/el/Expression.java
similarity index 98%
rename from java/javax/servlet/jsp/el/Expression.java
rename to java/jakarta/servlet/jsp/el/Expression.java
index 203f408..ffe3c58 100644
--- a/java/javax/servlet/jsp/el/Expression.java
+++ b/java/jakarta/servlet/jsp/el/Expression.java
@@ -16,7 +16,7 @@
 */
 
 
-package javax.servlet.jsp.el;
+package jakarta.servlet.jsp.el;
 
 
 /**
diff --git a/java/javax/servlet/jsp/el/ExpressionEvaluator.java b/java/jakarta/servlet/jsp/el/ExpressionEvaluator.java
similarity index 99%
rename from java/javax/servlet/jsp/el/ExpressionEvaluator.java
rename to java/jakarta/servlet/jsp/el/ExpressionEvaluator.java
index 32d81bf..7c4e6e8 100644
--- a/java/javax/servlet/jsp/el/ExpressionEvaluator.java
+++ b/java/jakarta/servlet/jsp/el/ExpressionEvaluator.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package javax.servlet.jsp.el;
+package jakarta.servlet.jsp.el;
 
 /**
  * <p>
diff --git a/java/javax/servlet/jsp/el/FunctionMapper.java b/java/jakarta/servlet/jsp/el/FunctionMapper.java
similarity index 98%
rename from java/javax/servlet/jsp/el/FunctionMapper.java
rename to java/jakarta/servlet/jsp/el/FunctionMapper.java
index a7a983f..1242e54 100644
--- a/java/javax/servlet/jsp/el/FunctionMapper.java
+++ b/java/jakarta/servlet/jsp/el/FunctionMapper.java
@@ -15,7 +15,7 @@
 * limitations under the License.
 */
 
-package javax.servlet.jsp.el;
+package jakarta.servlet.jsp.el;
 
 /**
  * <p>The interface to a map between EL function names and methods.</p>
diff --git a/java/javax/servlet/jsp/el/ImplicitObjectELResolver.java b/java/jakarta/servlet/jsp/el/ImplicitObjectELResolver.java
similarity index 98%
rename from java/javax/servlet/jsp/el/ImplicitObjectELResolver.java
rename to java/jakarta/servlet/jsp/el/ImplicitObjectELResolver.java
index 6806a59..e749c40 100644
--- a/java/javax/servlet/jsp/el/ImplicitObjectELResolver.java
+++ b/java/jakarta/servlet/jsp/el/ImplicitObjectELResolver.java
@@ -15,7 +15,7 @@
 * limitations under the License.
 */
 
-package javax.servlet.jsp.el;
+package jakarta.servlet.jsp.el;
 
 import java.beans.FeatureDescriptor;
 import java.util.AbstractMap;
@@ -30,15 +30,14 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.Vector;
 
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.PageContext;
-
 import jakarta.el.ELContext;
 import jakarta.el.ELResolver;
 import jakarta.el.PropertyNotWritableException;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
+import jakarta.servlet.jsp.JspContext;
+import jakarta.servlet.jsp.PageContext;
 
 /**
  *
diff --git a/java/javax/servlet/jsp/el/ScopedAttributeELResolver.java b/java/jakarta/servlet/jsp/el/ScopedAttributeELResolver.java
similarity index 98%
rename from java/javax/servlet/jsp/el/ScopedAttributeELResolver.java
rename to java/jakarta/servlet/jsp/el/ScopedAttributeELResolver.java
index 4674937..10fdd0a 100644
--- a/java/javax/servlet/jsp/el/ScopedAttributeELResolver.java
+++ b/java/jakarta/servlet/jsp/el/ScopedAttributeELResolver.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp.el;
+package jakarta.servlet.jsp.el;
 
 import java.beans.FeatureDescriptor;
 import java.util.ArrayList;
@@ -23,13 +23,12 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Objects;
 
-import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.PageContext;
-
 import jakarta.el.ELClass;
 import jakarta.el.ELContext;
 import jakarta.el.ELResolver;
 import jakarta.el.ImportHandler;
+import jakarta.servlet.jsp.JspContext;
+import jakarta.servlet.jsp.PageContext;
 
 /**
 *
diff --git a/java/javax/servlet/jsp/el/VariableResolver.java b/java/jakarta/servlet/jsp/el/VariableResolver.java
similarity index 98%
rename from java/javax/servlet/jsp/el/VariableResolver.java
rename to java/jakarta/servlet/jsp/el/VariableResolver.java
index b659d3c..d7352b2 100644
--- a/java/javax/servlet/jsp/el/VariableResolver.java
+++ b/java/jakarta/servlet/jsp/el/VariableResolver.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp.el;
+package jakarta.servlet.jsp.el;
 
 /**
  * <p>
diff --git a/java/javax/servlet/jsp/el/package.html b/java/jakarta/servlet/jsp/el/package.html
similarity index 100%
rename from java/javax/servlet/jsp/el/package.html
rename to java/jakarta/servlet/jsp/el/package.html
diff --git a/java/javax/servlet/jsp/package.html b/java/jakarta/servlet/jsp/package.html
similarity index 94%
rename from java/javax/servlet/jsp/package.html
rename to java/jakarta/servlet/jsp/package.html
index ea458fc..104fac6 100644
--- a/java/javax/servlet/jsp/package.html
+++ b/java/jakarta/servlet/jsp/package.html
@@ -21,7 +21,7 @@
 <body bgcolor="white">
 Classes and interfaces for the Core JSP 2.0 API.
 <p>
-The javax.servlet.jsp package contains a number of classes and
+The jakarta.servlet.jsp package contains a number of classes and
 interfaces that describe and define the contracts between a JSP page
 implementation class and the runtime environment provided for an
 instance of such a class by a conforming JSP container.
diff --git a/java/javax/servlet/jsp/resources/jspxml.dtd b/java/jakarta/servlet/jsp/resources/jspxml.dtd
similarity index 100%
rename from java/javax/servlet/jsp/resources/jspxml.dtd
rename to java/jakarta/servlet/jsp/resources/jspxml.dtd
diff --git a/java/javax/servlet/jsp/resources/jspxml.xsd b/java/jakarta/servlet/jsp/resources/jspxml.xsd
similarity index 100%
rename from java/javax/servlet/jsp/resources/jspxml.xsd
rename to java/jakarta/servlet/jsp/resources/jspxml.xsd
diff --git a/java/javax/servlet/jsp/tagext/BodyContent.java b/java/jakarta/servlet/jsp/tagext/BodyContent.java
similarity index 98%
rename from java/javax/servlet/jsp/tagext/BodyContent.java
rename to java/jakarta/servlet/jsp/tagext/BodyContent.java
index 92c23e2..08c4345 100644
--- a/java/javax/servlet/jsp/tagext/BodyContent.java
+++ b/java/jakarta/servlet/jsp/tagext/BodyContent.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 import java.io.IOException;
 import java.io.Reader;
 import java.io.Writer;
 
-import javax.servlet.jsp.JspWriter;
+import jakarta.servlet.jsp.JspWriter;
 
 /**
  * An encapsulation of the evaluation of the body of an action so it is
diff --git a/java/javax/servlet/jsp/tagext/BodyTag.java b/java/jakarta/servlet/jsp/tagext/BodyTag.java
similarity index 98%
rename from java/javax/servlet/jsp/tagext/BodyTag.java
rename to java/jakarta/servlet/jsp/tagext/BodyTag.java
index a9fe835..4a6ade5 100644
--- a/java/javax/servlet/jsp/tagext/BodyTag.java
+++ b/java/jakarta/servlet/jsp/tagext/BodyTag.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
-import javax.servlet.jsp.JspException;
+import jakarta.servlet.jsp.JspException;
 
 
 /**
diff --git a/java/javax/servlet/jsp/tagext/BodyTagSupport.java b/java/jakarta/servlet/jsp/tagext/BodyTagSupport.java
similarity index 97%
rename from java/javax/servlet/jsp/tagext/BodyTagSupport.java
rename to java/jakarta/servlet/jsp/tagext/BodyTagSupport.java
index ba2dfd3..2c66743 100644
--- a/java/javax/servlet/jsp/tagext/BodyTagSupport.java
+++ b/java/jakarta/servlet/jsp/tagext/BodyTagSupport.java
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.JspWriter;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.JspWriter;
 
 /**
  * A base class for defining tag handlers implementing BodyTag.
diff --git a/java/javax/servlet/jsp/tagext/DynamicAttributes.java b/java/jakarta/servlet/jsp/tagext/DynamicAttributes.java
similarity index 96%
rename from java/javax/servlet/jsp/tagext/DynamicAttributes.java
rename to java/jakarta/servlet/jsp/tagext/DynamicAttributes.java
index 4ddefad..b5d7976 100644
--- a/java/javax/servlet/jsp/tagext/DynamicAttributes.java
+++ b/java/jakarta/servlet/jsp/tagext/DynamicAttributes.java
@@ -14,9 +14,9 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
-import javax.servlet.jsp.JspException;
+import jakarta.servlet.jsp.JspException;
 
 /**
  * For a tag to declare that it accepts dynamic attributes, it must implement
diff --git a/java/javax/servlet/jsp/tagext/FunctionInfo.java b/java/jakarta/servlet/jsp/tagext/FunctionInfo.java
similarity index 98%
rename from java/javax/servlet/jsp/tagext/FunctionInfo.java
rename to java/jakarta/servlet/jsp/tagext/FunctionInfo.java
index 9df9c64..acc7b00 100644
--- a/java/javax/servlet/jsp/tagext/FunctionInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/FunctionInfo.java
@@ -15,7 +15,7 @@
 * limitations under the License.
 */
 
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 /**
  * Information for a function in a Tag Library.
diff --git a/java/javax/servlet/jsp/tagext/IterationTag.java b/java/jakarta/servlet/jsp/tagext/IterationTag.java
similarity index 98%
rename from java/javax/servlet/jsp/tagext/IterationTag.java
rename to java/jakarta/servlet/jsp/tagext/IterationTag.java
index 9443e23..2f089ab 100644
--- a/java/javax/servlet/jsp/tagext/IterationTag.java
+++ b/java/jakarta/servlet/jsp/tagext/IterationTag.java
@@ -15,9 +15,9 @@
 * limitations under the License.
 */
 
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
-import javax.servlet.jsp.JspException;
+import jakarta.servlet.jsp.JspException;
 
 
 /**
diff --git a/java/javax/servlet/jsp/tagext/JspFragment.java b/java/jakarta/servlet/jsp/tagext/JspFragment.java
similarity index 92%
rename from java/javax/servlet/jsp/tagext/JspFragment.java
rename to java/jakarta/servlet/jsp/tagext/JspFragment.java
index 90a45b3..4397b70 100644
--- a/java/javax/servlet/jsp/tagext/JspFragment.java
+++ b/java/jakarta/servlet/jsp/tagext/JspFragment.java
@@ -15,13 +15,13 @@
 * limitations under the License.
 */
 
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 import java.io.IOException;
 import java.io.Writer;
 
-import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.JspException;
+import jakarta.servlet.jsp.JspContext;
+import jakarta.servlet.jsp.JspException;
 
 /**
  * Encapsulates a portion of JSP code in an object that
@@ -62,9 +62,9 @@ public abstract class JspFragment {
      *
      * @param out The Writer to output the fragment to, or null if
      *     output should be sent to JspContext.getOut().
-     * @throws javax.servlet.jsp.JspException Thrown if an error occurred
+     * @throws jakarta.servlet.jsp.JspException Thrown if an error occurred
      *     while invoking this fragment.
-     * @throws javax.servlet.jsp.SkipPageException Thrown if the page
+     * @throws jakarta.servlet.jsp.SkipPageException Thrown if the page
      *     that (either directly or indirectly) invoked the tag handler that
      *     invoked this fragment is to cease evaluation.  The container
      *     must throw this exception if a Classic Tag Handler returned
diff --git a/java/javax/servlet/jsp/tagext/JspIdConsumer.java b/java/jakarta/servlet/jsp/tagext/JspIdConsumer.java
similarity index 96%
rename from java/javax/servlet/jsp/tagext/JspIdConsumer.java
rename to java/jakarta/servlet/jsp/tagext/JspIdConsumer.java
index f3d49bf..43a9f53 100644
--- a/java/javax/servlet/jsp/tagext/JspIdConsumer.java
+++ b/java/jakarta/servlet/jsp/tagext/JspIdConsumer.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 public interface JspIdConsumer {
     public void setJspId(String jspId);
diff --git a/java/javax/servlet/jsp/tagext/JspTag.java b/java/jakarta/servlet/jsp/tagext/JspTag.java
similarity index 96%
rename from java/javax/servlet/jsp/tagext/JspTag.java
rename to java/jakarta/servlet/jsp/tagext/JspTag.java
index 2be75fd..6ecb05e 100644
--- a/java/javax/servlet/jsp/tagext/JspTag.java
+++ b/java/jakarta/servlet/jsp/tagext/JspTag.java
@@ -14,7 +14,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 /**
  * Serves as a base class for Tag and SimpleTag.
diff --git a/java/javax/servlet/jsp/tagext/PageData.java b/java/jakarta/servlet/jsp/tagext/PageData.java
similarity index 97%
rename from java/javax/servlet/jsp/tagext/PageData.java
rename to java/jakarta/servlet/jsp/tagext/PageData.java
index 737d394..9720d8a 100644
--- a/java/javax/servlet/jsp/tagext/PageData.java
+++ b/java/jakarta/servlet/jsp/tagext/PageData.java
@@ -16,7 +16,7 @@
 */
 
 
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 import java.io.InputStream;
 
diff --git a/java/javax/servlet/jsp/tagext/SimpleTag.java b/java/jakarta/servlet/jsp/tagext/SimpleTag.java
similarity index 95%
rename from java/javax/servlet/jsp/tagext/SimpleTag.java
rename to java/jakarta/servlet/jsp/tagext/SimpleTag.java
index 48a5ac7..72ca095 100644
--- a/java/javax/servlet/jsp/tagext/SimpleTag.java
+++ b/java/jakarta/servlet/jsp/tagext/SimpleTag.java
@@ -14,9 +14,9 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
-import javax.servlet.jsp.JspContext;
+import jakarta.servlet.jsp.JspContext;
 
 /**
  * Interface for defining Simple Tag Handlers.
@@ -82,9 +82,9 @@ public interface SimpleTag extends JspTag {
      * variables (defined by the associated tag file, TagExtraInfo, or TLD)
      * after the invocation of doTag().
      *
-     * @throws javax.servlet.jsp.JspException If an error occurred
+     * @throws jakarta.servlet.jsp.JspException If an error occurred
      *     while processing this tag.
-     * @throws javax.servlet.jsp.SkipPageException If the page that
+     * @throws jakarta.servlet.jsp.SkipPageException If the page that
      *     (either directly or indirectly) invoked this tag is to
      *     cease evaluation.  A Simple Tag Handler generated from a
      *     tag file must throw this exception if an invoked Classic
@@ -95,7 +95,7 @@ public interface SimpleTag extends JspTag {
      *     output stream.
      */
     public void doTag()
-        throws javax.servlet.jsp.JspException, java.io.IOException;
+        throws jakarta.servlet.jsp.JspException, java.io.IOException;
 
     /**
      * Sets the parent of this tag, for collaboration purposes.
diff --git a/java/javax/servlet/jsp/tagext/SimpleTagSupport.java b/java/jakarta/servlet/jsp/tagext/SimpleTagSupport.java
similarity index 97%
rename from java/javax/servlet/jsp/tagext/SimpleTagSupport.java
rename to java/jakarta/servlet/jsp/tagext/SimpleTagSupport.java
index 9d9c88f..8e5681d 100644
--- a/java/javax/servlet/jsp/tagext/SimpleTagSupport.java
+++ b/java/jakarta/servlet/jsp/tagext/SimpleTagSupport.java
@@ -14,12 +14,12 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 import java.io.IOException;
 
-import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.JspException;
+import jakarta.servlet.jsp.JspContext;
+import jakarta.servlet.jsp.JspException;
 
 /**
  * A base class for defining tag handlers implementing SimpleTag.
@@ -55,7 +55,7 @@ public class SimpleTagSupport implements SimpleTag {
      *
      * @throws JspException Subclasses can throw JspException to indicate
      *     an error occurred while processing this tag.
-     * @throws javax.servlet.jsp.SkipPageException If the page that
+     * @throws jakarta.servlet.jsp.SkipPageException If the page that
      *     (either directly or indirectly) invoked this tag is to
      *     cease evaluation.  A Simple Tag Handler generated from a
      *     tag file must throw this exception if an invoked Classic
diff --git a/java/javax/servlet/jsp/tagext/Tag.java b/java/jakarta/servlet/jsp/tagext/Tag.java
similarity index 98%
rename from java/javax/servlet/jsp/tagext/Tag.java
rename to java/jakarta/servlet/jsp/tagext/Tag.java
index 6bfce7e..fb39b3b 100644
--- a/java/javax/servlet/jsp/tagext/Tag.java
+++ b/java/jakarta/servlet/jsp/tagext/Tag.java
@@ -15,10 +15,10 @@
 * limitations under the License.
 */
 
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.PageContext;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.PageContext;
 
 
 /**
diff --git a/java/javax/servlet/jsp/tagext/TagAdapter.java b/java/jakarta/servlet/jsp/tagext/TagAdapter.java
similarity index 97%
rename from java/javax/servlet/jsp/tagext/TagAdapter.java
rename to java/jakarta/servlet/jsp/tagext/TagAdapter.java
index aedc16d..eeaf78f 100644
--- a/java/javax/servlet/jsp/tagext/TagAdapter.java
+++ b/java/jakarta/servlet/jsp/tagext/TagAdapter.java
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.PageContext;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.PageContext;
 
 /**
  * Wraps any SimpleTag and exposes it using a Tag interface. This is used to
diff --git a/java/javax/servlet/jsp/tagext/TagAttributeInfo.java b/java/jakarta/servlet/jsp/tagext/TagAttributeInfo.java
similarity index 99%
rename from java/javax/servlet/jsp/tagext/TagAttributeInfo.java
rename to java/jakarta/servlet/jsp/tagext/TagAttributeInfo.java
index d2ff2f0..2f54db4 100644
--- a/java/javax/servlet/jsp/tagext/TagAttributeInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/TagAttributeInfo.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 /**
  * Information on the attributes of a Tag, available at translation time. This
diff --git a/java/javax/servlet/jsp/tagext/TagData.java b/java/jakarta/servlet/jsp/tagext/TagData.java
similarity index 99%
rename from java/javax/servlet/jsp/tagext/TagData.java
rename to java/jakarta/servlet/jsp/tagext/TagData.java
index 3df36f0..a53e2c3 100644
--- a/java/javax/servlet/jsp/tagext/TagData.java
+++ b/java/jakarta/servlet/jsp/tagext/TagData.java
@@ -15,7 +15,7 @@
 * limitations under the License.
 */
 
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 import java.util.Hashtable;
 
diff --git a/java/javax/servlet/jsp/tagext/TagExtraInfo.java b/java/jakarta/servlet/jsp/tagext/TagExtraInfo.java
similarity index 99%
rename from java/javax/servlet/jsp/tagext/TagExtraInfo.java
rename to java/jakarta/servlet/jsp/tagext/TagExtraInfo.java
index 1fff9f2..44c6bc4 100644
--- a/java/javax/servlet/jsp/tagext/TagExtraInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/TagExtraInfo.java
@@ -16,7 +16,7 @@
 */
 
 
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 /**
  * Optional class provided by the tag library author to describe additional
diff --git a/java/javax/servlet/jsp/tagext/TagFileInfo.java b/java/jakarta/servlet/jsp/tagext/TagFileInfo.java
similarity index 98%
rename from java/javax/servlet/jsp/tagext/TagFileInfo.java
rename to java/jakarta/servlet/jsp/tagext/TagFileInfo.java
index dfa15f6..c82bfff 100644
--- a/java/javax/servlet/jsp/tagext/TagFileInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/TagFileInfo.java
@@ -16,7 +16,7 @@
 */
 
 
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 /**
  * Tag information for a tag file in a Tag Library;
diff --git a/java/javax/servlet/jsp/tagext/TagInfo.java b/java/jakarta/servlet/jsp/tagext/TagInfo.java
similarity index 99%
rename from java/javax/servlet/jsp/tagext/TagInfo.java
rename to java/jakarta/servlet/jsp/tagext/TagInfo.java
index 6183cf7..dcc234d 100644
--- a/java/javax/servlet/jsp/tagext/TagInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/TagInfo.java
@@ -16,7 +16,7 @@
 */
 
 
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 /**
  * Tag information for a tag in a Tag Library;
diff --git a/java/javax/servlet/jsp/tagext/TagLibraryInfo.java b/java/jakarta/servlet/jsp/tagext/TagLibraryInfo.java
similarity index 98%
rename from java/javax/servlet/jsp/tagext/TagLibraryInfo.java
rename to java/jakarta/servlet/jsp/tagext/TagLibraryInfo.java
index 79eb9c2..64dba90 100644
--- a/java/javax/servlet/jsp/tagext/TagLibraryInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/TagLibraryInfo.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 
 /**
@@ -96,7 +96,7 @@ public abstract class TagLibraryInfo {
      * A string describing the required version of the JSP container.
      *
      * @return the (minimal) required version of the JSP container.
-     * @see javax.servlet.jsp.JspEngineInfo
+     * @see jakarta.servlet.jsp.JspEngineInfo
      */
     public String getRequiredVersion() {
         return jspversion;
@@ -223,7 +223,7 @@ public abstract class TagLibraryInfo {
      *         TagLibraryInfo.
      * @since 2.1
      */
-    public abstract javax.servlet.jsp.tagext.TagLibraryInfo[] getTagLibraryInfos();
+    public abstract jakarta.servlet.jsp.tagext.TagLibraryInfo[] getTagLibraryInfos();
 
     // Protected fields
 
diff --git a/java/javax/servlet/jsp/tagext/TagLibraryValidator.java b/java/jakarta/servlet/jsp/tagext/TagLibraryValidator.java
similarity index 99%
rename from java/javax/servlet/jsp/tagext/TagLibraryValidator.java
rename to java/jakarta/servlet/jsp/tagext/TagLibraryValidator.java
index 0ed8d14..09ec17d 100644
--- a/java/javax/servlet/jsp/tagext/TagLibraryValidator.java
+++ b/java/jakarta/servlet/jsp/tagext/TagLibraryValidator.java
@@ -15,7 +15,7 @@
 * limitations under the License.
 */
 
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 import java.util.Map;
 
diff --git a/java/javax/servlet/jsp/tagext/TagSupport.java b/java/jakarta/servlet/jsp/tagext/TagSupport.java
similarity index 98%
rename from java/javax/servlet/jsp/tagext/TagSupport.java
rename to java/jakarta/servlet/jsp/tagext/TagSupport.java
index ebad48d..6652822 100644
--- a/java/javax/servlet/jsp/tagext/TagSupport.java
+++ b/java/jakarta/servlet/jsp/tagext/TagSupport.java
@@ -14,14 +14,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 import java.io.Serializable;
 import java.util.Enumeration;
 import java.util.Hashtable;
 
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.PageContext;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.PageContext;
 
 /**
  * A base class for defining new tag handlers implementing Tag.
diff --git a/java/javax/servlet/jsp/tagext/TagVariableInfo.java b/java/jakarta/servlet/jsp/tagext/TagVariableInfo.java
similarity index 98%
rename from java/javax/servlet/jsp/tagext/TagVariableInfo.java
rename to java/jakarta/servlet/jsp/tagext/TagVariableInfo.java
index 70ac7bf..5d0a44e 100644
--- a/java/javax/servlet/jsp/tagext/TagVariableInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/TagVariableInfo.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 /**
  * Variable information for a tag in a Tag Library; This class is instantiated
diff --git a/java/javax/servlet/jsp/tagext/TryCatchFinally.java b/java/jakarta/servlet/jsp/tagext/TryCatchFinally.java
similarity index 98%
rename from java/javax/servlet/jsp/tagext/TryCatchFinally.java
rename to java/jakarta/servlet/jsp/tagext/TryCatchFinally.java
index 46b0d4e..8c22f8a 100644
--- a/java/javax/servlet/jsp/tagext/TryCatchFinally.java
+++ b/java/jakarta/servlet/jsp/tagext/TryCatchFinally.java
@@ -16,7 +16,7 @@
 */
 
 
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 
 
diff --git a/java/javax/servlet/jsp/tagext/ValidationMessage.java b/java/jakarta/servlet/jsp/tagext/ValidationMessage.java
similarity index 98%
rename from java/javax/servlet/jsp/tagext/ValidationMessage.java
rename to java/jakarta/servlet/jsp/tagext/ValidationMessage.java
index 4c0b34c..3d0ce82 100644
--- a/java/javax/servlet/jsp/tagext/ValidationMessage.java
+++ b/java/jakarta/servlet/jsp/tagext/ValidationMessage.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 /**
  * A validation message from either TagLibraryValidator or TagExtraInfo.
diff --git a/java/javax/servlet/jsp/tagext/VariableInfo.java b/java/jakarta/servlet/jsp/tagext/VariableInfo.java
similarity index 99%
rename from java/javax/servlet/jsp/tagext/VariableInfo.java
rename to java/jakarta/servlet/jsp/tagext/VariableInfo.java
index 2d0cdcd..0f50086 100644
--- a/java/javax/servlet/jsp/tagext/VariableInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/VariableInfo.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package javax.servlet.jsp.tagext;
+package jakarta.servlet.jsp.tagext;
 
 /**
  * Information on the scripting variables that are created/modified by a tag (at
diff --git a/java/javax/servlet/jsp/tagext/doc-files/BodyTagProtocol.gif b/java/jakarta/servlet/jsp/tagext/doc-files/BodyTagProtocol.gif
similarity index 100%
rename from java/javax/servlet/jsp/tagext/doc-files/BodyTagProtocol.gif
rename to java/jakarta/servlet/jsp/tagext/doc-files/BodyTagProtocol.gif
diff --git a/java/javax/servlet/jsp/tagext/doc-files/IterationTagProtocol.gif b/java/jakarta/servlet/jsp/tagext/doc-files/IterationTagProtocol.gif
similarity index 100%
rename from java/javax/servlet/jsp/tagext/doc-files/IterationTagProtocol.gif
rename to java/jakarta/servlet/jsp/tagext/doc-files/IterationTagProtocol.gif
diff --git a/java/javax/servlet/jsp/tagext/doc-files/TagProtocol.gif b/java/jakarta/servlet/jsp/tagext/doc-files/TagProtocol.gif
similarity index 100%
rename from java/javax/servlet/jsp/tagext/doc-files/TagProtocol.gif
rename to java/jakarta/servlet/jsp/tagext/doc-files/TagProtocol.gif
diff --git a/java/javax/servlet/jsp/tagext/doc-files/VariableInfo-1.gif b/java/jakarta/servlet/jsp/tagext/doc-files/VariableInfo-1.gif
similarity index 100%
rename from java/javax/servlet/jsp/tagext/doc-files/VariableInfo-1.gif
rename to java/jakarta/servlet/jsp/tagext/doc-files/VariableInfo-1.gif
diff --git a/java/javax/servlet/jsp/tagext/package.html b/java/jakarta/servlet/jsp/tagext/package.html
similarity index 100%
rename from java/javax/servlet/jsp/tagext/package.html
rename to java/jakarta/servlet/jsp/tagext/package.html
diff --git a/java/javax/servlet/package.html b/java/jakarta/servlet/package.html
similarity index 93%
rename from java/javax/servlet/package.html
rename to java/jakarta/servlet/package.html
index 7336be6..b08e998 100644
--- a/java/javax/servlet/package.html
+++ b/java/jakarta/servlet/package.html
@@ -20,7 +20,7 @@
 </HEAD>
 <BODY BGCOLOR="white">
 
-The javax.servlet package contains a number of classes and interfaces that
+The jakarta.servlet package contains a number of classes and interfaces that
 describe and define the contracts between a servlet class and the
 runtime environment provided for an instance of such a class by a
 conforming servlet container.
diff --git a/java/javax/servlet/resources/XMLSchema.dtd b/java/jakarta/servlet/resources/XMLSchema.dtd
similarity index 100%
rename from java/javax/servlet/resources/XMLSchema.dtd
rename to java/jakarta/servlet/resources/XMLSchema.dtd
diff --git a/java/javax/servlet/resources/datatypes.dtd b/java/jakarta/servlet/resources/datatypes.dtd
similarity index 100%
rename from java/javax/servlet/resources/datatypes.dtd
rename to java/jakarta/servlet/resources/datatypes.dtd
diff --git a/java/javax/servlet/resources/j2ee_1_4.xsd b/java/jakarta/servlet/resources/j2ee_1_4.xsd
similarity index 100%
rename from java/javax/servlet/resources/j2ee_1_4.xsd
rename to java/jakarta/servlet/resources/j2ee_1_4.xsd
diff --git a/java/javax/servlet/resources/j2ee_web_services_1_1.xsd b/java/jakarta/servlet/resources/j2ee_web_services_1_1.xsd
similarity index 100%
rename from java/javax/servlet/resources/j2ee_web_services_1_1.xsd
rename to java/jakarta/servlet/resources/j2ee_web_services_1_1.xsd
diff --git a/java/javax/servlet/resources/j2ee_web_services_client_1_1.xsd b/java/jakarta/servlet/resources/j2ee_web_services_client_1_1.xsd
similarity index 100%
rename from java/javax/servlet/resources/j2ee_web_services_client_1_1.xsd
rename to java/jakarta/servlet/resources/j2ee_web_services_client_1_1.xsd
diff --git a/java/javax/servlet/resources/javaee_5.xsd b/java/jakarta/servlet/resources/javaee_5.xsd
similarity index 100%
rename from java/javax/servlet/resources/javaee_5.xsd
rename to java/jakarta/servlet/resources/javaee_5.xsd
diff --git a/java/javax/servlet/resources/javaee_6.xsd b/java/jakarta/servlet/resources/javaee_6.xsd
similarity index 100%
rename from java/javax/servlet/resources/javaee_6.xsd
rename to java/jakarta/servlet/resources/javaee_6.xsd
diff --git a/java/javax/servlet/resources/javaee_7.xsd b/java/jakarta/servlet/resources/javaee_7.xsd
similarity index 100%
rename from java/javax/servlet/resources/javaee_7.xsd
rename to java/jakarta/servlet/resources/javaee_7.xsd
diff --git a/java/javax/servlet/resources/javaee_8.xsd b/java/jakarta/servlet/resources/javaee_8.xsd
similarity index 100%
rename from java/javax/servlet/resources/javaee_8.xsd
rename to java/jakarta/servlet/resources/javaee_8.xsd
diff --git a/java/javax/servlet/resources/javaee_web_services_1_2.xsd b/java/jakarta/servlet/resources/javaee_web_services_1_2.xsd
similarity index 100%
rename from java/javax/servlet/resources/javaee_web_services_1_2.xsd
rename to java/jakarta/servlet/resources/javaee_web_services_1_2.xsd
diff --git a/java/javax/servlet/resources/javaee_web_services_1_3.xsd b/java/jakarta/servlet/resources/javaee_web_services_1_3.xsd
similarity index 100%
rename from java/javax/servlet/resources/javaee_web_services_1_3.xsd
rename to java/jakarta/servlet/resources/javaee_web_services_1_3.xsd
diff --git a/java/javax/servlet/resources/javaee_web_services_1_4.xsd b/java/jakarta/servlet/resources/javaee_web_services_1_4.xsd
similarity index 100%
rename from java/javax/servlet/resources/javaee_web_services_1_4.xsd
rename to java/jakarta/servlet/resources/javaee_web_services_1_4.xsd
diff --git a/java/javax/servlet/resources/javaee_web_services_client_1_2.xsd b/java/jakarta/servlet/resources/javaee_web_services_client_1_2.xsd
similarity index 100%
rename from java/javax/servlet/resources/javaee_web_services_client_1_2.xsd
rename to java/jakarta/servlet/resources/javaee_web_services_client_1_2.xsd
diff --git a/java/javax/servlet/resources/javaee_web_services_client_1_3.xsd b/java/jakarta/servlet/resources/javaee_web_services_client_1_3.xsd
similarity index 100%
rename from java/javax/servlet/resources/javaee_web_services_client_1_3.xsd
rename to java/jakarta/servlet/resources/javaee_web_services_client_1_3.xsd
diff --git a/java/javax/servlet/resources/javaee_web_services_client_1_4.xsd b/java/jakarta/servlet/resources/javaee_web_services_client_1_4.xsd
similarity index 100%
rename from java/javax/servlet/resources/javaee_web_services_client_1_4.xsd
rename to java/jakarta/servlet/resources/javaee_web_services_client_1_4.xsd
diff --git a/java/javax/servlet/resources/jsp_2_0.xsd b/java/jakarta/servlet/resources/jsp_2_0.xsd
similarity index 100%
rename from java/javax/servlet/resources/jsp_2_0.xsd
rename to java/jakarta/servlet/resources/jsp_2_0.xsd
diff --git a/java/javax/servlet/resources/jsp_2_1.xsd b/java/jakarta/servlet/resources/jsp_2_1.xsd
similarity index 100%
rename from java/javax/servlet/resources/jsp_2_1.xsd
rename to java/jakarta/servlet/resources/jsp_2_1.xsd
diff --git a/java/javax/servlet/resources/jsp_2_2.xsd b/java/jakarta/servlet/resources/jsp_2_2.xsd
similarity index 100%
rename from java/javax/servlet/resources/jsp_2_2.xsd
rename to java/jakarta/servlet/resources/jsp_2_2.xsd
diff --git a/java/javax/servlet/resources/jsp_2_3.xsd b/java/jakarta/servlet/resources/jsp_2_3.xsd
similarity index 100%
rename from java/javax/servlet/resources/jsp_2_3.xsd
rename to java/jakarta/servlet/resources/jsp_2_3.xsd
diff --git a/java/javax/servlet/resources/web-app_2_2.dtd b/java/jakarta/servlet/resources/web-app_2_2.dtd
similarity index 100%
rename from java/javax/servlet/resources/web-app_2_2.dtd
rename to java/jakarta/servlet/resources/web-app_2_2.dtd
diff --git a/java/javax/servlet/resources/web-app_2_3.dtd b/java/jakarta/servlet/resources/web-app_2_3.dtd
similarity index 100%
rename from java/javax/servlet/resources/web-app_2_3.dtd
rename to java/jakarta/servlet/resources/web-app_2_3.dtd
diff --git a/java/javax/servlet/resources/web-app_2_4.xsd b/java/jakarta/servlet/resources/web-app_2_4.xsd
similarity index 100%
rename from java/javax/servlet/resources/web-app_2_4.xsd
rename to java/jakarta/servlet/resources/web-app_2_4.xsd
diff --git a/java/javax/servlet/resources/web-app_2_5.xsd b/java/jakarta/servlet/resources/web-app_2_5.xsd
similarity index 100%
rename from java/javax/servlet/resources/web-app_2_5.xsd
rename to java/jakarta/servlet/resources/web-app_2_5.xsd
diff --git a/java/javax/servlet/resources/web-app_3_0.xsd b/java/jakarta/servlet/resources/web-app_3_0.xsd
similarity index 100%
rename from java/javax/servlet/resources/web-app_3_0.xsd
rename to java/jakarta/servlet/resources/web-app_3_0.xsd
diff --git a/java/javax/servlet/resources/web-app_3_1.xsd b/java/jakarta/servlet/resources/web-app_3_1.xsd
similarity index 100%
rename from java/javax/servlet/resources/web-app_3_1.xsd
rename to java/jakarta/servlet/resources/web-app_3_1.xsd
diff --git a/java/javax/servlet/resources/web-app_4_0.xsd b/java/jakarta/servlet/resources/web-app_4_0.xsd
similarity index 100%
rename from java/javax/servlet/resources/web-app_4_0.xsd
rename to java/jakarta/servlet/resources/web-app_4_0.xsd
diff --git a/java/javax/servlet/resources/web-common_3_0.xsd b/java/jakarta/servlet/resources/web-common_3_0.xsd
similarity index 100%
rename from java/javax/servlet/resources/web-common_3_0.xsd
rename to java/jakarta/servlet/resources/web-common_3_0.xsd
diff --git a/java/javax/servlet/resources/web-common_3_1.xsd b/java/jakarta/servlet/resources/web-common_3_1.xsd
similarity index 100%
rename from java/javax/servlet/resources/web-common_3_1.xsd
rename to java/jakarta/servlet/resources/web-common_3_1.xsd
diff --git a/java/javax/servlet/resources/web-common_4_0.xsd b/java/jakarta/servlet/resources/web-common_4_0.xsd
similarity index 100%
rename from java/javax/servlet/resources/web-common_4_0.xsd
rename to java/jakarta/servlet/resources/web-common_4_0.xsd
diff --git a/java/javax/servlet/resources/web-fragment_3_0.xsd b/java/jakarta/servlet/resources/web-fragment_3_0.xsd
similarity index 100%
rename from java/javax/servlet/resources/web-fragment_3_0.xsd
rename to java/jakarta/servlet/resources/web-fragment_3_0.xsd
diff --git a/java/javax/servlet/resources/web-fragment_3_1.xsd b/java/jakarta/servlet/resources/web-fragment_3_1.xsd
similarity index 100%
rename from java/javax/servlet/resources/web-fragment_3_1.xsd
rename to java/jakarta/servlet/resources/web-fragment_3_1.xsd
diff --git a/java/javax/servlet/resources/web-fragment_4_0.xsd b/java/jakarta/servlet/resources/web-fragment_4_0.xsd
similarity index 100%
rename from java/javax/servlet/resources/web-fragment_4_0.xsd
rename to java/jakarta/servlet/resources/web-fragment_4_0.xsd
diff --git a/java/javax/servlet/resources/web-jsptaglibrary_1_1.dtd b/java/jakarta/servlet/resources/web-jsptaglibrary_1_1.dtd
similarity index 100%
rename from java/javax/servlet/resources/web-jsptaglibrary_1_1.dtd
rename to java/jakarta/servlet/resources/web-jsptaglibrary_1_1.dtd
diff --git a/java/javax/servlet/resources/web-jsptaglibrary_1_2.dtd b/java/jakarta/servlet/resources/web-jsptaglibrary_1_2.dtd
similarity index 100%
rename from java/javax/servlet/resources/web-jsptaglibrary_1_2.dtd
rename to java/jakarta/servlet/resources/web-jsptaglibrary_1_2.dtd
diff --git a/java/javax/servlet/resources/web-jsptaglibrary_2_0.xsd b/java/jakarta/servlet/resources/web-jsptaglibrary_2_0.xsd
similarity index 100%
rename from java/javax/servlet/resources/web-jsptaglibrary_2_0.xsd
rename to java/jakarta/servlet/resources/web-jsptaglibrary_2_0.xsd
diff --git a/java/javax/servlet/resources/web-jsptaglibrary_2_1.xsd b/java/jakarta/servlet/resources/web-jsptaglibrary_2_1.xsd
similarity index 100%
rename from java/javax/servlet/resources/web-jsptaglibrary_2_1.xsd
rename to java/jakarta/servlet/resources/web-jsptaglibrary_2_1.xsd
diff --git a/java/javax/servlet/resources/xml.xsd b/java/jakarta/servlet/resources/xml.xsd
similarity index 100%
rename from java/javax/servlet/resources/xml.xsd
rename to java/jakarta/servlet/resources/xml.xsd
diff --git a/java/javax/websocket/server/HandshakeRequest.java b/java/javax/websocket/server/HandshakeRequest.java
index f2e3327..b42ca8d 100644
--- a/java/javax/websocket/server/HandshakeRequest.java
+++ b/java/javax/websocket/server/HandshakeRequest.java
@@ -42,7 +42,7 @@ public interface HandshakeRequest {
     /**
      * Get the HTTP Session object associated with this request. Object is used
      * to avoid a direct dependency on the Servlet API.
-     * @return The javax.servlet.http.HttpSession object associated with this
+     * @return The jakarta.servlet.http.HttpSession object associated with this
      *         request, if any.
      */
     Object getHttpSession();
diff --git a/java/org/apache/catalina/AsyncDispatcher.java b/java/org/apache/catalina/AsyncDispatcher.java
index 5a1d8f6..52d3373 100644
--- a/java/org/apache/catalina/AsyncDispatcher.java
+++ b/java/org/apache/catalina/AsyncDispatcher.java
@@ -18,9 +18,9 @@ package org.apache.catalina;
 
 import java.io.IOException;
 
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
 
 public interface AsyncDispatcher {
 
diff --git a/java/org/apache/catalina/Authenticator.java b/java/org/apache/catalina/Authenticator.java
index 4e4c4fa..d33b7b8 100644
--- a/java/org/apache/catalina/Authenticator.java
+++ b/java/org/apache/catalina/Authenticator.java
@@ -18,8 +18,8 @@ package org.apache.catalina;
 
 import java.io.IOException;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.connector.Request;
 
diff --git a/java/org/apache/catalina/Context.java b/java/org/apache/catalina/Context.java
index 3e647dc..a41f2a0 100644
--- a/java/org/apache/catalina/Context.java
+++ b/java/org/apache/catalina/Context.java
@@ -21,12 +21,12 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
-import javax.servlet.ServletContainerInitializer;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletRegistration;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletSecurityElement;
-import javax.servlet.descriptor.JspConfigDescriptor;
+import jakarta.servlet.ServletContainerInitializer;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletRegistration;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletSecurityElement;
+import jakarta.servlet.descriptor.JspConfigDescriptor;
 
 import org.apache.catalina.deploy.NamingResourcesImpl;
 import org.apache.tomcat.ContextBind;
@@ -1187,7 +1187,7 @@ public interface Context extends Container, ContextBind {
 
 
     /**
-     * Notify all {@link javax.servlet.ServletRequestListener}s that a request
+     * Notify all {@link jakarta.servlet.ServletRequestListener}s that a request
      * has started.
      *
      * @param request The request object that will be passed to the listener
@@ -1197,7 +1197,7 @@ public interface Context extends Container, ContextBind {
     public boolean fireRequestInitEvent(ServletRequest request);
 
     /**
-     * Notify all {@link javax.servlet.ServletRequestListener}s that a request
+     * Notify all {@link jakarta.servlet.ServletRequestListener}s that a request
      * has ended.
      *
      * @param request The request object that will be passed to the listener
@@ -1432,7 +1432,7 @@ public interface Context extends Container, ContextBind {
 
     /**
      * Notification that Servlet security has been dynamically set in a
-     * {@link javax.servlet.ServletRegistration.Dynamic}
+     * {@link jakarta.servlet.ServletRegistration.Dynamic}
      * @param registration Servlet security was modified for
      * @param servletSecurityElement new security constraints for this Servlet
      * @return urls currently mapped to this registration that are already
@@ -1778,7 +1778,7 @@ public interface Context extends Container, ContextBind {
 
     /**
      * Controls whether HTTP 1.1 and later location headers generated by a call
-     * to {@link javax.servlet.http.HttpServletResponse#sendRedirect(String)}
+     * to {@link jakarta.servlet.http.HttpServletResponse#sendRedirect(String)}
      * will use relative or absolute redirects.
      * <p>
      * Relative redirects are more efficient but may not work with reverse
@@ -1798,7 +1798,7 @@ public interface Context extends Container, ContextBind {
 
     /**
      * Will HTTP 1.1 and later location headers generated by a call to
-     * {@link javax.servlet.http.HttpServletResponse#sendRedirect(String)} use
+     * {@link jakarta.servlet.http.HttpServletResponse#sendRedirect(String)} use
      * relative or absolute redirects.
      *
      * @return {@code true} if relative redirects will be used {@code false} if
@@ -1860,7 +1860,7 @@ public interface Context extends Container, ContextBind {
 
     /**
      * Configure if, when returning a context path from {@link
-     * javax.servlet.http.HttpServletRequest#getContextPath()}, the return value
+     * jakarta.servlet.http.HttpServletRequest#getContextPath()}, the return value
      * is allowed to contain multiple leading '/' characters.
      *
      * @param allowMultipleLeadingForwardSlashInPath The new value for the flag
@@ -1870,7 +1870,7 @@ public interface Context extends Container, ContextBind {
 
     /**
      * When returning a context path from {@link
-     * javax.servlet.http.HttpServletRequest#getContextPath()}, is it allowed to
+     * jakarta.servlet.http.HttpServletRequest#getContextPath()}, is it allowed to
      * contain multiple leading '/' characters?
      *
      * @return <code>true</code> if multiple leading '/' characters are allowed,
diff --git a/java/org/apache/catalina/Globals.java b/java/org/apache/catalina/Globals.java
index b25ee32..70ef0cd 100644
--- a/java/org/apache/catalina/Globals.java
+++ b/java/org/apache/catalina/Globals.java
@@ -37,7 +37,7 @@ public final class Globals {
      * if any.
      */
     public static final String CERTIFICATES_ATTR =
-        "javax.servlet.request.X509Certificate";
+        "jakarta.servlet.request.X509Certificate";
 
 
     /**
@@ -46,7 +46,7 @@ public final class Globals {
      * java.lang.String).
      */
     public static final String CIPHER_SUITE_ATTR =
-        "javax.servlet.request.cipher_suite";
+        "jakarta.servlet.request.cipher_suite";
 
 
     /**
@@ -85,7 +85,7 @@ public final class Globals {
      * this SSL connection (as an object of type java.lang.Integer).
      */
     public static final String KEY_SIZE_ATTR =
-        "javax.servlet.request.key_size";
+        "jakarta.servlet.request.key_size";
 
 
     /**
@@ -93,7 +93,7 @@ public final class Globals {
      * for this SSL connection (as an object of type java.lang.String).
      */
     public static final String SSL_SESSION_ID_ATTR =
-        "javax.servlet.request.ssl_session_id";
+        "jakarta.servlet.request.ssl_session_id";
 
 
     /**
@@ -101,7 +101,7 @@ public final class Globals {
      * This one is a Tomcat extension to the Servlet spec.
      */
     public static final String SSL_SESSION_MGR_ATTR =
-        "javax.servlet.request.ssl_session_mgr";
+        "jakarta.servlet.request.ssl_session_mgr";
 
 
     /**
diff --git a/java/org/apache/catalina/Manager.java b/java/org/apache/catalina/Manager.java
index 86b47e5..d633551 100644
--- a/java/org/apache/catalina/Manager.java
+++ b/java/org/apache/catalina/Manager.java
@@ -389,10 +389,10 @@ public interface Manager {
     /**
      * When an attribute that is already present in the session is added again
      * under the same name and the attribute implements {@link
-     * javax.servlet.http.HttpSessionBindingListener}, should
-     * {@link javax.servlet.http.HttpSessionBindingListener#valueUnbound(javax.servlet.http.HttpSessionBindingEvent)}
+     * jakarta.servlet.http.HttpSessionBindingListener}, should
+     * {@link jakarta.servlet.http.HttpSessionBindingListener#valueUnbound(jakarta.servlet.http.HttpSessionBindingEvent)}
      * be called followed by
-     * {@link javax.servlet.http.HttpSessionBindingListener#valueBound(javax.servlet.http.HttpSessionBindingEvent)}?
+     * {@link jakarta.servlet.http.HttpSessionBindingListener#valueBound(jakarta.servlet.http.HttpSessionBindingEvent)}?
      * <p>
      * The default value is {@code false}.
      *
@@ -406,12 +406,12 @@ public interface Manager {
 
     /**
      * Configure if
-     * {@link javax.servlet.http.HttpSessionBindingListener#valueUnbound(javax.servlet.http.HttpSessionBindingEvent)}
+     * {@link jakarta.servlet.http.HttpSessionBindingListener#valueUnbound(jakarta.servlet.http.HttpSessionBindingEvent)}
      * be called followed by
-     * {@link javax.servlet.http.HttpSessionBindingListener#valueBound(javax.servlet.http.HttpSessionBindingEvent)}
+     * {@link jakarta.servlet.http.HttpSessionBindingListener#valueBound(jakarta.servlet.http.HttpSessionBindingEvent)}
      * when an attribute that is already present in the session is added again
      * under the same name and the attribute implements {@link
-     * javax.servlet.http.HttpSessionBindingListener}.
+     * jakarta.servlet.http.HttpSessionBindingListener}.
      *
      * @param notifyBindingListenerOnUnchangedValue {@code true} the listener
      *                                              will be called, {@code
@@ -424,9 +424,9 @@ public interface Manager {
     /**
      * When an attribute that is already present in the session is added again
      * under the same name and a {@link
-     * javax.servlet.http.HttpSessionAttributeListener} is configured for the
+     * jakarta.servlet.http.HttpSessionAttributeListener} is configured for the
      * session should
-     * {@link javax.servlet.http.HttpSessionAttributeListener#attributeReplaced(javax.servlet.http.HttpSessionBindingEvent)}
+     * {@link jakarta.servlet.http.HttpSessionAttributeListener#attributeReplaced(jakarta.servlet.http.HttpSessionBindingEvent)}
      * be called?
      * <p>
      * The default value is {@code true}.
@@ -441,10 +441,10 @@ public interface Manager {
 
     /**
      * Configure if
-     * {@link javax.servlet.http.HttpSessionAttributeListener#attributeReplaced(javax.servlet.http.HttpSessionBindingEvent)}
+     * {@link jakarta.servlet.http.HttpSessionAttributeListener#attributeReplaced(jakarta.servlet.http.HttpSessionBindingEvent)}
      * when an attribute that is already present in the session is added again
      * under the same name and a {@link
-     * javax.servlet.http.HttpSessionAttributeListener} is configured for the
+     * jakarta.servlet.http.HttpSessionAttributeListener} is configured for the
      * session.
      *
      * @param notifyAttributeListenerOnUnchangedValue {@code true} the listener
diff --git a/java/org/apache/catalina/Session.java b/java/org/apache/catalina/Session.java
index c9f74be..a883b61 100644
--- a/java/org/apache/catalina/Session.java
+++ b/java/org/apache/catalina/Session.java
@@ -22,7 +22,7 @@ package org.apache.catalina;
 import java.security.Principal;
 import java.util.Iterator;
 
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
 
 
 /**
diff --git a/java/org/apache/catalina/Valve.java b/java/org/apache/catalina/Valve.java
index 32ccade..699cc1e 100644
--- a/java/org/apache/catalina/Valve.java
+++ b/java/org/apache/catalina/Valve.java
@@ -18,7 +18,7 @@ package org.apache.catalina;
 
 import java.io.IOException;
 
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
 
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.connector.Response;
diff --git a/java/org/apache/catalina/Wrapper.java b/java/org/apache/catalina/Wrapper.java
index 858f887..1d728dc 100644
--- a/java/org/apache/catalina/Wrapper.java
+++ b/java/org/apache/catalina/Wrapper.java
@@ -19,10 +19,10 @@
 package org.apache.catalina;
 
 
-import javax.servlet.MultipartConfigElement;
-import javax.servlet.Servlet;
-import javax.servlet.ServletException;
-import javax.servlet.UnavailableException;
+import jakarta.servlet.MultipartConfigElement;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.UnavailableException;
 
 
 /**
diff --git a/java/org/apache/catalina/authenticator/AuthenticatorBase.java b/java/org/apache/catalina/authenticator/AuthenticatorBase.java
index b468fb1..4fc5d56 100644
--- a/java/org/apache/catalina/authenticator/AuthenticatorBase.java
+++ b/java/org/apache/catalina/authenticator/AuthenticatorBase.java
@@ -26,12 +26,6 @@ import java.util.Set;
 
 import javax.security.auth.Subject;
 import javax.security.auth.callback.CallbackHandler;
-import javax.servlet.DispatcherType;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 
 import jakarta.security.auth.message.AuthException;
 import jakarta.security.auth.message.AuthStatus;
@@ -41,6 +35,12 @@ import jakarta.security.auth.message.config.AuthConfigProvider;
 import jakarta.security.auth.message.config.RegistrationListener;
 import jakarta.security.auth.message.config.ServerAuthConfig;
 import jakarta.security.auth.message.config.ServerAuthContext;
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Authenticator;
 import org.apache.catalina.Container;
@@ -851,7 +851,7 @@ public abstract class AuthenticatorBase extends ValveBase
 
     /**
      * Look for the X509 certificate chain in the Request under the key
-     * <code>javax.servlet.request.X509Certificate</code>. If not found, trigger
+     * <code>jakarta.servlet.request.X509Certificate</code>. If not found, trigger
      * extracting the certificate chain from the Coyote request.
      *
      * @param request
@@ -930,7 +930,7 @@ public abstract class AuthenticatorBase extends ValveBase
                 // cached and the Principal did not change.
                 @SuppressWarnings("rawtypes")// JASPIC API uses raw types
                 Map map = state.messageInfo.getMap();
-                if (map != null && map.containsKey("javax.servlet.http.registerSession")) {
+                if (map != null && map.containsKey("jakarta.servlet.http.registerSession")) {
                     register(request, response, principal, "JASPIC", null, null, true, true);
                 } else {
                     register(request, response, principal, "JASPIC", null, null);
diff --git a/java/org/apache/catalina/authenticator/BasicAuthenticator.java b/java/org/apache/catalina/authenticator/BasicAuthenticator.java
index b661e35..cd342d9 100644
--- a/java/org/apache/catalina/authenticator/BasicAuthenticator.java
+++ b/java/org/apache/catalina/authenticator/BasicAuthenticator.java
@@ -21,8 +21,8 @@ import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.security.Principal;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.connector.Request;
 import org.apache.juli.logging.Log;
diff --git a/java/org/apache/catalina/authenticator/DigestAuthenticator.java b/java/org/apache/catalina/authenticator/DigestAuthenticator.java
index 3fa2679..ee926f7 100644
--- a/java/org/apache/catalina/authenticator/DigestAuthenticator.java
+++ b/java/org/apache/catalina/authenticator/DigestAuthenticator.java
@@ -23,8 +23,8 @@ import java.security.Principal;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.Realm;
diff --git a/java/org/apache/catalina/authenticator/FormAuthenticator.java b/java/org/apache/catalina/authenticator/FormAuthenticator.java
index 4a508f6..b04d40e 100644
--- a/java/org/apache/catalina/authenticator/FormAuthenticator.java
+++ b/java/org/apache/catalina/authenticator/FormAuthenticator.java
@@ -23,10 +23,10 @@ import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.Locale;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Realm;
 import org.apache.catalina.Session;
diff --git a/java/org/apache/catalina/authenticator/NonLoginAuthenticator.java b/java/org/apache/catalina/authenticator/NonLoginAuthenticator.java
index da1449c..e49be71 100644
--- a/java/org/apache/catalina/authenticator/NonLoginAuthenticator.java
+++ b/java/org/apache/catalina/authenticator/NonLoginAuthenticator.java
@@ -18,7 +18,7 @@ package org.apache.catalina.authenticator;
 
 import java.io.IOException;
 
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.connector.Request;
 
diff --git a/java/org/apache/catalina/authenticator/SSLAuthenticator.java b/java/org/apache/catalina/authenticator/SSLAuthenticator.java
index 10a03cf..90142cc 100644
--- a/java/org/apache/catalina/authenticator/SSLAuthenticator.java
+++ b/java/org/apache/catalina/authenticator/SSLAuthenticator.java
@@ -20,8 +20,8 @@ import java.io.IOException;
 import java.security.Principal;
 import java.security.cert.X509Certificate;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.connector.Request;
 
diff --git a/java/org/apache/catalina/authenticator/SavedRequest.java b/java/org/apache/catalina/authenticator/SavedRequest.java
index 4cf8c7c..8371578 100644
--- a/java/org/apache/catalina/authenticator/SavedRequest.java
+++ b/java/org/apache/catalina/authenticator/SavedRequest.java
@@ -27,7 +27,7 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
-import javax.servlet.http.Cookie;
+import jakarta.servlet.http.Cookie;
 
 import org.apache.tomcat.util.buf.ByteChunk;
 
diff --git a/java/org/apache/catalina/authenticator/SingleSignOn.java b/java/org/apache/catalina/authenticator/SingleSignOn.java
index dad95d0..0233dd8 100644
--- a/java/org/apache/catalina/authenticator/SingleSignOn.java
+++ b/java/org/apache/catalina/authenticator/SingleSignOn.java
@@ -22,8 +22,8 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.Cookie;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.Cookie;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
diff --git a/java/org/apache/catalina/authenticator/SingleSignOnEntry.java b/java/org/apache/catalina/authenticator/SingleSignOnEntry.java
index 24984f9..f67e135 100644
--- a/java/org/apache/catalina/authenticator/SingleSignOnEntry.java
+++ b/java/org/apache/catalina/authenticator/SingleSignOnEntry.java
@@ -25,7 +25,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
 
 import org.apache.catalina.Session;
 
diff --git a/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java b/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
index a8f8834..252d4f3 100644
--- a/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
+++ b/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
@@ -28,7 +28,8 @@ import java.util.regex.Pattern;
 import javax.security.auth.Subject;
 import javax.security.auth.login.LoginContext;
 import javax.security.auth.login.LoginException;
-import javax.servlet.http.HttpServletResponse;
+
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.Realm;
diff --git a/java/org/apache/catalina/authenticator/jaspic/MessageInfoImpl.java b/java/org/apache/catalina/authenticator/jaspic/MessageInfoImpl.java
index 9db7d1f..e2a465e 100644
--- a/java/org/apache/catalina/authenticator/jaspic/MessageInfoImpl.java
+++ b/java/org/apache/catalina/authenticator/jaspic/MessageInfoImpl.java
@@ -19,10 +19,9 @@ package org.apache.catalina.authenticator.jaspic;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import jakarta.security.auth.message.MessageInfo;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.tomcat.util.res.StringManager;
 
diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java
index 5955731..0db815b 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -22,12 +22,12 @@ import java.nio.charset.StandardCharsets;
 import java.util.EnumSet;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import javax.servlet.ReadListener;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletException;
-import javax.servlet.SessionTrackingMode;
-import javax.servlet.WriteListener;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ReadListener;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.SessionTrackingMode;
+import jakarta.servlet.WriteListener;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Authenticator;
 import org.apache.catalina.Context;
diff --git a/java/org/apache/catalina/connector/CoyoteInputStream.java b/java/org/apache/catalina/connector/CoyoteInputStream.java
index c7ee2e9..2f6f221 100644
--- a/java/org/apache/catalina/connector/CoyoteInputStream.java
+++ b/java/org/apache/catalina/connector/CoyoteInputStream.java
@@ -22,8 +22,8 @@ import java.security.AccessController;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
 
-import javax.servlet.ReadListener;
-import javax.servlet.ServletInputStream;
+import jakarta.servlet.ReadListener;
+import jakarta.servlet.ServletInputStream;
 
 import org.apache.catalina.security.SecurityUtil;
 import org.apache.tomcat.util.res.StringManager;
diff --git a/java/org/apache/catalina/connector/CoyoteOutputStream.java b/java/org/apache/catalina/connector/CoyoteOutputStream.java
index cf27525..646f52c 100644
--- a/java/org/apache/catalina/connector/CoyoteOutputStream.java
+++ b/java/org/apache/catalina/connector/CoyoteOutputStream.java
@@ -19,8 +19,8 @@ package org.apache.catalina.connector;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 
-import javax.servlet.ServletOutputStream;
-import javax.servlet.WriteListener;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.WriteListener;
 
 import org.apache.tomcat.util.res.StringManager;
 
diff --git a/java/org/apache/catalina/connector/InputBuffer.java b/java/org/apache/catalina/connector/InputBuffer.java
index 4da5b22..d3afe7c 100644
--- a/java/org/apache/catalina/connector/InputBuffer.java
+++ b/java/org/apache/catalina/connector/InputBuffer.java
@@ -29,7 +29,7 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import javax.servlet.ReadListener;
+import jakarta.servlet.ReadListener;
 
 import org.apache.catalina.security.SecurityUtil;
 import org.apache.coyote.ActionCode;
diff --git a/java/org/apache/catalina/connector/OutputBuffer.java b/java/org/apache/catalina/connector/OutputBuffer.java
index 5fa8fc2..59939ef 100644
--- a/java/org/apache/catalina/connector/OutputBuffer.java
+++ b/java/org/apache/catalina/connector/OutputBuffer.java
@@ -28,8 +28,8 @@ import java.security.PrivilegedExceptionAction;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.servlet.WriteListener;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.WriteListener;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Globals;
 import org.apache.coyote.ActionCode;
diff --git a/java/org/apache/catalina/connector/Request.java b/java/org/apache/catalina/connector/Request.java
index 841049a..6cb160f 100644
--- a/java/org/apache/catalina/connector/Request.java
+++ b/java/org/apache/catalina/connector/Request.java
@@ -43,28 +43,29 @@ import java.util.concurrent.atomic.AtomicBoolean;
 
 import javax.naming.NamingException;
 import javax.security.auth.Subject;
-import javax.servlet.AsyncContext;
-import javax.servlet.DispatcherType;
-import javax.servlet.FilterChain;
-import javax.servlet.MultipartConfigElement;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletInputStream;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletRequestAttributeEvent;
-import javax.servlet.ServletRequestAttributeListener;
-import javax.servlet.ServletResponse;
-import javax.servlet.SessionTrackingMode;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletMapping;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpUpgradeHandler;
-import javax.servlet.http.Part;
-import javax.servlet.http.PushBuilder;
+
+import jakarta.servlet.AsyncContext;
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.MultipartConfigElement;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletInputStream;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletRequestAttributeEvent;
+import jakarta.servlet.ServletRequestAttributeListener;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.SessionTrackingMode;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletMapping;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequestWrapper;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpUpgradeHandler;
+import jakarta.servlet.http.Part;
+import jakarta.servlet.http.PushBuilder;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
diff --git a/java/org/apache/catalina/connector/RequestFacade.java b/java/org/apache/catalina/connector/RequestFacade.java
index 11ad088..78a889f 100644
--- a/java/org/apache/catalina/connector/RequestFacade.java
+++ b/java/org/apache/catalina/connector/RequestFacade.java
@@ -25,22 +25,22 @@ import java.util.Enumeration;
 import java.util.Locale;
 import java.util.Map;
 
-import javax.servlet.AsyncContext;
-import javax.servlet.DispatcherType;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletInputStream;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletMapping;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpUpgradeHandler;
-import javax.servlet.http.Part;
-import javax.servlet.http.PushBuilder;
+import jakarta.servlet.AsyncContext;
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletInputStream;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletMapping;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpUpgradeHandler;
+import jakarta.servlet.http.Part;
+import jakarta.servlet.http.PushBuilder;
 
 import org.apache.catalina.Globals;
 import org.apache.catalina.security.SecurityUtil;
diff --git a/java/org/apache/catalina/connector/Response.java b/java/org/apache/catalina/connector/Response.java
index d06a46c..f038343 100644
--- a/java/org/apache/catalina/connector/Response.java
+++ b/java/org/apache/catalina/connector/Response.java
@@ -36,12 +36,12 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.function.Supplier;
 
-import javax.servlet.ServletOutputStream;
-import javax.servlet.ServletResponse;
-import javax.servlet.SessionTrackingMode;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.SessionTrackingMode;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponseWrapper;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Globals;
diff --git a/java/org/apache/catalina/connector/ResponseFacade.java b/java/org/apache/catalina/connector/ResponseFacade.java
index 6c04b17..9304303 100644
--- a/java/org/apache/catalina/connector/ResponseFacade.java
+++ b/java/org/apache/catalina/connector/ResponseFacade.java
@@ -27,9 +27,9 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.function.Supplier;
 
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Globals;
 import org.apache.catalina.security.SecurityUtil;
diff --git a/java/org/apache/catalina/core/ApplicationContext.java b/java/org/apache/catalina/core/ApplicationContext.java
index 79628e0..44f297d 100644
--- a/java/org/apache/catalina/core/ApplicationContext.java
+++ b/java/org/apache/catalina/core/ApplicationContext.java
@@ -34,28 +34,29 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
 import javax.naming.NamingException;
-import javax.servlet.Filter;
-import javax.servlet.FilterRegistration;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextAttributeEvent;
-import javax.servlet.ServletContextAttributeListener;
-import javax.servlet.ServletContextListener;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRegistration;
-import javax.servlet.ServletRegistration.Dynamic;
-import javax.servlet.ServletRequestAttributeListener;
-import javax.servlet.ServletRequestListener;
-import javax.servlet.ServletSecurityElement;
-import javax.servlet.SessionCookieConfig;
-import javax.servlet.SessionTrackingMode;
-import javax.servlet.annotation.ServletSecurity;
-import javax.servlet.descriptor.JspConfigDescriptor;
-import javax.servlet.http.HttpServletMapping;
-import javax.servlet.http.HttpSessionAttributeListener;
-import javax.servlet.http.HttpSessionIdListener;
-import javax.servlet.http.HttpSessionListener;
+
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterRegistration;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletContextAttributeEvent;
+import jakarta.servlet.ServletContextAttributeListener;
+import jakarta.servlet.ServletContextListener;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRegistration;
+import jakarta.servlet.ServletRegistration.Dynamic;
+import jakarta.servlet.ServletRequestAttributeListener;
+import jakarta.servlet.ServletRequestListener;
+import jakarta.servlet.ServletSecurityElement;
+import jakarta.servlet.SessionCookieConfig;
+import jakarta.servlet.SessionTrackingMode;
+import jakarta.servlet.annotation.ServletSecurity;
+import jakarta.servlet.descriptor.JspConfigDescriptor;
+import jakarta.servlet.http.HttpServletMapping;
+import jakarta.servlet.http.HttpSessionAttributeListener;
+import jakarta.servlet.http.HttpSessionIdListener;
+import jakarta.servlet.http.HttpSessionListener;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
diff --git a/java/org/apache/catalina/core/ApplicationContextFacade.java b/java/org/apache/catalina/core/ApplicationContextFacade.java
index 8d506b9..5dd3a37 100644
--- a/java/org/apache/catalina/core/ApplicationContextFacade.java
+++ b/java/org/apache/catalina/core/ApplicationContextFacade.java
@@ -34,17 +34,17 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
-import javax.servlet.Filter;
-import javax.servlet.FilterRegistration;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRegistration;
-import javax.servlet.ServletRegistration.Dynamic;
-import javax.servlet.SessionCookieConfig;
-import javax.servlet.SessionTrackingMode;
-import javax.servlet.descriptor.JspConfigDescriptor;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterRegistration;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRegistration;
+import jakarta.servlet.ServletRegistration.Dynamic;
+import jakarta.servlet.SessionCookieConfig;
+import jakarta.servlet.SessionTrackingMode;
+import jakarta.servlet.descriptor.JspConfigDescriptor;
 
 import org.apache.catalina.Globals;
 import org.apache.catalina.security.SecurityUtil;
diff --git a/java/org/apache/catalina/core/ApplicationDispatcher.java b/java/org/apache/catalina/core/ApplicationDispatcher.java
index 522e4a7..6f48831 100644
--- a/java/org/apache/catalina/core/ApplicationDispatcher.java
+++ b/java/org/apache/catalina/core/ApplicationDispatcher.java
@@ -22,20 +22,20 @@ import java.security.AccessController;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
 
-import javax.servlet.AsyncContext;
-import javax.servlet.DispatcherType;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletRequestWrapper;
-import javax.servlet.ServletResponse;
-import javax.servlet.ServletResponseWrapper;
-import javax.servlet.UnavailableException;
-import javax.servlet.http.HttpServletMapping;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.AsyncContext;
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletRequestWrapper;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.ServletResponseWrapper;
+import jakarta.servlet.UnavailableException;
+import jakarta.servlet.http.HttpServletMapping;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.AsyncDispatcher;
 import org.apache.catalina.Context;
@@ -56,8 +56,8 @@ import org.apache.tomcat.util.res.StringManager;
  * from this resource.  This implementation allows application level servlets
  * to wrap the request and/or response objects that are passed on to the
  * called resource, as long as the wrapping classes extend
- * <code>javax.servlet.ServletRequestWrapper</code> and
- * <code>javax.servlet.ServletResponseWrapper</code>.
+ * <code>jakarta.servlet.ServletRequestWrapper</code> and
+ * <code>jakarta.servlet.ServletResponseWrapper</code>.
  *
  * @author Craig R. McClanahan
  */
diff --git a/java/org/apache/catalina/core/ApplicationFilterChain.java b/java/org/apache/catalina/core/ApplicationFilterChain.java
index f212c46..e9bec91 100644
--- a/java/org/apache/catalina/core/ApplicationFilterChain.java
+++ b/java/org/apache/catalina/core/ApplicationFilterChain.java
@@ -21,14 +21,14 @@ import java.security.Principal;
 import java.security.PrivilegedActionException;
 import java.util.Set;
 
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.Servlet;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Globals;
 import org.apache.catalina.security.SecurityUtil;
@@ -36,7 +36,7 @@ import org.apache.tomcat.util.ExceptionUtils;
 import org.apache.tomcat.util.res.StringManager;
 
 /**
- * Implementation of <code>javax.servlet.FilterChain</code> used to manage
+ * Implementation of <code>jakarta.servlet.FilterChain</code> used to manage
  * the execution of a set of filters for a particular request.  When the
  * set of defined filters has all been executed, the next call to
  * <code>doFilter()</code> will execute the servlet's <code>service()</code>
diff --git a/java/org/apache/catalina/core/ApplicationFilterConfig.java b/java/org/apache/catalina/core/ApplicationFilterConfig.java
index 7c2ea61..fa89d2c 100644
--- a/java/org/apache/catalina/core/ApplicationFilterConfig.java
+++ b/java/org/apache/catalina/core/ApplicationFilterConfig.java
@@ -27,10 +27,11 @@ import java.util.Map;
 
 import javax.management.ObjectName;
 import javax.naming.NamingException;
-import javax.servlet.Filter;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
+
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Globals;
@@ -46,7 +47,7 @@ import org.apache.tomcat.util.res.StringManager;
 
 
 /**
- * Implementation of a <code>javax.servlet.FilterConfig</code> useful in
+ * Implementation of a <code>jakarta.servlet.FilterConfig</code> useful in
  * managing the filter instances instantiated when a web application
  * is first started.
  *
@@ -78,7 +79,7 @@ public final class ApplicationFilterConfig implements FilterConfig, Serializable
      *  constructed
      *
      * @exception ClassCastException if the specified class does not implement
-     *  the <code>javax.servlet.Filter</code> interface
+     *  the <code>jakarta.servlet.Filter</code> interface
      * @exception ClassNotFoundException if the filter class cannot be found
      * @exception IllegalAccessException if the filter class cannot be
      *  publicly instantiated
@@ -225,7 +226,7 @@ public final class ApplicationFilterConfig implements FilterConfig, Serializable
      * Return the application Filter we are configured for.
      *
      * @exception ClassCastException if the specified class does not implement
-     *  the <code>javax.servlet.Filter</code> interface
+     *  the <code>jakarta.servlet.Filter</code> interface
      * @exception ClassNotFoundException if the filter class cannot be found
      * @exception IllegalAccessException if the filter class cannot be
      *  publicly instantiated
diff --git a/java/org/apache/catalina/core/ApplicationFilterFactory.java b/java/org/apache/catalina/core/ApplicationFilterFactory.java
index e066f94..c74fdeb 100644
--- a/java/org/apache/catalina/core/ApplicationFilterFactory.java
+++ b/java/org/apache/catalina/core/ApplicationFilterFactory.java
@@ -16,9 +16,9 @@
  */
 package org.apache.catalina.core;
 
-import javax.servlet.DispatcherType;
-import javax.servlet.Servlet;
-import javax.servlet.ServletRequest;
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletRequest;
 
 import org.apache.catalina.Globals;
 import org.apache.catalina.Wrapper;
diff --git a/java/org/apache/catalina/core/ApplicationFilterRegistration.java b/java/org/apache/catalina/core/ApplicationFilterRegistration.java
index 518f130..29b03f1 100644
--- a/java/org/apache/catalina/core/ApplicationFilterRegistration.java
+++ b/java/org/apache/catalina/core/ApplicationFilterRegistration.java
@@ -23,8 +23,8 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
-import javax.servlet.DispatcherType;
-import javax.servlet.FilterRegistration;
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.FilterRegistration;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.util.ParameterMap;
diff --git a/java/org/apache/catalina/core/ApplicationHttpRequest.java b/java/org/apache/catalina/core/ApplicationHttpRequest.java
index e049e83..dc1b537 100644
--- a/java/org/apache/catalina/core/ApplicationHttpRequest.java
+++ b/java/org/apache/catalina/core/ApplicationHttpRequest.java
@@ -30,16 +30,16 @@ import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
 
-import javax.servlet.DispatcherType;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletRequestWrapper;
-import javax.servlet.http.HttpServletMapping;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.PushBuilder;
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletRequestWrapper;
+import jakarta.servlet.http.HttpServletMapping;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequestWrapper;
+import jakarta.servlet.http.HttpSession;
+import jakarta.servlet.http.PushBuilder;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Globals;
@@ -56,10 +56,10 @@ import org.apache.tomcat.util.res.StringManager;
 
 
 /**
- * Wrapper around a <code>javax.servlet.http.HttpServletRequest</code>
+ * Wrapper around a <code>jakarta.servlet.http.HttpServletRequest</code>
  * that transforms an application request object (which might be the original
  * one passed to a servlet, or might be based on the 2.3
- * <code>javax.servlet.http.HttpServletRequestWrapper</code> class)
+ * <code>jakarta.servlet.http.HttpServletRequestWrapper</code> class)
  * back into an internal <code>org.apache.catalina.HttpRequest</code>.
  * <p>
  * <strong>WARNING</strong>:  Due to Java's lack of support for multiple
diff --git a/java/org/apache/catalina/core/ApplicationHttpResponse.java b/java/org/apache/catalina/core/ApplicationHttpResponse.java
index b3a17f7..c9b76c7 100644
--- a/java/org/apache/catalina/core/ApplicationHttpResponse.java
+++ b/java/org/apache/catalina/core/ApplicationHttpResponse.java
@@ -19,16 +19,16 @@ package org.apache.catalina.core;
 import java.io.IOException;
 import java.util.Locale;
 
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponseWrapper;
 
 
 /**
- * Wrapper around a <code>javax.servlet.http.HttpServletResponse</code>
+ * Wrapper around a <code>jakarta.servlet.http.HttpServletResponse</code>
  * that transforms an application response object (which might be the original
  * one passed to a servlet, or might be based on the 2.3
- * <code>javax.servlet.http.HttpServletResponseWrapper</code> class)
+ * <code>jakarta.servlet.http.HttpServletResponseWrapper</code> class)
  * back into an internal <code>org.apache.catalina.HttpResponse</code>.
  * <p>
  * <strong>WARNING</strong>:  Due to Java's lack of support for multiple
diff --git a/java/org/apache/catalina/core/ApplicationMapping.java b/java/org/apache/catalina/core/ApplicationMapping.java
index c6e4f0f..3bd83a2 100644
--- a/java/org/apache/catalina/core/ApplicationMapping.java
+++ b/java/org/apache/catalina/core/ApplicationMapping.java
@@ -16,8 +16,8 @@
  */
 package org.apache.catalina.core;
 
-import javax.servlet.http.HttpServletMapping;
-import javax.servlet.http.MappingMatch;
+import jakarta.servlet.http.HttpServletMapping;
+import jakarta.servlet.http.MappingMatch;
 
 import org.apache.catalina.mapper.MappingData;
 
diff --git a/java/org/apache/catalina/core/ApplicationPart.java b/java/org/apache/catalina/core/ApplicationPart.java
index d6400b5..fe72732 100644
--- a/java/org/apache/catalina/core/ApplicationPart.java
+++ b/java/org/apache/catalina/core/ApplicationPart.java
@@ -27,7 +27,7 @@ import java.util.LinkedHashSet;
 import java.util.Locale;
 import java.util.Map;
 
-import javax.servlet.http.Part;
+import jakarta.servlet.http.Part;
 
 import org.apache.tomcat.util.http.fileupload.FileItem;
 import org.apache.tomcat.util.http.fileupload.ParameterParser;
diff --git a/java/org/apache/catalina/core/ApplicationPushBuilder.java b/java/org/apache/catalina/core/ApplicationPushBuilder.java
index 58858ae..3dbf66e 100644
--- a/java/org/apache/catalina/core/ApplicationPushBuilder.java
+++ b/java/org/apache/catalina/core/ApplicationPushBuilder.java
@@ -27,11 +27,11 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
-import javax.servlet.SessionTrackingMode;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.PushBuilder;
+import jakarta.servlet.SessionTrackingMode;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
+import jakarta.servlet.http.PushBuilder;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.authenticator.AuthenticatorBase;
diff --git a/java/org/apache/catalina/core/ApplicationRequest.java b/java/org/apache/catalina/core/ApplicationRequest.java
index 87c6c17..e5cd032 100644
--- a/java/org/apache/catalina/core/ApplicationRequest.java
+++ b/java/org/apache/catalina/core/ApplicationRequest.java
@@ -23,16 +23,16 @@ import java.util.Collections;
 import java.util.Enumeration;
 import java.util.HashMap;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletRequestWrapper;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletRequestWrapper;
 
 
 /**
- * Wrapper around a <code>javax.servlet.ServletRequest</code>
+ * Wrapper around a <code>jakarta.servlet.ServletRequest</code>
  * that transforms an application request object (which might be the original
  * one passed to a servlet, or might be based on the 2.3
- * <code>javax.servlet.ServletRequestWrapper</code> class)
+ * <code>jakarta.servlet.ServletRequestWrapper</code> class)
  * back into an internal <code>org.apache.catalina.Request</code>.
  * <p>
  * <strong>WARNING</strong>:  Due to Java's lack of support for multiple
diff --git a/java/org/apache/catalina/core/ApplicationResponse.java b/java/org/apache/catalina/core/ApplicationResponse.java
index a3bf44e..9157b34 100644
--- a/java/org/apache/catalina/core/ApplicationResponse.java
+++ b/java/org/apache/catalina/core/ApplicationResponse.java
@@ -18,15 +18,15 @@ package org.apache.catalina.core;
 
 import java.util.Locale;
 
-import javax.servlet.ServletResponse;
-import javax.servlet.ServletResponseWrapper;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.ServletResponseWrapper;
 
 
 /**
- * Wrapper around a <code>javax.servlet.ServletResponse</code>
+ * Wrapper around a <code>jakarta.servlet.ServletResponse</code>
  * that transforms an application response object (which might be the original
  * one passed to a servlet, or might be based on the 2.3
- * <code>javax.servlet.ServletResponseWrapper</code> class)
+ * <code>jakarta.servlet.ServletResponseWrapper</code> class)
  * back into an internal <code>org.apache.catalina.Response</code>.
  * <p>
  * <strong>WARNING</strong>:  Due to Java's lack of support for multiple
diff --git a/java/org/apache/catalina/core/ApplicationServletRegistration.java b/java/org/apache/catalina/core/ApplicationServletRegistration.java
index 47eda61..f894151 100644
--- a/java/org/apache/catalina/core/ApplicationServletRegistration.java
+++ b/java/org/apache/catalina/core/ApplicationServletRegistration.java
@@ -24,9 +24,9 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
-import javax.servlet.MultipartConfigElement;
-import javax.servlet.ServletRegistration;
-import javax.servlet.ServletSecurityElement;
+import jakarta.servlet.MultipartConfigElement;
+import jakarta.servlet.ServletRegistration;
+import jakarta.servlet.ServletSecurityElement;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.LifecycleState;
diff --git a/java/org/apache/catalina/core/ApplicationSessionCookieConfig.java b/java/org/apache/catalina/core/ApplicationSessionCookieConfig.java
index 3127ea2..4d46337 100644
--- a/java/org/apache/catalina/core/ApplicationSessionCookieConfig.java
+++ b/java/org/apache/catalina/core/ApplicationSessionCookieConfig.java
@@ -17,8 +17,8 @@
 
 package org.apache.catalina.core;
 
-import javax.servlet.SessionCookieConfig;
-import javax.servlet.http.Cookie;
+import jakarta.servlet.SessionCookieConfig;
+import jakarta.servlet.http.Cookie;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.LifecycleState;
diff --git a/java/org/apache/catalina/core/AsyncContextImpl.java b/java/org/apache/catalina/core/AsyncContextImpl.java
index 3f801d5..33c366b 100644
--- a/java/org/apache/catalina/core/AsyncContextImpl.java
+++ b/java/org/apache/catalina/core/AsyncContextImpl.java
@@ -23,16 +23,17 @@ import java.util.List;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import javax.naming.NamingException;
-import javax.servlet.AsyncContext;
-import javax.servlet.AsyncEvent;
-import javax.servlet.AsyncListener;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+
+import jakarta.servlet.AsyncContext;
+import jakarta.servlet.AsyncEvent;
+import jakarta.servlet.AsyncListener;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.AsyncDispatcher;
 import org.apache.catalina.Context;
diff --git a/java/org/apache/catalina/core/AsyncListenerWrapper.java b/java/org/apache/catalina/core/AsyncListenerWrapper.java
index 5cf2148..be2d85e 100644
--- a/java/org/apache/catalina/core/AsyncListenerWrapper.java
+++ b/java/org/apache/catalina/core/AsyncListenerWrapper.java
@@ -18,10 +18,10 @@ package org.apache.catalina.core;
 
 import java.io.IOException;
 
-import javax.servlet.AsyncEvent;
-import javax.servlet.AsyncListener;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
+import jakarta.servlet.AsyncEvent;
+import jakarta.servlet.AsyncListener;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
 
 public class AsyncListenerWrapper {
 
diff --git a/java/org/apache/catalina/core/StandardContext.java b/java/org/apache/catalina/core/StandardContext.java
index a3f03fc..cddf7eb 100644
--- a/java/org/apache/catalina/core/StandardContext.java
+++ b/java/org/apache/catalina/core/StandardContext.java
@@ -54,30 +54,31 @@ import javax.management.NotificationEmitter;
 import javax.management.NotificationFilter;
 import javax.management.NotificationListener;
 import javax.naming.NamingException;
-import javax.servlet.Filter;
-import javax.servlet.FilterConfig;
-import javax.servlet.FilterRegistration;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletContainerInitializer;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextAttributeListener;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRegistration;
-import javax.servlet.ServletRegistration.Dynamic;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletRequestAttributeListener;
-import javax.servlet.ServletRequestEvent;
-import javax.servlet.ServletRequestListener;
-import javax.servlet.ServletSecurityElement;
-import javax.servlet.SessionCookieConfig;
-import javax.servlet.SessionTrackingMode;
-import javax.servlet.descriptor.JspConfigDescriptor;
-import javax.servlet.http.HttpSessionAttributeListener;
-import javax.servlet.http.HttpSessionIdListener;
-import javax.servlet.http.HttpSessionListener;
+
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.FilterRegistration;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletContainerInitializer;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletContextAttributeListener;
+import jakarta.servlet.ServletContextEvent;
+import jakarta.servlet.ServletContextListener;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRegistration;
+import jakarta.servlet.ServletRegistration.Dynamic;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletRequestAttributeListener;
+import jakarta.servlet.ServletRequestEvent;
+import jakarta.servlet.ServletRequestListener;
+import jakarta.servlet.ServletSecurityElement;
+import jakarta.servlet.SessionCookieConfig;
+import jakarta.servlet.SessionTrackingMode;
+import jakarta.servlet.descriptor.JspConfigDescriptor;
+import jakarta.servlet.http.HttpSessionAttributeListener;
+import jakarta.servlet.http.HttpSessionIdListener;
+import jakarta.servlet.http.HttpSessionListener;
 
 import org.apache.catalina.Authenticator;
 import org.apache.catalina.Container;
@@ -6580,21 +6581,21 @@ public class StandardContext extends ContainerBase
         }
 
         @Override
-        public javax.servlet.FilterRegistration.Dynamic addFilter(
+        public jakarta.servlet.FilterRegistration.Dynamic addFilter(
                 String filterName, String className) {
             throw new UnsupportedOperationException(
                     sm.getString("noPluggabilityServletContext.notAllowed"));
         }
 
         @Override
-        public javax.servlet.FilterRegistration.Dynamic addFilter(
+        public jakarta.servlet.FilterRegistration.Dynamic addFilter(
                 String filterName, Filter filter) {
             throw new UnsupportedOperationException(
                     sm.getString("noPluggabilityServletContext.notAllowed"));
         }
 
         @Override
-        public javax.servlet.FilterRegistration.Dynamic addFilter(
+        public jakarta.servlet.FilterRegistration.Dynamic addFilter(
                 String filterName, Class<? extends Filter> filterClass) {
             throw new UnsupportedOperationException(
                     sm.getString("noPluggabilityServletContext.notAllowed"));
diff --git a/java/org/apache/catalina/core/StandardContextValve.java b/java/org/apache/catalina/core/StandardContextValve.java
index 020a2f7..ef95ea2 100644
--- a/java/org/apache/catalina/core/StandardContextValve.java
+++ b/java/org/apache/catalina/core/StandardContextValve.java
@@ -18,9 +18,9 @@ package org.apache.catalina.core;
 
 import java.io.IOException;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Wrapper;
 import org.apache.catalina.connector.Request;
diff --git a/java/org/apache/catalina/core/StandardEngineValve.java b/java/org/apache/catalina/core/StandardEngineValve.java
index 96ef64e..4b5399c 100644
--- a/java/org/apache/catalina/core/StandardEngineValve.java
+++ b/java/org/apache/catalina/core/StandardEngineValve.java
@@ -18,7 +18,7 @@ package org.apache.catalina.core;
 
 import java.io.IOException;
 
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
 
 import org.apache.catalina.Host;
 import org.apache.catalina.connector.Request;
diff --git a/java/org/apache/catalina/core/StandardHostValve.java b/java/org/apache/catalina/core/StandardHostValve.java
index c713652..43f5780 100644
--- a/java/org/apache/catalina/core/StandardHostValve.java
+++ b/java/org/apache/catalina/core/StandardHostValve.java
@@ -19,11 +19,11 @@ package org.apache.catalina.core;
 import java.io.IOException;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import javax.servlet.DispatcherType;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Globals;
diff --git a/java/org/apache/catalina/core/StandardWrapper.java b/java/org/apache/catalina/core/StandardWrapper.java
index 7bfb512..ff3b292 100644
--- a/java/org/apache/catalina/core/StandardWrapper.java
+++ b/java/org/apache/catalina/core/StandardWrapper.java
@@ -36,14 +36,15 @@ import javax.management.NotificationEmitter;
 import javax.management.NotificationFilter;
 import javax.management.NotificationListener;
 import javax.management.ObjectName;
-import javax.servlet.MultipartConfigElement;
-import javax.servlet.Servlet;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.SingleThreadModel;
-import javax.servlet.UnavailableException;
-import javax.servlet.annotation.MultipartConfig;
+
+import jakarta.servlet.MultipartConfigElement;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.SingleThreadModel;
+import jakarta.servlet.UnavailableException;
+import jakarta.servlet.annotation.MultipartConfig;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.ContainerServlet;
@@ -550,7 +551,7 @@ public class StandardWrapper extends ContainerBase
         instance = loadServlet();
 
         Class<? extends Servlet> servletClazz = instance.getClass();
-        if (!javax.servlet.http.HttpServlet.class.isAssignableFrom(
+        if (!jakarta.servlet.http.HttpServlet.class.isAssignableFrom(
                                                         servletClazz)) {
             return DEFAULT_SERVLET_METHODS;
         }
@@ -1504,7 +1505,7 @@ public class StandardWrapper extends ContainerBase
 
     protected Method[] getAllDeclaredMethods(Class<?> c) {
 
-        if (c.equals(javax.servlet.http.HttpServlet.class)) {
+        if (c.equals(jakarta.servlet.http.HttpServlet.class)) {
             return null;
         }
 
diff --git a/java/org/apache/catalina/core/StandardWrapperFacade.java b/java/org/apache/catalina/core/StandardWrapperFacade.java
index 7dc506f..ef5792c 100644
--- a/java/org/apache/catalina/core/StandardWrapperFacade.java
+++ b/java/org/apache/catalina/core/StandardWrapperFacade.java
@@ -21,8 +21,8 @@ package org.apache.catalina.core;
 
 import java.util.Enumeration;
 
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletContext;
 
 
 /**
diff --git a/java/org/apache/catalina/core/StandardWrapperValve.java b/java/org/apache/catalina/core/StandardWrapperValve.java
index 8d2f54b..b9a3a36 100644
--- a/java/org/apache/catalina/core/StandardWrapperValve.java
+++ b/java/org/apache/catalina/core/StandardWrapperValve.java
@@ -22,12 +22,12 @@ package org.apache.catalina.core;
 import java.io.IOException;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import javax.servlet.DispatcherType;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletException;
-import javax.servlet.UnavailableException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.UnavailableException;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
diff --git a/java/org/apache/catalina/filters/AddDefaultCharsetFilter.java b/java/org/apache/catalina/filters/AddDefaultCharsetFilter.java
index 98adb4f..7270be8 100644
--- a/java/org/apache/catalina/filters/AddDefaultCharsetFilter.java
+++ b/java/org/apache/catalina/filters/AddDefaultCharsetFilter.java
@@ -19,13 +19,13 @@ package org.apache.catalina.filters;
 import java.io.IOException;
 import java.nio.charset.Charset;
 
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponseWrapper;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
diff --git a/java/org/apache/catalina/filters/CorsFilter.java b/java/org/apache/catalina/filters/CorsFilter.java
index 294e904..c9690c9 100644
--- a/java/org/apache/catalina/filters/CorsFilter.java
+++ b/java/org/apache/catalina/filters/CorsFilter.java
@@ -28,13 +28,13 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Set;
 
-import javax.servlet.FilterChain;
-import javax.servlet.GenericFilter;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.GenericFilter;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
@@ -44,7 +44,7 @@ import org.apache.tomcat.util.res.StringManager;
 
 /**
  * <p>
- * A {@link javax.servlet.Filter} that enable client-side cross-origin requests
+ * A {@link jakarta.servlet.Filter} that enable client-side cross-origin requests
  * by implementing W3C's CORS (<b>C</b>ross-<b>O</b>rigin <b>R</b>esource
  * <b>S</b>haring) specification for resources. Each {@link HttpServletRequest}
  * request is inspected as per specification, and appropriate response headers
@@ -1071,39 +1071,39 @@ public class CorsFilter extends GenericFilter {
 
     // ----------------------------------------Filter Config Init param-name(s)
     /**
-     * Key to retrieve allowed origins from {@link javax.servlet.FilterConfig}.
+     * Key to retrieve allowed origins from {@link jakarta.servlet.FilterConfig}.
      */
     public static final String PARAM_CORS_ALLOWED_ORIGINS =
             "cors.allowed.origins";
 
     /**
      * Key to retrieve support credentials from
-     * {@link javax.servlet.FilterConfig}.
+     * {@link jakarta.servlet.FilterConfig}.
      */
     public static final String PARAM_CORS_SUPPORT_CREDENTIALS =
             "cors.support.credentials";
 
     /**
-     * Key to retrieve exposed headers from {@link javax.servlet.FilterConfig}.
+     * Key to retrieve exposed headers from {@link jakarta.servlet.FilterConfig}.
      */
     public static final String PARAM_CORS_EXPOSED_HEADERS =
             "cors.exposed.headers";
 
     /**
-     * Key to retrieve allowed headers from {@link javax.servlet.FilterConfig}.
+     * Key to retrieve allowed headers from {@link jakarta.servlet.FilterConfig}.
      */
     public static final String PARAM_CORS_ALLOWED_HEADERS =
             "cors.allowed.headers";
 
     /**
-     * Key to retrieve allowed methods from {@link javax.servlet.FilterConfig}.
+     * Key to retrieve allowed methods from {@link jakarta.servlet.FilterConfig}.
      */
     public static final String PARAM_CORS_ALLOWED_METHODS =
             "cors.allowed.methods";
 
     /**
      * Key to retrieve preflight max age from
-     * {@link javax.servlet.FilterConfig}.
+     * {@link jakarta.servlet.FilterConfig}.
      */
     public static final String PARAM_CORS_PREFLIGHT_MAXAGE =
             "cors.preflight.maxage";
diff --git a/java/org/apache/catalina/filters/CsrfPreventionFilter.java b/java/org/apache/catalina/filters/CsrfPreventionFilter.java
index 621cd6d..f71c888 100644
--- a/java/org/apache/catalina/filters/CsrfPreventionFilter.java
+++ b/java/org/apache/catalina/filters/CsrfPreventionFilter.java
@@ -23,15 +23,15 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Set;
 
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponseWrapper;
+import jakarta.servlet.http.HttpSession;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
diff --git a/java/org/apache/catalina/filters/CsrfPreventionFilterBase.java b/java/org/apache/catalina/filters/CsrfPreventionFilterBase.java
index c0083f0..63702f7 100644
--- a/java/org/apache/catalina/filters/CsrfPreventionFilterBase.java
+++ b/java/org/apache/catalina/filters/CsrfPreventionFilterBase.java
@@ -19,10 +19,10 @@ package org.apache.catalina.filters;
 import java.security.SecureRandom;
 import java.util.Random;
 
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
diff --git a/java/org/apache/catalina/filters/ExpiresFilter.java b/java/org/apache/catalina/filters/ExpiresFilter.java
index 13dfa5e..f3eaf58 100644
--- a/java/org/apache/catalina/filters/ExpiresFilter.java
+++ b/java/org/apache/catalina/filters/ExpiresFilter.java
@@ -30,17 +30,17 @@ import java.util.NoSuchElementException;
 import java.util.StringTokenizer;
 import java.util.regex.Pattern;
 
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.WriteListener;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
-import javax.servlet.http.MappingMatch;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.WriteListener;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponseWrapper;
+import jakarta.servlet.http.MappingMatch;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
diff --git a/java/org/apache/catalina/filters/FailedRequestFilter.java b/java/org/apache/catalina/filters/FailedRequestFilter.java
index 2e504e6..7c62232 100644
--- a/java/org/apache/catalina/filters/FailedRequestFilter.java
+++ b/java/org/apache/catalina/filters/FailedRequestFilter.java
@@ -18,11 +18,11 @@ package org.apache.catalina.filters;
 
 import java.io.IOException;
 
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Globals;
 import org.apache.juli.logging.Log;
diff --git a/java/org/apache/catalina/filters/FilterBase.java b/java/org/apache/catalina/filters/FilterBase.java
index 6513136..9ef6c75 100644
--- a/java/org/apache/catalina/filters/FilterBase.java
+++ b/java/org/apache/catalina/filters/FilterBase.java
@@ -18,9 +18,9 @@ package org.apache.catalina.filters;
 
 import java.util.Enumeration;
 
-import javax.servlet.Filter;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
 
 import org.apache.juli.logging.Log;
 import org.apache.tomcat.util.IntrospectionUtils;
diff --git a/java/org/apache/catalina/filters/HttpHeaderSecurityFilter.java b/java/org/apache/catalina/filters/HttpHeaderSecurityFilter.java
index a41aca5..ddf420a 100644
--- a/java/org/apache/catalina/filters/HttpHeaderSecurityFilter.java
+++ b/java/org/apache/catalina/filters/HttpHeaderSecurityFilter.java
@@ -20,12 +20,12 @@ import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
 
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
diff --git a/java/org/apache/catalina/filters/RemoteAddrFilter.java b/java/org/apache/catalina/filters/RemoteAddrFilter.java
index 1239494..b179426 100644
--- a/java/org/apache/catalina/filters/RemoteAddrFilter.java
+++ b/java/org/apache/catalina/filters/RemoteAddrFilter.java
@@ -18,10 +18,10 @@ package org.apache.catalina.filters;
 
 import java.io.IOException;
 
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
diff --git a/java/org/apache/catalina/filters/RemoteCIDRFilter.java b/java/org/apache/catalina/filters/RemoteCIDRFilter.java
index 01b655d..759da6d 100644
--- a/java/org/apache/catalina/filters/RemoteCIDRFilter.java
+++ b/java/org/apache/catalina/filters/RemoteCIDRFilter.java
@@ -25,11 +25,11 @@ import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.util.NetMask;
 import org.apache.juli.logging.Log;
diff --git a/java/org/apache/catalina/filters/RemoteHostFilter.java b/java/org/apache/catalina/filters/RemoteHostFilter.java
index ec10b53..12318be 100644
--- a/java/org/apache/catalina/filters/RemoteHostFilter.java
+++ b/java/org/apache/catalina/filters/RemoteHostFilter.java
@@ -18,10 +18,10 @@ package org.apache.catalina.filters;
 
 import java.io.IOException;
 
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
diff --git a/java/org/apache/catalina/filters/RemoteIpFilter.java b/java/org/apache/catalina/filters/RemoteIpFilter.java
index 4664a85..7dca413 100644
--- a/java/org/apache/catalina/filters/RemoteIpFilter.java
+++ b/java/org/apache/catalina/filters/RemoteIpFilter.java
@@ -27,16 +27,16 @@ import java.util.List;
 import java.util.Map;
 import java.util.regex.Pattern;
 
-import javax.servlet.FilterChain;
-import javax.servlet.GenericFilter;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletRequestWrapper;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.PushBuilder;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.GenericFilter;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletRequestWrapper;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequestWrapper;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.PushBuilder;
 
 import org.apache.catalina.AccessLog;
 import org.apache.catalina.Globals;
diff --git a/java/org/apache/catalina/filters/RequestDumperFilter.java b/java/org/apache/catalina/filters/RequestDumperFilter.java
index 029e481..aad5956 100644
--- a/java/org/apache/catalina/filters/RequestDumperFilter.java
+++ b/java/org/apache/catalina/filters/RequestDumperFilter.java
@@ -22,14 +22,14 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Enumeration;
 
-import javax.servlet.FilterChain;
-import javax.servlet.GenericFilter;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.GenericFilter;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
diff --git a/java/org/apache/catalina/filters/RequestFilter.java b/java/org/apache/catalina/filters/RequestFilter.java
index a20a768..1fb04cf 100644
--- a/java/org/apache/catalina/filters/RequestFilter.java
+++ b/java/org/apache/catalina/filters/RequestFilter.java
@@ -20,12 +20,12 @@ package org.apache.catalina.filters;
 import java.io.IOException;
 import java.util.regex.Pattern;
 
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 /**
  * Implementation of a Filter that performs filtering based on comparing the
diff --git a/java/org/apache/catalina/filters/RestCsrfPreventionFilter.java b/java/org/apache/catalina/filters/RestCsrfPreventionFilter.java
index 44f5da1..b557ab8 100644
--- a/java/org/apache/catalina/filters/RestCsrfPreventionFilter.java
+++ b/java/org/apache/catalina/filters/RestCsrfPreventionFilter.java
@@ -24,14 +24,14 @@ import java.util.Set;
 import java.util.function.Predicate;
 import java.util.regex.Pattern;
 
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
 
 /**
  * Provides basic CSRF protection for REST APIs. The filter assumes that the
diff --git a/java/org/apache/catalina/filters/SessionInitializerFilter.java b/java/org/apache/catalina/filters/SessionInitializerFilter.java
index dafc288..0e4bc9a 100644
--- a/java/org/apache/catalina/filters/SessionInitializerFilter.java
+++ b/java/org/apache/catalina/filters/SessionInitializerFilter.java
@@ -18,16 +18,16 @@ package org.apache.catalina.filters;
 
 import java.io.IOException;
 
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
 
 /**
- * A {@link javax.servlet.Filter} that initializes the {@link HttpSession} for
+ * A {@link jakarta.servlet.Filter} that initializes the {@link HttpSession} for
  * the {@link HttpServletRequest} by calling its getSession() method.
  * <p>
  * This is required for some operations with WebSocket requests, where it is
diff --git a/java/org/apache/catalina/filters/SetCharacterEncodingFilter.java b/java/org/apache/catalina/filters/SetCharacterEncodingFilter.java
index e196427..e545961 100644
--- a/java/org/apache/catalina/filters/SetCharacterEncodingFilter.java
+++ b/java/org/apache/catalina/filters/SetCharacterEncodingFilter.java
@@ -18,10 +18,10 @@ package org.apache.catalina.filters;
 
 import java.io.IOException;
 
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
diff --git a/java/org/apache/catalina/filters/WebdavFixFilter.java b/java/org/apache/catalina/filters/WebdavFixFilter.java
index e625f2e..9a1f86d 100644
--- a/java/org/apache/catalina/filters/WebdavFixFilter.java
+++ b/java/org/apache/catalina/filters/WebdavFixFilter.java
@@ -18,13 +18,13 @@ package org.apache.catalina.filters;
 
 import java.io.IOException;
 
-import javax.servlet.FilterChain;
-import javax.servlet.GenericFilter;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.GenericFilter;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.tomcat.util.res.StringManager;
 
diff --git a/java/org/apache/catalina/ha/ClusterSession.java b/java/org/apache/catalina/ha/ClusterSession.java
index aa598f8..178e032 100644
--- a/java/org/apache/catalina/ha/ClusterSession.java
+++ b/java/org/apache/catalina/ha/ClusterSession.java
@@ -18,7 +18,7 @@
 
 package org.apache.catalina.ha;
 
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
 
 import org.apache.catalina.Session;
 
diff --git a/java/org/apache/catalina/ha/context/ReplicatedContext.java b/java/org/apache/catalina/ha/context/ReplicatedContext.java
index 97cc656..9a387be 100644
--- a/java/org/apache/catalina/ha/context/ReplicatedContext.java
+++ b/java/org/apache/catalina/ha/context/ReplicatedContext.java
@@ -23,7 +23,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 import org.apache.catalina.Globals;
 import org.apache.catalina.LifecycleException;
diff --git a/java/org/apache/catalina/ha/session/JvmRouteBinderValve.java b/java/org/apache/catalina/ha/session/JvmRouteBinderValve.java
index 7105654..58733fb 100644
--- a/java/org/apache/catalina/ha/session/JvmRouteBinderValve.java
+++ b/java/org/apache/catalina/ha/session/JvmRouteBinderValve.java
@@ -18,7 +18,7 @@ package org.apache.catalina.ha.session;
 
 import java.io.IOException;
 
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
 
 import org.apache.catalina.Cluster;
 import org.apache.catalina.LifecycleException;
diff --git a/java/org/apache/catalina/ha/tcp/ReplicationValve.java b/java/org/apache/catalina/ha/tcp/ReplicationValve.java
index 2f576b9..85e9c1a 100644
--- a/java/org/apache/catalina/ha/tcp/ReplicationValve.java
+++ b/java/org/apache/catalina/ha/tcp/ReplicationValve.java
@@ -24,7 +24,7 @@ import java.util.List;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
 
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
 
 import org.apache.catalina.Cluster;
 import org.apache.catalina.Context;
diff --git a/java/org/apache/catalina/loader/WebappClassLoaderBase.java b/java/org/apache/catalina/loader/WebappClassLoaderBase.java
index 4815ad9..158d5c5 100644
--- a/java/org/apache/catalina/loader/WebappClassLoaderBase.java
+++ b/java/org/apache/catalina/loader/WebappClassLoaderBase.java
@@ -2553,7 +2553,7 @@ public abstract class WebappClassLoaderBase extends URLClassLoader
                 }
             } else if (!isClassName && ch == '/') {
                 /* 8 == length("jakarta/") */
-                if (name.startsWith("servlet/jsp/jstl/", 6)) {
+                if (name.startsWith("servlet/jsp/jstl/", 8)) {
                     return false;
                 }
                 if (name.startsWith("el/", 8) ||
@@ -2571,24 +2571,12 @@ public abstract class WebappClassLoaderBase extends URLClassLoader
             ch = name.charAt(5);
             if (isClassName && ch == '.') {
                 /* 6 == length("javax.") */
-                if (name.startsWith("servlet.jsp.jstl.", 6)) {
-                    return false;
-                }
-                if (name.startsWith("el.", 6) ||
-                    name.startsWith("servlet.", 6) ||
-                    name.startsWith("websocket.", 6) ||
-                    name.startsWith("security.auth.message.", 6)) {
+                if (name.startsWith("websocket.", 6)) {
                     return true;
                 }
             } else if (!isClassName && ch == '/') {
                 /* 6 == length("javax/") */
-                if (name.startsWith("servlet/jsp/jstl/", 6)) {
-                    return false;
-                }
-                if (name.startsWith("el/", 6) ||
-                    name.startsWith("servlet/", 6) ||
-                    name.startsWith("websocket/", 6) ||
-                    name.startsWith("security/auth/message/", 6)) {
+                if (name.startsWith("websocket/", 6)) {
                     return true;
                 }
             }
diff --git a/java/org/apache/catalina/loader/WebappLoader.java b/java/org/apache/catalina/loader/WebappLoader.java
index d967e15..455e657 100644
--- a/java/org/apache/catalina/loader/WebappLoader.java
+++ b/java/org/apache/catalina/loader/WebappLoader.java
@@ -27,7 +27,8 @@ import java.net.URL;
 import java.net.URLClassLoader;
 
 import javax.management.ObjectName;
-import javax.servlet.ServletContext;
+
+import jakarta.servlet.ServletContext;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Globals;
diff --git a/java/org/apache/catalina/manager/DummyProxySession.java b/java/org/apache/catalina/manager/DummyProxySession.java
index cdc282f..1045688 100644
--- a/java/org/apache/catalina/manager/DummyProxySession.java
+++ b/java/org/apache/catalina/manager/DummyProxySession.java
@@ -19,7 +19,7 @@ package org.apache.catalina.manager;
 import java.security.Principal;
 import java.util.Iterator;
 
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
 
 import org.apache.catalina.Manager;
 import org.apache.catalina.Session;
diff --git a/java/org/apache/catalina/manager/HTMLManagerServlet.java b/java/org/apache/catalina/manager/HTMLManagerServlet.java
index 1a55209..ff129f0 100644
--- a/java/org/apache/catalina/manager/HTMLManagerServlet.java
+++ b/java/org/apache/catalina/manager/HTMLManagerServlet.java
@@ -35,11 +35,11 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Set;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.Part;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
+import jakarta.servlet.http.Part;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
@@ -790,7 +790,7 @@ public final class HTMLManagerServlet extends ManagerServlet {
 
 
     /**
-     * @see javax.servlet.Servlet#getServletInfo()
+     * @see jakarta.servlet.Servlet#getServletInfo()
      */
     @Override
     public String getServletInfo() {
@@ -798,7 +798,7 @@ public final class HTMLManagerServlet extends ManagerServlet {
     }
 
     /**
-     * @see javax.servlet.GenericServlet#init()
+     * @see jakarta.servlet.GenericServlet#init()
      */
     @Override
     public void init() throws ServletException {
diff --git a/java/org/apache/catalina/manager/JMXProxyServlet.java b/java/org/apache/catalina/manager/JMXProxyServlet.java
index 30b718e..574933f 100644
--- a/java/org/apache/catalina/manager/JMXProxyServlet.java
+++ b/java/org/apache/catalina/manager/JMXProxyServlet.java
@@ -31,10 +31,11 @@ import javax.management.ObjectName;
 import javax.management.OperationsException;
 import javax.management.ReflectionException;
 import javax.management.openmbean.CompositeData;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.mbeans.MBeanDumper;
 import org.apache.catalina.tribes.util.StringManager;
diff --git a/java/org/apache/catalina/manager/ManagerServlet.java b/java/org/apache/catalina/manager/ManagerServlet.java
index 1e3c7b4..e58955a 100644
--- a/java/org/apache/catalina/manager/ManagerServlet.java
+++ b/java/org/apache/catalina/manager/ManagerServlet.java
@@ -38,13 +38,14 @@ import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
 import javax.naming.Binding;
 import javax.naming.NamingEnumeration;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletInputStream;
-import javax.servlet.UnavailableException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletInputStream;
+import jakarta.servlet.UnavailableException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.ContainerServlet;
diff --git a/java/org/apache/catalina/manager/StatusManagerServlet.java b/java/org/apache/catalina/manager/StatusManagerServlet.java
index 1fc7be2..a022630 100644
--- a/java/org/apache/catalina/manager/StatusManagerServlet.java
+++ b/java/org/apache/catalina/manager/StatusManagerServlet.java
@@ -34,10 +34,11 @@ import javax.management.Notification;
 import javax.management.NotificationListener;
 import javax.management.ObjectInstance;
 import javax.management.ObjectName;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.util.ServerInfo;
 import org.apache.tomcat.util.modeler.Registry;
diff --git a/java/org/apache/catalina/manager/StatusTransformer.java b/java/org/apache/catalina/manager/StatusTransformer.java
index f2649c1..cf546b5 100644
--- a/java/org/apache/catalina/manager/StatusTransformer.java
+++ b/java/org/apache/catalina/manager/StatusTransformer.java
@@ -35,7 +35,8 @@ import java.util.Vector;
 import javax.management.MBeanServer;
 import javax.management.ObjectInstance;
 import javax.management.ObjectName;
-import javax.servlet.http.HttpServletResponse;
+
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.tomcat.util.ExceptionUtils;
 import org.apache.tomcat.util.security.Escape;
diff --git a/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java b/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java
index b9fbc20..fa03b6b 100644
--- a/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java
+++ b/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java
@@ -26,9 +26,9 @@ import java.text.MessageFormat;
 import java.util.Map;
 import java.util.TreeMap;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Host;
diff --git a/java/org/apache/catalina/manager/host/HostManagerServlet.java b/java/org/apache/catalina/manager/host/HostManagerServlet.java
index 7147c03..df9116d 100644
--- a/java/org/apache/catalina/manager/host/HostManagerServlet.java
+++ b/java/org/apache/catalina/manager/host/HostManagerServlet.java
@@ -28,11 +28,12 @@ import java.util.StringTokenizer;
 import javax.management.InstanceNotFoundException;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
-import javax.servlet.ServletException;
-import javax.servlet.UnavailableException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+
+import jakarta.servlet.ServletException;
+import jakarta.servlet.UnavailableException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.ContainerServlet;
diff --git a/java/org/apache/catalina/manager/util/SessionUtils.java b/java/org/apache/catalina/manager/util/SessionUtils.java
index fda10f9..d14deb4 100644
--- a/java/org/apache/catalina/manager/util/SessionUtils.java
+++ b/java/org/apache/catalina/manager/util/SessionUtils.java
@@ -25,7 +25,8 @@ import java.util.List;
 import java.util.Locale;
 
 import javax.security.auth.Subject;
-import javax.servlet.http.HttpSession;
+
+import jakarta.servlet.http.HttpSession;
 
 import org.apache.catalina.Session;
 import org.apache.tomcat.util.ExceptionUtils;
@@ -49,8 +50,8 @@ public class SessionUtils {
      */
     // org.apache.struts.Globals.LOCALE_KEY
     private static final String STRUTS_LOCALE_KEY = "org.apache.struts.action.LOCALE";//$NON-NLS-1$
-    // javax.servlet.jsp.jstl.core.Config.FMT_LOCALE
-    private static final String JSTL_LOCALE_KEY   = "javax.servlet.jsp.jstl.fmt.locale";//$NON-NLS-1$
+    // jakarta.servlet.jsp.jstl.core.Config.FMT_LOCALE
+    private static final String JSTL_LOCALE_KEY   = "jakarta.servlet.jsp.jstl.fmt.locale";//$NON-NLS-1$
     // org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME
     private static final String SPRING_LOCALE_KEY = "org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE";//$NON-NLS-1$
     /**
diff --git a/java/org/apache/catalina/mapper/Mapper.java b/java/org/apache/catalina/mapper/Mapper.java
index a049ba3..a584567 100644
--- a/java/org/apache/catalina/mapper/Mapper.java
+++ b/java/org/apache/catalina/mapper/Mapper.java
@@ -25,7 +25,7 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 
-import javax.servlet.http.MappingMatch;
+import jakarta.servlet.http.MappingMatch;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Host;
diff --git a/java/org/apache/catalina/mapper/MappingData.java b/java/org/apache/catalina/mapper/MappingData.java
index c95c4c2..4480854 100644
--- a/java/org/apache/catalina/mapper/MappingData.java
+++ b/java/org/apache/catalina/mapper/MappingData.java
@@ -17,7 +17,7 @@
 
 package org.apache.catalina.mapper;
 
-import javax.servlet.http.MappingMatch;
+import jakarta.servlet.http.MappingMatch;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Host;
@@ -45,7 +45,7 @@ public class MappingData {
 
     public final MessageBytes redirectPath = MessageBytes.newInstance();
 
-    // Fields used by ApplicationMapping to implement javax.servlet.http.HttpServletMapping
+    // Fields used by ApplicationMapping to implement jakarta.servlet.http.HttpServletMapping
     public MappingMatch matchType = null;
 
     public void recycle() {
diff --git a/java/org/apache/catalina/realm/JAASMemoryLoginModule.java b/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
index 906fb9c..a228003 100644
--- a/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
+++ b/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
@@ -32,7 +32,8 @@ import javax.security.auth.callback.UnsupportedCallbackException;
 import javax.security.auth.login.FailedLoginException;
 import javax.security.auth.login.LoginException;
 import javax.security.auth.spi.LoginModule;
-import javax.servlet.http.HttpServletRequest;
+
+import jakarta.servlet.http.HttpServletRequest;
 
 import org.apache.catalina.CredentialHandler;
 import org.apache.juli.logging.Log;
diff --git a/java/org/apache/catalina/realm/JAASRealm.java b/java/org/apache/catalina/realm/JAASRealm.java
index 767b6f5..26dead7 100644
--- a/java/org/apache/catalina/realm/JAASRealm.java
+++ b/java/org/apache/catalina/realm/JAASRealm.java
@@ -33,7 +33,8 @@ import javax.security.auth.login.CredentialExpiredException;
 import javax.security.auth.login.FailedLoginException;
 import javax.security.auth.login.LoginContext;
 import javax.security.auth.login.LoginException;
-import javax.servlet.http.HttpServletRequest;
+
+import jakarta.servlet.http.HttpServletRequest;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.LifecycleException;
diff --git a/java/org/apache/catalina/realm/RealmBase.java b/java/org/apache/catalina/realm/RealmBase.java
index 3c5b1e7..f3aa8ab 100644
--- a/java/org/apache/catalina/realm/RealmBase.java
+++ b/java/org/apache/catalina/realm/RealmBase.java
@@ -29,8 +29,8 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 
-import javax.servlet.annotation.ServletSecurity.TransportGuarantee;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.annotation.ServletSecurity.TransportGuarantee;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
diff --git a/java/org/apache/catalina/security/SecurityClassLoad.java b/java/org/apache/catalina/security/SecurityClassLoad.java
index 2510424..5db3f69 100644
--- a/java/org/apache/catalina/security/SecurityClassLoad.java
+++ b/java/org/apache/catalina/security/SecurityClassLoad.java
@@ -121,7 +121,7 @@ public final class SecurityClassLoad {
 
 
     private static final void loadJavaxPackage(ClassLoader loader) throws Exception {
-        loader.loadClass("javax.servlet.http.Cookie");
+        loader.loadClass("jakarta.servlet.http.Cookie");
     }
 
 
diff --git a/java/org/apache/catalina/security/SecurityUtil.java b/java/org/apache/catalina/security/SecurityUtil.java
index 4a550ea..d7835c7 100644
--- a/java/org/apache/catalina/security/SecurityUtil.java
+++ b/java/org/apache/catalina/security/SecurityUtil.java
@@ -27,12 +27,13 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 import javax.security.auth.Subject;
-import javax.servlet.Filter;
-import javax.servlet.Servlet;
-import javax.servlet.ServletException;
-import javax.servlet.UnavailableException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+
+import jakarta.servlet.Filter;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.UnavailableException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
 
 import org.apache.catalina.Globals;
 import org.apache.juli.logging.Log;
diff --git a/java/org/apache/catalina/servlets/CGIServlet.java b/java/org/apache/catalina/servlets/CGIServlet.java
index b519497..d4950bc 100644
--- a/java/org/apache/catalina/servlets/CGIServlet.java
+++ b/java/org/apache/catalina/servlets/CGIServlet.java
@@ -39,15 +39,15 @@ import java.util.StringTokenizer;
 import java.util.Vector;
 import java.util.regex.Pattern;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
 
 import org.apache.catalina.util.IOTools;
 import org.apache.juli.logging.Log;
diff --git a/java/org/apache/catalina/servlets/DefaultServlet.java b/java/org/apache/catalina/servlets/DefaultServlet.java
index 2883f5c..1590cb6 100644
--- a/java/org/apache/catalina/servlets/DefaultServlet.java
+++ b/java/org/apache/catalina/servlets/DefaultServlet.java
@@ -46,17 +46,6 @@ import java.util.List;
 import java.util.Locale;
 import java.util.StringTokenizer;
 
-import javax.servlet.DispatcherType;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.ServletResponse;
-import javax.servlet.ServletResponseWrapper;
-import javax.servlet.UnavailableException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
@@ -68,6 +57,18 @@ import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
 
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.ServletResponseWrapper;
+import jakarta.servlet.UnavailableException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+
 import org.apache.catalina.Context;
 import org.apache.catalina.Globals;
 import org.apache.catalina.WebResource;
diff --git a/java/org/apache/catalina/servlets/WebdavServlet.java b/java/org/apache/catalina/servlets/WebdavServlet.java
index 5874488..dd2107d 100644
--- a/java/org/apache/catalina/servlets/WebdavServlet.java
+++ b/java/org/apache/catalina/servlets/WebdavServlet.java
@@ -31,16 +31,17 @@ import java.util.Stack;
 import java.util.TimeZone;
 import java.util.Vector;
 
-import javax.servlet.DispatcherType;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+
 import org.apache.catalina.WebResource;
 import org.apache.catalina.connector.RequestFacade;
 import org.apache.catalina.util.DOMWriter;
diff --git a/java/org/apache/catalina/session/FileStore.java b/java/org/apache/catalina/session/FileStore.java
index 73016ff..02d80b6 100644
--- a/java/org/apache/catalina/session/FileStore.java
+++ b/java/org/apache/catalina/session/FileStore.java
@@ -27,7 +27,7 @@ import java.io.ObjectOutputStream;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Globals;
diff --git a/java/org/apache/catalina/session/StandardManager.java b/java/org/apache/catalina/session/StandardManager.java
index caef4f5..48ed3b2 100644
--- a/java/org/apache/catalina/session/StandardManager.java
+++ b/java/org/apache/catalina/session/StandardManager.java
@@ -31,7 +31,7 @@ import java.security.PrivilegedExceptionAction;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.LifecycleException;
@@ -106,7 +106,7 @@ public class StandardManager extends ManagerBase {
      * A <code>null</code> value indicates that no persistence is desired.
      * If this pathname is relative, it will be resolved against the
      * temporary working directory provided by our context, available via
-     * the <code>javax.servlet.context.tempdir</code> context attribute.
+     * the <code>jakarta.servlet.context.tempdir</code> context attribute.
      */
     protected String pathname = "SESSIONS.ser";
 
diff --git a/java/org/apache/catalina/session/StandardSession.java b/java/org/apache/catalina/session/StandardSession.java
index c8446f9..adfe06f 100644
--- a/java/org/apache/catalina/session/StandardSession.java
+++ b/java/org/apache/catalina/session/StandardSession.java
@@ -39,15 +39,15 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpSessionActivationListener;
-import javax.servlet.http.HttpSessionAttributeListener;
-import javax.servlet.http.HttpSessionBindingEvent;
-import javax.servlet.http.HttpSessionBindingListener;
-import javax.servlet.http.HttpSessionEvent;
-import javax.servlet.http.HttpSessionIdListener;
-import javax.servlet.http.HttpSessionListener;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSessionActivationListener;
+import jakarta.servlet.http.HttpSessionAttributeListener;
+import jakarta.servlet.http.HttpSessionBindingEvent;
+import jakarta.servlet.http.HttpSessionBindingListener;
+import jakarta.servlet.http.HttpSessionEvent;
+import jakarta.servlet.http.HttpSessionIdListener;
+import jakarta.servlet.http.HttpSessionListener;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Globals;
@@ -247,7 +247,7 @@ public class StandardSession implements HttpSession, Session, Serializable {
      */
     @Deprecated
     protected static volatile
-            javax.servlet.http.HttpSessionContext sessionContext = null;
+            jakarta.servlet.http.HttpSessionContext sessionContext = null;
 
 
     /**
@@ -1119,7 +1119,7 @@ public class StandardSession implements HttpSession, Session, Serializable {
      */
     @Override
     @Deprecated
-    public javax.servlet.http.HttpSessionContext getSessionContext() {
+    public jakarta.servlet.http.HttpSessionContext getSessionContext() {
         if (sessionContext == null)
             sessionContext = new StandardSessionContext();
         return sessionContext;
@@ -1854,7 +1854,7 @@ public class StandardSession implements HttpSession, Session, Serializable {
 
 @Deprecated
 final class StandardSessionContext
-        implements javax.servlet.http.HttpSessionContext {
+        implements jakarta.servlet.http.HttpSessionContext {
 
     private static final List<String> emptyString = Collections.emptyList();
 
diff --git a/java/org/apache/catalina/session/StandardSessionFacade.java b/java/org/apache/catalina/session/StandardSessionFacade.java
index fbf4349..04bc3f7 100644
--- a/java/org/apache/catalina/session/StandardSessionFacade.java
+++ b/java/org/apache/catalina/session/StandardSessionFacade.java
@@ -18,8 +18,8 @@ package org.apache.catalina.session;
 
 import java.util.Enumeration;
 
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.http.HttpSession;
 
 /**
  * Facade for the StandardSession object.
@@ -93,7 +93,7 @@ public class StandardSessionFacade implements HttpSession {
      */
     @Override
     @Deprecated
-    public javax.servlet.http.HttpSessionContext getSessionContext() {
+    public jakarta.servlet.http.HttpSessionContext getSessionContext() {
         return session.getSessionContext();
     }
 
diff --git a/java/org/apache/catalina/ssi/ByteArrayServletOutputStream.java b/java/org/apache/catalina/ssi/ByteArrayServletOutputStream.java
index 6769425..fe3802c 100644
--- a/java/org/apache/catalina/ssi/ByteArrayServletOutputStream.java
+++ b/java/org/apache/catalina/ssi/ByteArrayServletOutputStream.java
@@ -19,8 +19,8 @@ package org.apache.catalina.ssi;
 
 import java.io.ByteArrayOutputStream;
 
-import javax.servlet.ServletOutputStream;
-import javax.servlet.WriteListener;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.WriteListener;
 
 
 /**
diff --git a/java/org/apache/catalina/ssi/ResponseIncludeWrapper.java b/java/org/apache/catalina/ssi/ResponseIncludeWrapper.java
index 8831712..023491d 100644
--- a/java/org/apache/catalina/ssi/ResponseIncludeWrapper.java
+++ b/java/org/apache/catalina/ssi/ResponseIncludeWrapper.java
@@ -22,9 +22,9 @@ import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.util.Locale;
 
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponseWrapper;
 
 import org.apache.tomcat.util.http.FastHttpDateFormat;
 
diff --git a/java/org/apache/catalina/ssi/SSIFilter.java b/java/org/apache/catalina/ssi/SSIFilter.java
index 6bad9f3..76630a4 100644
--- a/java/org/apache/catalina/ssi/SSIFilter.java
+++ b/java/org/apache/catalina/ssi/SSIFilter.java
@@ -28,13 +28,13 @@ import java.io.Reader;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import javax.servlet.FilterChain;
-import javax.servlet.GenericFilter;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.GenericFilter;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 /**
  * Filter to process SSI requests within a webpage. Mapped to a content types
  * from within web.xml.
diff --git a/java/org/apache/catalina/ssi/SSIServlet.java b/java/org/apache/catalina/ssi/SSIServlet.java
index a39ed90..296c2fb 100644
--- a/java/org/apache/catalina/ssi/SSIServlet.java
+++ b/java/org/apache/catalina/ssi/SSIServlet.java
@@ -27,11 +27,11 @@ import java.net.URL;
 import java.net.URLConnection;
 import java.util.Locale;
 
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 /**
  * Servlet to process SSI requests within a webpage. Mapped to a path from
  * within web.xml.
diff --git a/java/org/apache/catalina/ssi/SSIServletExternalResolver.java b/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
index fdd995a..09e6b40 100644
--- a/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
+++ b/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
@@ -28,11 +28,11 @@ import java.util.Date;
 import java.util.Enumeration;
 import java.util.Locale;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.connector.Connector;
 import org.apache.catalina.connector.Request;
diff --git a/java/org/apache/catalina/ssi/SSIServletRequestUtil.java b/java/org/apache/catalina/ssi/SSIServletRequestUtil.java
index 9de34b6..1e63ca4 100644
--- a/java/org/apache/catalina/ssi/SSIServletRequestUtil.java
+++ b/java/org/apache/catalina/ssi/SSIServletRequestUtil.java
@@ -16,8 +16,8 @@
  */
 package org.apache.catalina.ssi;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.http.HttpServletRequest;
 
 import org.apache.tomcat.util.http.RequestUtil;
 
diff --git a/java/org/apache/catalina/startup/ContextConfig.java b/java/org/apache/catalina/startup/ContextConfig.java
index 39fb25d..981d519 100644
--- a/java/org/apache/catalina/startup/ContextConfig.java
+++ b/java/org/apache/catalina/startup/ContextConfig.java
@@ -39,11 +39,11 @@ import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
-import javax.servlet.MultipartConfigElement;
-import javax.servlet.ServletContainerInitializer;
-import javax.servlet.ServletContext;
-import javax.servlet.SessionCookieConfig;
-import javax.servlet.annotation.HandlesTypes;
+import jakarta.servlet.MultipartConfigElement;
+import jakarta.servlet.ServletContainerInitializer;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.SessionCookieConfig;
+import jakarta.servlet.annotation.HandlesTypes;
 
 import org.apache.catalina.Authenticator;
 import org.apache.catalina.Container;
@@ -2137,11 +2137,11 @@ public class ContextConfig implements LifecycleListener {
             String className = clazz.getClassName();
             for (AnnotationEntry ae : annotationsEntries) {
                 String type = ae.getAnnotationType();
-                if ("Ljavax/servlet/annotation/WebServlet;".equals(type)) {
+                if ("Ljakarta/servlet/annotation/WebServlet;".equals(type)) {
                     processAnnotationWebServlet(className, ae, fragment);
-                }else if ("Ljavax/servlet/annotation/WebFilter;".equals(type)) {
+                }else if ("Ljakarta/servlet/annotation/WebFilter;".equals(type)) {
                     processAnnotationWebFilter(className, ae, fragment);
-                }else if ("Ljavax/servlet/annotation/WebListener;".equals(type)) {
+                }else if ("Ljakarta/servlet/annotation/WebListener;".equals(type)) {
                     fragment.addListener(className);
                 } else {
                     // Unknown annotation - ignore
diff --git a/java/org/apache/catalina/startup/FailedContext.java b/java/org/apache/catalina/startup/FailedContext.java
index 39d7b8a..b262561 100644
--- a/java/org/apache/catalina/startup/FailedContext.java
+++ b/java/org/apache/catalina/startup/FailedContext.java
@@ -23,12 +23,12 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
-import javax.servlet.ServletContainerInitializer;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletRegistration;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletSecurityElement;
-import javax.servlet.descriptor.JspConfigDescriptor;
+import jakarta.servlet.ServletContainerInitializer;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletRegistration;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletSecurityElement;
+import jakarta.servlet.descriptor.JspConfigDescriptor;
 
 import org.apache.catalina.AccessLog;
 import org.apache.catalina.Authenticator;
diff --git a/java/org/apache/catalina/startup/Tomcat.java b/java/org/apache/catalina/startup/Tomcat.java
index 43693a0..757d896 100644
--- a/java/org/apache/catalina/startup/Tomcat.java
+++ b/java/org/apache/catalina/startup/Tomcat.java
@@ -37,9 +37,9 @@ import java.util.logging.Level;
 import java.util.logging.LogManager;
 import java.util.logging.Logger;
 
-import javax.servlet.Servlet;
-import javax.servlet.ServletException;
-import javax.servlet.annotation.WebServlet;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.annotation.WebServlet;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
@@ -127,7 +127,7 @@ import org.apache.tomcat.util.res.StringManager;
  * default web.xml; rather, they add a {@link LifecycleListener} to configure
  * the defaults. Any WEB-INF/web.xml and META-INF/context.xml packaged with the
  * application will be processed normally. Normal web fragment and
- * {@link javax.servlet.ServletContainerInitializer} processing will be applied.
+ * {@link jakarta.servlet.ServletContainerInitializer} processing will be applied.
  *
  * <p>
  * In complex cases, you may prefer to use the ordinary Tomcat API to create
@@ -235,8 +235,8 @@ public class Tomcat {
      * {@link #setAddDefaultWebXmlToWebapp(boolean)} with {@code false}. Any
      * <code>WEB-INF/web.xml</code> and <code>META-INF/context.xml</code>
      * packaged with the application will always be processed and normal web
-     * fragment and {@link javax.servlet.ServletContainerInitializer} processing
-     * will always be applied.
+     * fragment and {@link jakarta.servlet.ServletContainerInitializer}
+     * processing will always be applied.
      *
      * @param contextPath The context mapping to use, "" for root context.
      * @param docBase     Base directory for the context, for static files. Must
@@ -305,11 +305,11 @@ public class Tomcat {
      * that there is no JSP support (no JSP servlet), no default servlet and
      * no web socket support unless explicitly enabled via the programmatic
      * interface. There is also no
-     * {@link javax.servlet.ServletContainerInitializer} processing and no
+     * {@link jakarta.servlet.ServletContainerInitializer} processing and no
      * annotation processing. If a
-     * {@link javax.servlet.ServletContainerInitializer} is added
+     * {@link jakarta.servlet.ServletContainerInitializer} is added
      * programmatically, there will still be no scanning for
-     * {@link javax.servlet.annotation.HandlesTypes} matches.
+     * {@link jakarta.servlet.annotation.HandlesTypes} matches.
      *
      * <p>
      * API calls equivalent with web.xml:
@@ -693,7 +693,7 @@ public class Tomcat {
      * {@link #setAddDefaultWebXmlToWebapp(boolean)} with {@code false}. Any
      * <code>WEB-INF/web.xml</code> and <code>META-INF/context.xml</code>
      * packaged with the application will always be processed and normal web
-     * fragment and {@link javax.servlet.ServletContainerInitializer} processing
+     * fragment and {@link jakarta.servlet.ServletContainerInitializer} processing
      * will always be applied.
      *
      * @param host        The host in which the context will be deployed
@@ -726,7 +726,7 @@ public class Tomcat {
      * {@link #setAddDefaultWebXmlToWebapp(boolean)} with {@code false}. Any
      * <code>WEB-INF/web.xml</code> and <code>META-INF/context.xml</code>
      * packaged with the application will always be processed and normal web
-     * fragment and {@link javax.servlet.ServletContainerInitializer} processing
+     * fragment and {@link jakarta.servlet.ServletContainerInitializer} processing
      * will always be applied.
      *
      * @param host        The host in which the context will be deployed
@@ -1161,7 +1161,7 @@ public class Tomcat {
         @SuppressWarnings("deprecation")
         public ExistingStandardWrapper( Servlet existing ) {
             this.existing = existing;
-            if (existing instanceof javax.servlet.SingleThreadModel) {
+            if (existing instanceof jakarta.servlet.SingleThreadModel) {
                 singleThreadModel = true;
                 instancePool = new Stack<>();
             }
diff --git a/java/org/apache/catalina/startup/WebAnnotationSet.java b/java/org/apache/catalina/startup/WebAnnotationSet.java
index bbca47d..1a5b138 100644
--- a/java/org/apache/catalina/startup/WebAnnotationSet.java
+++ b/java/org/apache/catalina/startup/WebAnnotationSet.java
@@ -19,13 +19,12 @@ package org.apache.catalina.startup;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 
-import javax.servlet.ServletSecurityElement;
-import javax.servlet.annotation.ServletSecurity;
-
 import jakarta.annotation.Resource;
 import jakarta.annotation.Resources;
 import jakarta.annotation.security.DeclareRoles;
 import jakarta.annotation.security.RunAs;
+import jakarta.servlet.ServletSecurityElement;
+import jakarta.servlet.annotation.ServletSecurity;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
diff --git a/java/org/apache/catalina/startup/WebappServiceLoader.java b/java/org/apache/catalina/startup/WebappServiceLoader.java
index a47a8f9..f0d2465 100644
--- a/java/org/apache/catalina/startup/WebappServiceLoader.java
+++ b/java/org/apache/catalina/startup/WebappServiceLoader.java
@@ -31,7 +31,7 @@ import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.regex.Pattern;
 
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 import org.apache.catalina.Context;
 import org.apache.tomcat.util.scan.JarFactory;
@@ -54,7 +54,7 @@ import org.apache.tomcat.util.scan.JarFactory;
  *
  * @param <T> The type of service to load
  *
- * @see javax.servlet.ServletContainerInitializer
+ * @see jakarta.servlet.ServletContainerInitializer
  * @see java.util.ServiceLoader
  */
 public class WebappServiceLoader<T> {
diff --git a/java/org/apache/catalina/util/RequestUtil.java b/java/org/apache/catalina/util/RequestUtil.java
index ce6ffa7..dfd9ab7 100644
--- a/java/org/apache/catalina/util/RequestUtil.java
+++ b/java/org/apache/catalina/util/RequestUtil.java
@@ -16,7 +16,7 @@
  */
 package org.apache.catalina.util;
 
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
 
 /**
  * General purpose request parsing and encoding utility methods.
@@ -30,7 +30,7 @@ public final class RequestUtil {
      * Build an appropriate return value for
      * {@link HttpServletRequest#getRequestURL()} based on the provided
      * request object. Note that this will also work for instances of
-     * {@link javax.servlet.http.HttpServletRequestWrapper}.
+     * {@link jakarta.servlet.http.HttpServletRequestWrapper}.
      *
      * @param request The request object for which the URL should be built
      *
diff --git a/java/org/apache/catalina/util/SessionConfig.java b/java/org/apache/catalina/util/SessionConfig.java
index 69a0e09..6957285 100644
--- a/java/org/apache/catalina/util/SessionConfig.java
+++ b/java/org/apache/catalina/util/SessionConfig.java
@@ -16,7 +16,7 @@
  */
 package org.apache.catalina.util;
 
-import javax.servlet.SessionCookieConfig;
+import jakarta.servlet.SessionCookieConfig;
 
 import org.apache.catalina.Context;
 
diff --git a/java/org/apache/catalina/valves/AbstractAccessLogValve.java b/java/org/apache/catalina/valves/AbstractAccessLogValve.java
index 9f700e3..1515cfa 100644
--- a/java/org/apache/catalina/valves/AbstractAccessLogValve.java
+++ b/java/org/apache/catalina/valves/AbstractAccessLogValve.java
@@ -32,10 +32,10 @@ import java.util.Map;
 import java.util.TimeZone;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletException;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpSession;
 
 import org.apache.catalina.AccessLog;
 import org.apache.catalina.Globals;
diff --git a/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java b/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java
index da01da8..cfb4677 100644
--- a/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java
+++ b/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java
@@ -23,10 +23,10 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.regex.Pattern;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpSessionBindingEvent;
-import javax.servlet.http.HttpSessionBindingListener;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSessionBindingEvent;
+import jakarta.servlet.http.HttpSessionBindingListener;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Host;
diff --git a/java/org/apache/catalina/valves/ErrorReportValve.java b/java/org/apache/catalina/valves/ErrorReportValve.java
index 5c5c273..007f10f 100644
--- a/java/org/apache/catalina/valves/ErrorReportValve.java
+++ b/java/org/apache/catalina/valves/ErrorReportValve.java
@@ -25,9 +25,9 @@ import java.io.Writer;
 import java.util.Scanner;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.connector.Response;
@@ -329,7 +329,7 @@ public class ErrorReportValve extends ValveBase {
 
     /**
      * Print out a partial servlet stack trace (truncating at the last
-     * occurrence of javax.servlet.).
+     * occurrence of jakarta.servlet.).
      * @param t The stack trace to process
      * @return the stack trace relative to the application layer
      */
diff --git a/java/org/apache/catalina/valves/ExtendedAccessLogValve.java b/java/org/apache/catalina/valves/ExtendedAccessLogValve.java
index fab3dd6..f453760 100644
--- a/java/org/apache/catalina/valves/ExtendedAccessLogValve.java
+++ b/java/org/apache/catalina/valves/ExtendedAccessLogValve.java
@@ -30,8 +30,8 @@ import java.util.List;
 import java.util.Locale;
 import java.util.TimeZone;
 
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpSession;
 
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.connector.Response;
diff --git a/java/org/apache/catalina/valves/HealthCheckValve.java b/java/org/apache/catalina/valves/HealthCheckValve.java
index f8227ac..481e8bc 100644
--- a/java/org/apache/catalina/valves/HealthCheckValve.java
+++ b/java/org/apache/catalina/valves/HealthCheckValve.java
@@ -18,7 +18,7 @@ package org.apache.catalina.valves;
 
 import java.io.IOException;
 
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
 
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.connector.Response;
diff --git a/java/org/apache/catalina/valves/JDBCAccessLogValve.java b/java/org/apache/catalina/valves/JDBCAccessLogValve.java
index 1fecd29..7526962 100644
--- a/java/org/apache/catalina/valves/JDBCAccessLogValve.java
+++ b/java/org/apache/catalina/valves/JDBCAccessLogValve.java
@@ -25,7 +25,7 @@ import java.sql.SQLException;
 import java.sql.Timestamp;
 import java.util.Properties;
 
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
 
 import org.apache.catalina.AccessLog;
 import org.apache.catalina.LifecycleException;
diff --git a/java/org/apache/catalina/valves/LoadBalancerDrainingValve.java b/java/org/apache/catalina/valves/LoadBalancerDrainingValve.java
index 002013b..1d6b8be 100644
--- a/java/org/apache/catalina/valves/LoadBalancerDrainingValve.java
+++ b/java/org/apache/catalina/valves/LoadBalancerDrainingValve.java
@@ -18,9 +18,9 @@ package org.apache.catalina.valves;
 
 import java.io.IOException;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.connector.Response;
diff --git a/java/org/apache/catalina/valves/PersistentValve.java b/java/org/apache/catalina/valves/PersistentValve.java
index 01ec3fe..2da42e7 100644
--- a/java/org/apache/catalina/valves/PersistentValve.java
+++ b/java/org/apache/catalina/valves/PersistentValve.java
@@ -18,8 +18,8 @@ package org.apache.catalina.valves;
 
 import java.io.IOException;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
diff --git a/java/org/apache/catalina/valves/RemoteAddrValve.java b/java/org/apache/catalina/valves/RemoteAddrValve.java
index f340029..66bb6c9 100644
--- a/java/org/apache/catalina/valves/RemoteAddrValve.java
+++ b/java/org/apache/catalina/valves/RemoteAddrValve.java
@@ -19,7 +19,7 @@ package org.apache.catalina.valves;
 
 import java.io.IOException;
 
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
 
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.connector.Response;
diff --git a/java/org/apache/catalina/valves/RemoteCIDRValve.java b/java/org/apache/catalina/valves/RemoteCIDRValve.java
index c29b08d..20a1b74 100644
--- a/java/org/apache/catalina/valves/RemoteCIDRValve.java
+++ b/java/org/apache/catalina/valves/RemoteCIDRValve.java
@@ -24,8 +24,8 @@ import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.connector.Response;
diff --git a/java/org/apache/catalina/valves/RemoteHostValve.java b/java/org/apache/catalina/valves/RemoteHostValve.java
index 90c6b8b..2aec7e4 100644
--- a/java/org/apache/catalina/valves/RemoteHostValve.java
+++ b/java/org/apache/catalina/valves/RemoteHostValve.java
@@ -18,7 +18,7 @@ package org.apache.catalina.valves;
 
 import java.io.IOException;
 
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
 
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.connector.Response;
diff --git a/java/org/apache/catalina/valves/RemoteIpValve.java b/java/org/apache/catalina/valves/RemoteIpValve.java
index ae5bacc..c9a77e5 100644
--- a/java/org/apache/catalina/valves/RemoteIpValve.java
+++ b/java/org/apache/catalina/valves/RemoteIpValve.java
@@ -23,7 +23,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.regex.Pattern;
 
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
 
 import org.apache.catalina.AccessLog;
 import org.apache.catalina.Globals;
@@ -135,14 +135,14 @@ import org.apache.tomcat.util.http.parser.Host;
  * </tr>
  * <tr>
  * <td>httpServerPort</td>
- * <td>Value returned by {@link javax.servlet.ServletRequest#getServerPort()} when the <code>protocolHeader</code> indicates <code>http</code> protocol</td>
+ * <td>Value returned by {@link jakarta.servlet.ServletRequest#getServerPort()} when the <code>protocolHeader</code> indicates <code>http</code> protocol</td>
  * <td>N/A</td>
  * <td>integer</td>
  * <td>80</td>
  * </tr>
  * <tr>
  * <td>httpsServerPort</td>
- * <td>Value returned by {@link javax.servlet.ServletRequest#getServerPort()} when the <code>protocolHeader</code> indicates <code>https</code> protocol</td>
+ * <td>Value returned by {@link jakarta.servlet.ServletRequest#getServerPort()} when the <code>protocolHeader</code> indicates <code>https</code> protocol</td>
  * <td>N/A</td>
  * <td>integer</td>
  * <td>443</td>
diff --git a/java/org/apache/catalina/valves/RequestFilterValve.java b/java/org/apache/catalina/valves/RequestFilterValve.java
index 010d1de..3cff3da 100644
--- a/java/org/apache/catalina/valves/RequestFilterValve.java
+++ b/java/org/apache/catalina/valves/RequestFilterValve.java
@@ -20,8 +20,8 @@ package org.apache.catalina.valves;
 import java.io.IOException;
 import java.util.regex.Pattern;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.LifecycleException;
diff --git a/java/org/apache/catalina/valves/SSLValve.java b/java/org/apache/catalina/valves/SSLValve.java
index 7c92c2e..e2ea6ae 100644
--- a/java/org/apache/catalina/valves/SSLValve.java
+++ b/java/org/apache/catalina/valves/SSLValve.java
@@ -23,7 +23,7 @@ import java.security.NoSuchProviderException;
 import java.security.cert.CertificateFactory;
 import java.security.cert.X509Certificate;
 
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
 
 import org.apache.catalina.Globals;
 import org.apache.catalina.connector.Request;
diff --git a/java/org/apache/catalina/valves/SemaphoreValve.java b/java/org/apache/catalina/valves/SemaphoreValve.java
index 1562758..2f2e6f2 100644
--- a/java/org/apache/catalina/valves/SemaphoreValve.java
+++ b/java/org/apache/catalina/valves/SemaphoreValve.java
@@ -19,7 +19,7 @@ package org.apache.catalina.valves;
 import java.io.IOException;
 import java.util.concurrent.Semaphore;
 
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
 
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.LifecycleState;
diff --git a/java/org/apache/catalina/valves/StuckThreadDetectionValve.java b/java/org/apache/catalina/valves/StuckThreadDetectionValve.java
index ad980af..e1fcb5c 100644
--- a/java/org/apache/catalina/valves/StuckThreadDetectionValve.java
+++ b/java/org/apache/catalina/valves/StuckThreadDetectionValve.java
@@ -28,7 +28,7 @@ import java.util.concurrent.Semaphore;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
 
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
 
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.connector.Request;
diff --git a/java/org/apache/catalina/valves/rewrite/RewriteValve.java b/java/org/apache/catalina/valves/rewrite/RewriteValve.java
index a86d1fd..aa4bb7c 100644
--- a/java/org/apache/catalina/valves/rewrite/RewriteValve.java
+++ b/java/org/apache/catalina/valves/rewrite/RewriteValve.java
@@ -29,9 +29,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.StringTokenizer;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
diff --git a/java/org/apache/catalina/webresources/ExtractingRoot.java b/java/org/apache/catalina/webresources/ExtractingRoot.java
index 32448ad..fce67e0 100644
--- a/java/org/apache/catalina/webresources/ExtractingRoot.java
+++ b/java/org/apache/catalina/webresources/ExtractingRoot.java
@@ -22,7 +22,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.WebResource;
diff --git a/java/org/apache/coyote/AbstractProcessor.java b/java/org/apache/coyote/AbstractProcessor.java
index 3c0c3b9..254950e 100644
--- a/java/org/apache/coyote/AbstractProcessor.java
+++ b/java/org/apache/coyote/AbstractProcessor.java
@@ -23,7 +23,7 @@ import java.util.Iterator;
 import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import javax.servlet.RequestDispatcher;
+import jakarta.servlet.RequestDispatcher;
 
 import org.apache.tomcat.util.ExceptionUtils;
 import org.apache.tomcat.util.buf.ByteChunk;
diff --git a/java/org/apache/coyote/AbstractProtocol.java b/java/org/apache/coyote/AbstractProtocol.java
index b41ad32..2f5f49a 100644
--- a/java/org/apache/coyote/AbstractProtocol.java
+++ b/java/org/apache/coyote/AbstractProtocol.java
@@ -36,8 +36,9 @@ import javax.management.MBeanRegistrationException;
 import javax.management.MBeanServer;
 import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
-import javax.servlet.http.HttpUpgradeHandler;
-import javax.servlet.http.WebConnection;
+
+import jakarta.servlet.http.HttpUpgradeHandler;
+import jakarta.servlet.http.WebConnection;
 
 import org.apache.coyote.http11.upgrade.InternalHttpUpgradeHandler;
 import org.apache.coyote.http11.upgrade.UpgradeProcessorInternal;
diff --git a/java/org/apache/coyote/ActionCode.java b/java/org/apache/coyote/ActionCode.java
index 3ff4c21..12dd23d 100644
--- a/java/org/apache/coyote/ActionCode.java
+++ b/java/org/apache/coyote/ActionCode.java
@@ -125,7 +125,7 @@ public enum ActionCode {
 
     /**
      * Callback for an async call to
-     * {@link javax.servlet.AsyncContext#dispatch()}.
+     * {@link jakarta.servlet.AsyncContext#dispatch()}.
      */
     ASYNC_DISPATCH,
 
@@ -137,13 +137,13 @@ public enum ActionCode {
 
     /**
      * Callback for an async call to
-     * {@link javax.servlet.AsyncContext#start(Runnable)}.
+     * {@link jakarta.servlet.AsyncContext#start(Runnable)}.
      */
     ASYNC_RUN,
 
     /**
      * Callback for an async call to
-     * {@link javax.servlet.AsyncContext#complete()}.
+     * {@link jakarta.servlet.AsyncContext#complete()}.
      */
     ASYNC_COMPLETE,
 
@@ -159,7 +159,7 @@ public enum ActionCode {
 
     /**
      * Callback for an async call to
-     * {@link javax.servlet.AsyncContext#setTimeout(long)}
+     * {@link jakarta.servlet.AsyncContext#setTimeout(long)}
      */
     ASYNC_SETTIMEOUT,
 
diff --git a/java/org/apache/coyote/AsyncContextCallback.java b/java/org/apache/coyote/AsyncContextCallback.java
index c657306..c1d742f 100644
--- a/java/org/apache/coyote/AsyncContextCallback.java
+++ b/java/org/apache/coyote/AsyncContextCallback.java
@@ -18,7 +18,7 @@ package org.apache.coyote;
 
 /**
  * Provides a mechanism for the Coyote connectors to communicate with the
- * {@link javax.servlet.AsyncContext}. It is implemented in this manner so that
+ * {@link jakarta.servlet.AsyncContext}. It is implemented in this manner so that
  * the org.apache.coyote package does not have a dependency on the
  * org.apache.catalina package.
  */
diff --git a/java/org/apache/coyote/Request.java b/java/org/apache/coyote/Request.java
index 01b30bd..deff3f4 100644
--- a/java/org/apache/coyote/Request.java
+++ b/java/org/apache/coyote/Request.java
@@ -23,7 +23,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import javax.servlet.ReadListener;
+import jakarta.servlet.ReadListener;
 
 import org.apache.tomcat.util.buf.B2CConverter;
 import org.apache.tomcat.util.buf.MessageBytes;
diff --git a/java/org/apache/coyote/Response.java b/java/org/apache/coyote/Response.java
index b9f22b7..54a4844 100644
--- a/java/org/apache/coyote/Response.java
+++ b/java/org/apache/coyote/Response.java
@@ -27,7 +27,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Supplier;
 
-import javax.servlet.WriteListener;
+import jakarta.servlet.WriteListener;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
diff --git a/java/org/apache/coyote/UpgradeToken.java b/java/org/apache/coyote/UpgradeToken.java
index cf297fb..729f48a 100644
--- a/java/org/apache/coyote/UpgradeToken.java
+++ b/java/org/apache/coyote/UpgradeToken.java
@@ -17,7 +17,7 @@
 
 package org.apache.coyote;
 
-import javax.servlet.http.HttpUpgradeHandler;
+import jakarta.servlet.http.HttpUpgradeHandler;
 
 import org.apache.tomcat.ContextBind;
 import org.apache.tomcat.InstanceManager;
diff --git a/java/org/apache/coyote/ajp/AjpProcessor.java b/java/org/apache/coyote/ajp/AjpProcessor.java
index a3e628d..01e7d3d 100644
--- a/java/org/apache/coyote/ajp/AjpProcessor.java
+++ b/java/org/apache/coyote/ajp/AjpProcessor.java
@@ -26,7 +26,7 @@ import java.security.NoSuchProviderException;
 import java.security.cert.CertificateFactory;
 import java.security.cert.X509Certificate;
 
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.coyote.AbstractProcessor;
 import org.apache.coyote.ActionCode;
diff --git a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
index 9189b59..3f02a12 100644
--- a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
+++ b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
@@ -27,7 +27,7 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.regex.Pattern;
 
-import javax.servlet.http.HttpUpgradeHandler;
+import jakarta.servlet.http.HttpUpgradeHandler;
 
 import org.apache.coyote.AbstractProtocol;
 import org.apache.coyote.CompressionConfig;
diff --git a/java/org/apache/coyote/http11/Http11Processor.java b/java/org/apache/coyote/http11/Http11Processor.java
index c627f19..5c1e1a0 100644
--- a/java/org/apache/coyote/http11/Http11Processor.java
+++ b/java/org/apache/coyote/http11/Http11Processor.java
@@ -25,7 +25,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.regex.Pattern;
 
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.coyote.AbstractProcessor;
 import org.apache.coyote.ActionCode;
diff --git a/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java b/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
index e7d3453..c852e5b 100644
--- a/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
+++ b/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
@@ -16,7 +16,7 @@
  */
 package org.apache.coyote.http11.upgrade;
 
-import javax.servlet.http.HttpUpgradeHandler;
+import jakarta.servlet.http.HttpUpgradeHandler;
 
 import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState;
 import org.apache.tomcat.util.net.SSLSupport;
diff --git a/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java b/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java
index a307299..01923d7 100644
--- a/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java
+++ b/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java
@@ -19,7 +19,7 @@ package org.apache.coyote.http11.upgrade;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 
-import javax.servlet.http.WebConnection;
+import jakarta.servlet.http.WebConnection;
 
 import org.apache.coyote.AbstractProcessorLight;
 import org.apache.coyote.Request;
diff --git a/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java b/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java
index 75d074e..332102b 100644
--- a/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java
+++ b/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java
@@ -18,8 +18,8 @@ package org.apache.coyote.http11.upgrade;
 
 import java.io.IOException;
 
-import javax.servlet.ServletInputStream;
-import javax.servlet.ServletOutputStream;
+import jakarta.servlet.ServletInputStream;
+import jakarta.servlet.ServletOutputStream;
 
 import org.apache.coyote.UpgradeToken;
 import org.apache.juli.logging.Log;
diff --git a/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java b/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java
index 0e99265..99fbdb7 100644
--- a/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java
+++ b/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java
@@ -18,8 +18,8 @@ package org.apache.coyote.http11.upgrade;
 
 import java.io.IOException;
 
-import javax.servlet.ServletInputStream;
-import javax.servlet.ServletOutputStream;
+import jakarta.servlet.ServletInputStream;
+import jakarta.servlet.ServletOutputStream;
 
 import org.apache.coyote.UpgradeToken;
 import org.apache.juli.logging.Log;
diff --git a/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java b/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java
index 1c1ddb6..10b5527 100644
--- a/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java
+++ b/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java
@@ -18,8 +18,8 @@ package org.apache.coyote.http11.upgrade;
 
 import java.io.IOException;
 
-import javax.servlet.ReadListener;
-import javax.servlet.ServletInputStream;
+import jakarta.servlet.ReadListener;
+import jakarta.servlet.ServletInputStream;
 
 import org.apache.coyote.ContainerThreadMarker;
 import org.apache.juli.logging.Log;
diff --git a/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java b/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java
index 3de8096..c178e7e 100644
--- a/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java
+++ b/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java
@@ -18,8 +18,8 @@ package org.apache.coyote.http11.upgrade;
 
 import java.io.IOException;
 
-import javax.servlet.ServletOutputStream;
-import javax.servlet.WriteListener;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.WriteListener;
 
 import org.apache.coyote.ContainerThreadMarker;
 import org.apache.juli.logging.Log;
diff --git a/java/org/apache/coyote/http2/Http2AsyncParser.java b/java/org/apache/coyote/http2/Http2AsyncParser.java
index 827105a..5267421 100644
--- a/java/org/apache/coyote/http2/Http2AsyncParser.java
+++ b/java/org/apache/coyote/http2/Http2AsyncParser.java
@@ -21,7 +21,7 @@ import java.nio.ByteBuffer;
 import java.nio.channels.CompletionHandler;
 import java.util.concurrent.TimeUnit;
 
-import javax.servlet.http.WebConnection;
+import jakarta.servlet.http.WebConnection;
 
 import org.apache.coyote.ProtocolException;
 import org.apache.tomcat.util.net.SocketEvent;
diff --git a/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java b/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java
index 545292f..3d17d98 100644
--- a/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java
+++ b/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java
@@ -26,7 +26,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
-import javax.servlet.http.WebConnection;
+import jakarta.servlet.http.WebConnection;
 
 import org.apache.coyote.Adapter;
 import org.apache.coyote.ProtocolException;
diff --git a/java/org/apache/coyote/http2/Http2Parser.java b/java/org/apache/coyote/http2/Http2Parser.java
index d6bdf0d..e2b7c5b 100644
--- a/java/org/apache/coyote/http2/Http2Parser.java
+++ b/java/org/apache/coyote/http2/Http2Parser.java
@@ -20,7 +20,7 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.charset.StandardCharsets;
 
-import javax.servlet.http.WebConnection;
+import jakarta.servlet.http.WebConnection;
 
 import org.apache.coyote.ProtocolException;
 import org.apache.coyote.http2.HpackDecoder.HeaderEmitter;
diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
index e0f3dde..f168819 100644
--- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java
+++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
@@ -33,7 +33,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.atomic.AtomicReference;
 
-import javax.servlet.http.WebConnection;
+import jakarta.servlet.http.WebConnection;
 
 import org.apache.coyote.Adapter;
 import org.apache.coyote.CloseNowException;
diff --git a/java/org/apache/jasper/Constants.java b/java/org/apache/jasper/Constants.java
index ebb5fa0..73e3bf2 100644
--- a/java/org/apache/jasper/Constants.java
+++ b/java/org/apache/jasper/Constants.java
@@ -49,9 +49,9 @@ public class Constants {
      * generated code.
      */
     private static final String[] PRIVATE_STANDARD_IMPORTS = {
-        "javax.servlet.*",
-        "javax.servlet.http.*",
-        "javax.servlet.jsp.*"
+        "jakarta.servlet.*",
+        "jakarta.servlet.http.*",
+        "jakarta.servlet.jsp.*"
     };
     public static final List<String> STANDARD_IMPORTS =
         Collections.unmodifiableList(Arrays.asList(PRIVATE_STANDARD_IMPORTS));
diff --git a/java/org/apache/jasper/EmbeddedServletOptions.java b/java/org/apache/jasper/EmbeddedServletOptions.java
index 3129cdb..bab6ae3 100644
--- a/java/org/apache/jasper/EmbeddedServletOptions.java
+++ b/java/org/apache/jasper/EmbeddedServletOptions.java
@@ -22,9 +22,9 @@ import java.util.Enumeration;
 import java.util.Map;
 import java.util.Properties;
 
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.jsp.tagext.TagLibraryInfo;
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.jsp.tagext.TagLibraryInfo;
 
 import org.apache.jasper.compiler.JspConfig;
 import org.apache.jasper.compiler.Localizer;
@@ -662,7 +662,7 @@ public final class EmbeddedServletOptions implements Options {
         if (dir != null) {
             scratchDir = new File(dir);
         } else {
-            // First try the Servlet 2.2 javax.servlet.context.tempdir property
+            // First try the Servlet 2.2 jakarta.servlet.context.tempdir property
             scratchDir = (File) context.getAttribute(ServletContext.TEMPDIR);
             if (scratchDir == null) {
                 // Not running in a Servlet 2.2 container.
diff --git a/java/org/apache/jasper/JasperException.java b/java/org/apache/jasper/JasperException.java
index 2d37eb3..8c36a6a 100644
--- a/java/org/apache/jasper/JasperException.java
+++ b/java/org/apache/jasper/JasperException.java
@@ -23,7 +23,7 @@ package org.apache.jasper;
  *
  * @author Anil K. Vijendran
  */
-public class JasperException extends javax.servlet.ServletException {
+public class JasperException extends jakarta.servlet.ServletException {
 
     private static final long serialVersionUID = 1L;
 
diff --git a/java/org/apache/jasper/JspC.java b/java/org/apache/jasper/JspC.java
index bfd1021..6bbb1b3 100644
--- a/java/org/apache/jasper/JspC.java
+++ b/java/org/apache/jasper/JspC.java
@@ -45,8 +45,8 @@ import java.util.concurrent.ExecutorCompletionService;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
-import javax.servlet.jsp.JspFactory;
-import javax.servlet.jsp.tagext.TagLibraryInfo;
+import jakarta.servlet.jsp.JspFactory;
+import jakarta.servlet.jsp.tagext.TagLibraryInfo;
 
 import org.apache.jasper.compiler.Compiler;
 import org.apache.jasper.compiler.JspConfig;
diff --git a/java/org/apache/jasper/JspCompilationContext.java b/java/org/apache/jasper/JspCompilationContext.java
index 16b1076..97579fd 100644
--- a/java/org/apache/jasper/JspCompilationContext.java
+++ b/java/org/apache/jasper/JspCompilationContext.java
@@ -27,8 +27,8 @@ import java.net.URLConnection;
 import java.util.Set;
 import java.util.jar.JarEntry;
 
-import javax.servlet.ServletContext;
-import javax.servlet.jsp.tagext.TagInfo;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.jsp.tagext.TagInfo;
 
 import org.apache.jasper.compiler.Compiler;
 import org.apache.jasper.compiler.JspRuntimeContext;
diff --git a/java/org/apache/jasper/Options.java b/java/org/apache/jasper/Options.java
index 9d0fbf9..c433afc 100644
--- a/java/org/apache/jasper/Options.java
+++ b/java/org/apache/jasper/Options.java
@@ -19,7 +19,7 @@ package org.apache.jasper;
 import java.io.File;
 import java.util.Map;
 
-import javax.servlet.jsp.tagext.TagLibraryInfo;
+import jakarta.servlet.jsp.tagext.TagLibraryInfo;
 
 import org.apache.jasper.compiler.JspConfig;
 import org.apache.jasper.compiler.TagPluginManager;
diff --git a/java/org/apache/jasper/compiler/ELFunctionMapper.java b/java/org/apache/jasper/compiler/ELFunctionMapper.java
index f4f01e0..37fd5b5 100644
--- a/java/org/apache/jasper/compiler/ELFunctionMapper.java
+++ b/java/org/apache/jasper/compiler/ELFunctionMapper.java
@@ -26,7 +26,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.servlet.jsp.tagext.FunctionInfo;
+import jakarta.servlet.jsp.tagext.FunctionInfo;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.JasperException;
diff --git a/java/org/apache/jasper/compiler/ELInterpreter.java b/java/org/apache/jasper/compiler/ELInterpreter.java
index 377cf6d..0bff249 100644
--- a/java/org/apache/jasper/compiler/ELInterpreter.java
+++ b/java/org/apache/jasper/compiler/ELInterpreter.java
@@ -30,7 +30,7 @@ public interface ELInterpreter {
      * Returns the string representing the code that will be inserted into the
      * servlet generated for JSP. The default implementation creates a call to
      * {@link org.apache.jasper.runtime.PageContextImpl#proprietaryEvaluate(
-     * String, Class, javax.servlet.jsp.PageContext,
+     * String, Class, jakarta.servlet.jsp.PageContext,
      * org.apache.jasper.runtime.ProtectedFunctionMapper)} but other
      * implementations may produce more optimised code.
      * @param context The compilation context
diff --git a/java/org/apache/jasper/compiler/ELInterpreterFactory.java b/java/org/apache/jasper/compiler/ELInterpreterFactory.java
index fa598a4..efadcab 100644
--- a/java/org/apache/jasper/compiler/ELInterpreterFactory.java
+++ b/java/org/apache/jasper/compiler/ELInterpreterFactory.java
@@ -16,7 +16,7 @@
  */
 package org.apache.jasper.compiler;
 
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 import org.apache.jasper.JspCompilationContext;
 
diff --git a/java/org/apache/jasper/compiler/ELNode.java b/java/org/apache/jasper/compiler/ELNode.java
index 6051456..529df57 100644
--- a/java/org/apache/jasper/compiler/ELNode.java
+++ b/java/org/apache/jasper/compiler/ELNode.java
@@ -21,7 +21,7 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
-import javax.servlet.jsp.tagext.FunctionInfo;
+import jakarta.servlet.jsp.tagext.FunctionInfo;
 
 import org.apache.jasper.JasperException;
 
diff --git a/java/org/apache/jasper/compiler/Generator.java b/java/org/apache/jasper/compiler/Generator.java
index f156d18..b0b03f2 100644
--- a/java/org/apache/jasper/compiler/Generator.java
+++ b/java/org/apache/jasper/compiler/Generator.java
@@ -41,13 +41,12 @@ import java.util.Set;
 import java.util.TimeZone;
 import java.util.Vector;
 
-import javax.servlet.jsp.tagext.TagAttributeInfo;
-import javax.servlet.jsp.tagext.TagInfo;
-import javax.servlet.jsp.tagext.TagVariableInfo;
-import javax.servlet.jsp.tagext.VariableInfo;
-
 import jakarta.el.MethodExpression;
 import jakarta.el.ValueExpression;
+import jakarta.servlet.jsp.tagext.TagAttributeInfo;
+import jakarta.servlet.jsp.tagext.TagInfo;
+import jakarta.servlet.jsp.tagext.TagVariableInfo;
+import jakarta.servlet.jsp.tagext.VariableInfo;
 
 import org.apache.el.util.JreCompat;
 import org.apache.jasper.Constants;
@@ -503,7 +502,7 @@ class Generator {
     private void generateInit() {
 
         if (ctxt.isTagFile()) {
-            out.printil("private void _jspInit(javax.servlet.ServletConfig config) {");
+            out.printil("private void _jspInit(jakarta.servlet.ServletConfig config) {");
         } else {
             out.printil("public void _jspInit() {");
         }
@@ -588,8 +587,8 @@ class Generator {
      * preamble generation)
      */
     private void genPreambleStaticInitializers() {
-        out.printil("private static final javax.servlet.jsp.JspFactory _jspxFactory =");
-        out.printil("        javax.servlet.jsp.JspFactory.getDefaultFactory();");
+        out.printil("private static final jakarta.servlet.jsp.JspFactory _jspxFactory =");
+        out.printil("        jakarta.servlet.jsp.JspFactory.getDefaultFactory();");
         out.println();
 
         // Static data for getDependants()
@@ -746,7 +745,7 @@ class Generator {
         out.printin("                 org.apache.jasper.runtime.JspSourceImports");
         if (!pageInfo.isThreadSafe()) {
             out.println(",");
-            out.printin("                 javax.servlet.SingleThreadModel");
+            out.printin("                 jakarta.servlet.SingleThreadModel");
         }
         out.println(" {");
         out.pushIndent();
@@ -766,16 +765,16 @@ class Generator {
         // Now the service method
         out.printin("public void ");
         out.print(serviceMethodName);
-        out.println("(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)");
+        out.println("(final jakarta.servlet.http.HttpServletRequest request, final jakarta.servlet.http.HttpServletResponse response)");
         out.pushIndent();
         out.pushIndent();
-        out.printil("throws java.io.IOException, javax.servlet.ServletException {");
+        out.printil("throws java.io.IOException, jakarta.servlet.ServletException {");
         out.popIndent();
         out.println();
 
         // Method check
         if (!pageInfo.isErrorPage()) {
-            out.printil("if (!javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {");
+            out.printil("if (!jakarta.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {");
             out.pushIndent();
             out.printil("final java.lang.String _jspx_method = request.getMethod();");
             out.printil("if (\"OPTIONS\".equals(_jspx_method)) {");
@@ -798,27 +797,27 @@ class Generator {
         }
 
         // Local variable declarations
-        out.printil("final javax.servlet.jsp.PageContext pageContext;");
+        out.printil("final jakarta.servlet.jsp.PageContext pageContext;");
 
         if (pageInfo.isSession())
-            out.printil("javax.servlet.http.HttpSession session = null;");
+            out.printil("jakarta.servlet.http.HttpSession session = null;");
 
         if (pageInfo.isErrorPage()) {
             out.printil("java.lang.Throwable exception = org.apache.jasper.runtime.JspRuntimeLibrary.getThrowable(request);");
             out.printil("if (exception != null) {");
             out.pushIndent();
-            out.printil("response.setStatus(javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);");
+            out.printil("response.setStatus(jakarta.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);");
             out.popIndent();
             out.printil("}");
         }
 
-        out.printil("final javax.servlet.ServletContext application;");
-        out.printil("final javax.servlet.ServletConfig config;");
-        out.printil("javax.servlet.jsp.JspWriter out = null;");
+        out.printil("final jakarta.servlet.ServletContext application;");
+        out.printil("final jakarta.servlet.ServletConfig config;");
+        out.printil("jakarta.servlet.jsp.JspWriter out = null;");
         out.printil("final java.lang.Object page = this;");
 
-        out.printil("javax.servlet.jsp.JspWriter _jspx_out = null;");
-        out.printil("javax.servlet.jsp.PageContext _jspx_page_context = null;");
+        out.printil("jakarta.servlet.jsp.JspWriter _jspx_out = null;");
+        out.printil("jakarta.servlet.jsp.PageContext _jspx_page_context = null;");
         out.println();
 
         declareTemporaryScriptingVars(page);
@@ -1202,7 +1201,7 @@ class Generator {
             printParams(n, pageParam, page.isLiteral());
             out.println(");");
             if (isTagFile || isFragment) {
-                out.printil("throw new javax.servlet.jsp.SkipPageException();");
+                out.printil("throw new jakarta.servlet.jsp.SkipPageException();");
             } else {
                 out.printil((methodNesting > 0) ? "return true;" : "return;");
             }
@@ -1404,16 +1403,16 @@ class Generator {
 
             // JSP.5.1, Semantics, para 1 - lock not required for request or
             // page scope
-            String scopename = "javax.servlet.jsp.PageContext.PAGE_SCOPE"; // Default to page
+            String scopename = "jakarta.servlet.jsp.PageContext.PAGE_SCOPE"; // Default to page
             String lock = null;
 
             if ("request".equals(scope)) {
-                scopename = "javax.servlet.jsp.PageContext.REQUEST_SCOPE";
+                scopename = "jakarta.servlet.jsp.PageContext.REQUEST_SCOPE";
             } else if ("session".equals(scope)) {
-                scopename = "javax.servlet.jsp.PageContext.SESSION_SCOPE";
+                scopename = "jakarta.servlet.jsp.PageContext.SESSION_SCOPE";
                 lock = "session";
             } else if ("application".equals(scope)) {
-                scopename = "javax.servlet.jsp.PageContext.APPLICATION_SCOPE";
+                scopename = "jakarta.servlet.jsp.PageContext.APPLICATION_SCOPE";
                 lock = "application";
             }
 
@@ -1499,7 +1498,7 @@ class Generator {
                     out.popIndent();
                     out.printil("} catch (java.lang.Exception exc) {");
                     out.pushIndent();
-                    out.printin("throw new javax.servlet.ServletException(");
+                    out.printin("throw new jakarta.servlet.ServletException(");
                     out.print("\"Cannot create bean of class \" + ");
                     out.print(binaryName);
                     out.println(", exc);");
@@ -1854,11 +1853,11 @@ class Generator {
                 out.print(tagMethod);
                 out.print("(");
                 if (parent != null) {
-                    out.print("javax.servlet.jsp.tagext.JspTag ");
+                    out.print("jakarta.servlet.jsp.tagext.JspTag ");
                     out.print(parent);
                     out.print(", ");
                 }
-                out.print("javax.servlet.jsp.PageContext _jspx_page_context");
+                out.print("jakarta.servlet.jsp.PageContext _jspx_page_context");
                 if (pushBodyCountVar != null) {
                     out.print(", int[] ");
                     out.print(pushBodyCountVar);
@@ -1869,9 +1868,9 @@ class Generator {
 
                 // Initialize local variables used in this method.
                 if (!isTagFile) {
-                    out.printil("javax.servlet.jsp.PageContext pageContext = _jspx_page_context;");
+                    out.printil("jakarta.servlet.jsp.PageContext pageContext = _jspx_page_context;");
                 }
-                out.printil("javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut();");
+                out.printil("jakarta.servlet.jsp.JspWriter out = _jspx_page_context.getOut();");
                 generateLocalVariables(out, n);
             }
 
@@ -2333,7 +2332,7 @@ class Generator {
             }
 
             // Restore EL context
-            out.printil("jspContext.getELContext().putContext(javax.servlet.jsp.JspContext.class,getJspContext());");
+            out.printil("jspContext.getELContext().putContext(jakarta.servlet.jsp.JspContext.class,getJspContext());");
 
             n.setEndJavaLine(out.getJavaLine());
         }
@@ -2442,7 +2441,7 @@ class Generator {
             if (!n.hasEmptyBody()) {
                 out.printin("if (");
                 out.print(tagEvalVar);
-                out.println(" != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {");
+                out.println(" != jakarta.servlet.jsp.tagext.Tag.SKIP_BODY) {");
                 out.pushIndent();
 
                 // Declare NESTED scripting variables
@@ -2452,7 +2451,7 @@ class Generator {
                 if (n.implementsBodyTag()) {
                     out.printin("if (");
                     out.print(tagEvalVar);
-                    out.println(" != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {");
+                    out.println(" != jakarta.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {");
                     // Assume EVAL_BODY_BUFFERED
                     out.pushIndent();
                     if (n.implementsTryCatchFinally()) {
@@ -2529,7 +2528,7 @@ class Generator {
                     syncScriptingVars(n, VariableInfo.AT_BEGIN);
                     syncScriptingVars(n, VariableInfo.NESTED);
 
-                    out.printil("if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)");
+                    out.printil("if (evalDoAfterBody != jakarta.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)");
                     out.pushIndent();
                     out.printil("break;");
                     out.popIndent();
@@ -2543,7 +2542,7 @@ class Generator {
                 if (n.implementsBodyTag()) {
                     out.printin("if (");
                     out.print(tagEvalVar);
-                    out.println(" != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {");
+                    out.println(" != jakarta.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {");
                     out.pushIndent();
                     out.printil("out = _jspx_page_context.popBody();");
                     if (n.implementsTryCatchFinally()) {
@@ -2563,10 +2562,10 @@ class Generator {
 
             out.printin("if (");
             out.print(tagHandlerVar);
-            out.println(".doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {");
+            out.println(".doEndTag() == jakarta.servlet.jsp.tagext.Tag.SKIP_PAGE) {");
             out.pushIndent();
             if (isTagFile || isFragment) {
-                out.printil("throw new javax.servlet.jsp.SkipPageException();");
+                out.printil("throw new jakarta.servlet.jsp.SkipPageException();");
             } else {
                 out.printil((methodNesting > 0) ? "return true;" : "return;");
             }
@@ -3200,19 +3199,19 @@ class Generator {
             if (isTagFile && parent == null) {
                 out.printin(tagHandlerVar);
                 out.print(".setParent(");
-                out.print("new javax.servlet.jsp.tagext.TagAdapter(");
-                out.print("(javax.servlet.jsp.tagext.SimpleTag) this ));");
+                out.print("new jakarta.servlet.jsp.tagext.TagAdapter(");
+                out.print("(jakarta.servlet.jsp.tagext.SimpleTag) this ));");
             } else if (!simpleTag) {
                 out.printin(tagHandlerVar);
                 out.print(".setParent(");
                 if (parent != null) {
                     if (isSimpleTagParent) {
-                        out.print("new javax.servlet.jsp.tagext.TagAdapter(");
-                        out.print("(javax.servlet.jsp.tagext.SimpleTag) ");
+                        out.print("new jakarta.servlet.jsp.tagext.TagAdapter(");
+                        out.print("(jakarta.servlet.jsp.tagext.SimpleTag) ");
                         out.print(parent);
                         out.println("));");
                     } else {
-                        out.print("(javax.servlet.jsp.tagext.Tag) ");
+                        out.print("(jakarta.servlet.jsp.tagext.Tag) ");
                         out.print(parent);
                         out.println(");");
                     }
@@ -3354,14 +3353,14 @@ class Generator {
          * scope constant.
          */
         private String getScopeConstant(String scope) {
-            String scopeName = "javax.servlet.jsp.PageContext.PAGE_SCOPE"; // Default to page
+            String scopeName = "jakarta.servlet.jsp.PageContext.PAGE_SCOPE"; // Default to page
 
             if ("request".equals(scope)) {
-                scopeName = "javax.servlet.jsp.PageContext.REQUEST_SCOPE";
+                scopeName = "jakarta.servlet.jsp.PageContext.REQUEST_SCOPE";
             } else if ("session".equals(scope)) {
-                scopeName = "javax.servlet.jsp.PageContext.SESSION_SCOPE";
+                scopeName = "jakarta.servlet.jsp.PageContext.SESSION_SCOPE";
             } else if ("application".equals(scope)) {
-                scopeName = "javax.servlet.jsp.PageContext.APPLICATION_SCOPE";
+                scopeName = "jakarta.servlet.jsp.PageContext.APPLICATION_SCOPE";
             }
 
             return scopeName;
@@ -3450,7 +3449,7 @@ class Generator {
                     out.printil("out = _jspx_page_context.pushBody();");
                     visitBody(n);
                     out.printil("java.lang.String " + varName + " = "
-                            + "((javax.servlet.jsp.tagext.BodyContent)"
+                            + "((jakarta.servlet.jsp.tagext.BodyContent)"
                             + "out).getString();");
                     out.printil("out = _jspx_page_context.popBody();");
                 }
@@ -3480,7 +3479,7 @@ class Generator {
                 String tagHandlerVar) throws JasperException {
             String varName = n.getTemporaryVariableName();
 
-            out.printin("javax.servlet.jsp.tagext.JspFragment " + varName
+            out.printin("jakarta.servlet.jsp.tagext.JspFragment " + varName
                     + " = ");
             generateJspFragment(n, tagHandlerVar);
             out.println(";");
@@ -3503,15 +3502,15 @@ class Generator {
         }
 
         if (ci.hasUseBean()) {
-            out.printil("javax.servlet.http.HttpSession session = _jspx_page_context.getSession();");
-            out.printil("javax.servlet.ServletContext application = _jspx_page_context.getServletContext();");
+            out.printil("jakarta.servlet.http.HttpSession session = _jspx_page_context.getSession();");
+            out.printil("jakarta.servlet.ServletContext application = _jspx_page_context.getServletContext();");
         }
         if (ci.hasUseBean() || ci.hasIncludeAction() || ci.hasSetProperty()
                 || ci.hasParamAction()) {
-            out.printil("javax.servlet.http.HttpServletRequest request = (javax.servlet.http.HttpServletRequest)_jspx_page_context.getRequest();");
+            out.printil("jakarta.servlet.http.HttpServletRequest request = (jakarta.servlet.http.HttpServletRequest)_jspx_page_context.getRequest();");
         }
         if (ci.hasIncludeAction()) {
-            out.printil("javax.servlet.http.HttpServletResponse response = (javax.servlet.http.HttpServletResponse)_jspx_page_context.getResponse();");
+            out.printil("jakarta.servlet.http.HttpServletResponse response = (jakarta.servlet.http.HttpServletResponse)_jspx_page_context.getResponse();");
         }
     }
 
@@ -3550,7 +3549,7 @@ class Generator {
         out.popIndent();
         out.printil("} catch (java.lang.Throwable t) {");
         out.pushIndent();
-        out.printil("if (!(t instanceof javax.servlet.jsp.SkipPageException)){");
+        out.printil("if (!(t instanceof jakarta.servlet.jsp.SkipPageException)){");
         out.pushIndent();
         out.printil("out = _jspx_out;");
         out.printil("if (out != null && out.getBufferSize() != 0)");
@@ -3713,13 +3712,13 @@ class Generator {
         // Generate class declaration
         out.printin("public final class ");
         out.println(className);
-        out.printil("    extends javax.servlet.jsp.tagext.SimpleTagSupport");
+        out.printil("    extends jakarta.servlet.jsp.tagext.SimpleTagSupport");
         out.printin("    implements org.apache.jasper.runtime.JspSourceDependent,");
         out.println();
         out.printin("                 org.apache.jasper.runtime.JspSourceImports");
         if (tagInfo.hasDynamicAttributes()) {
             out.println(",");
-            out.printin("               javax.servlet.jsp.tagext.DynamicAttributes");
+            out.printin("               jakarta.servlet.jsp.tagext.DynamicAttributes");
         }
         out.println(" {");
         out.pushIndent();
@@ -3732,7 +3731,7 @@ class Generator {
         // Static initializations here
         genPreambleStaticInitializers();
 
-        out.printil("private javax.servlet.jsp.JspContext jspContext;");
+        out.printil("private jakarta.servlet.jsp.JspContext jspContext;");
 
         // Declare writer used for storing result of fragment/body invocation
         // if 'varReader' or 'var' attribute is specified
@@ -3752,7 +3751,7 @@ class Generator {
         genPreambleMethods();
 
         // Now the doTag() method
-        out.printil("public void doTag() throws javax.servlet.jsp.JspException, java.io.IOException {");
+        out.printil("public void doTag() throws jakarta.servlet.jsp.JspException, java.io.IOException {");
 
         if (ctxt.isPrototypeMode()) {
             out.printil("}");
@@ -3768,21 +3767,21 @@ class Generator {
          * implicit object in tag files. Declare _jspx_page_context, so we can
          * share the code generator with JSPs.
          */
-        out.printil("javax.servlet.jsp.PageContext _jspx_page_context = (javax.servlet.jsp.PageContext)jspContext;");
+        out.printil("jakarta.servlet.jsp.PageContext _jspx_page_context = (jakarta.servlet.jsp.PageContext)jspContext;");
 
         // Declare implicit objects.
-        out.printil("javax.servlet.http.HttpServletRequest request = "
-                + "(javax.servlet.http.HttpServletRequest) _jspx_page_context.getRequest();");
-        out.printil("javax.servlet.http.HttpServletResponse response = "
-                + "(javax.servlet.http.HttpServletResponse) _jspx_page_context.getResponse();");
-        out.printil("javax.servlet.http.HttpSession session = _jspx_page_context.getSession();");
-        out.printil("javax.servlet.ServletContext application = _jspx_page_context.getServletContext();");
-        out.printil("javax.servlet.ServletConfig config = _jspx_page_context.getServletConfig();");
-        out.printil("javax.servlet.jsp.JspWriter out = jspContext.getOut();");
+        out.printil("jakarta.servlet.http.HttpServletRequest request = "
+                + "(jakarta.servlet.http.HttpServletRequest) _jspx_page_context.getRequest();");
+        out.printil("jakarta.servlet.http.HttpServletResponse response = "
+                + "(jakarta.servlet.http.HttpServletResponse) _jspx_page_context.getResponse();");
+        out.printil("jakarta.servlet.http.HttpSession session = _jspx_page_context.getSession();");
+        out.printil("jakarta.servlet.ServletContext application = _jspx_page_context.getServletContext();");
+        out.printil("jakarta.servlet.ServletConfig config = _jspx_page_context.getServletConfig();");
+        out.printil("jakarta.servlet.jsp.JspWriter out = jspContext.getOut();");
         out.printil("_jspInit(config);");
 
         // set current JspContext on ELContext
-        out.printil("jspContext.getELContext().putContext(javax.servlet.jsp.JspContext.class,jspContext);");
+        out.printil("jspContext.getELContext().putContext(jakarta.servlet.jsp.JspContext.class,jspContext);");
 
         generatePageScopedVariables(tagInfo);
 
@@ -3800,15 +3799,15 @@ class Generator {
         // helper method is declared to throw Throwable.
         out.printil("} catch( java.lang.Throwable t ) {");
         out.pushIndent();
-        out.printil("if( t instanceof javax.servlet.jsp.SkipPageException )");
-        out.printil("    throw (javax.servlet.jsp.SkipPageException) t;");
+        out.printil("if( t instanceof jakarta.servlet.jsp.SkipPageException )");
+        out.printil("    throw (jakarta.servlet.jsp.SkipPageException) t;");
         out.printil("if( t instanceof java.io.IOException )");
         out.printil("    throw (java.io.IOException) t;");
         out.printil("if( t instanceof java.lang.IllegalStateException )");
         out.printil("    throw (java.lang.IllegalStateException) t;");
-        out.printil("if( t instanceof javax.servlet.jsp.JspException )");
-        out.printil("    throw (javax.servlet.jsp.JspException) t;");
-        out.printil("throw new javax.servlet.jsp.JspException(t);");
+        out.printil("if( t instanceof jakarta.servlet.jsp.JspException )");
+        out.printil("    throw (jakarta.servlet.jsp.JspException) t;");
+        out.printil("throw new jakarta.servlet.jsp.JspException(t);");
         out.popIndent();
         out.printil("} finally {");
         out.pushIndent();
@@ -3826,7 +3825,7 @@ class Generator {
         }
 
         // restore nested JspContext on ELContext
-        out.printil("jspContext.getELContext().putContext(javax.servlet.jsp.JspContext.class,super.getJspContext());");
+        out.printil("jspContext.getELContext().putContext(jakarta.servlet.jsp.JspContext.class,super.getJspContext());");
 
         out.printil("((org.apache.jasper.runtime.JspContextWrapper) jspContext).syncEndTagFile();");
         if (isPoolingEnabled && !tagHandlerPoolNames.isEmpty()) {
@@ -3858,7 +3857,7 @@ class Generator {
         for (int i = 0; i < attrInfos.length; i++) {
             out.printin("private ");
             if (attrInfos[i].isFragment()) {
-                out.print("javax.servlet.jsp.tagext.JspFragment ");
+                out.print("jakarta.servlet.jsp.tagext.JspFragment ");
             } else {
                 out.print(JspUtil.toJavaSourceType(attrInfos[i].getTypeName()));
                 out.print(" ");
@@ -3877,7 +3876,7 @@ class Generator {
             // getter method
             out.printin("public ");
             if (attrInfos[i].isFragment()) {
-                out.print("javax.servlet.jsp.tagext.JspFragment ");
+                out.print("jakarta.servlet.jsp.tagext.JspFragment ");
             } else {
                 out.print(JspUtil.toJavaSourceType(attrInfos[i].getTypeName()));
                 out.print(" ");
@@ -3896,7 +3895,7 @@ class Generator {
             out.printin("public void ");
             out.print(toSetterMethodName(attrInfos[i].getName()));
             if (attrInfos[i].isFragment()) {
-                out.print("(javax.servlet.jsp.tagext.JspFragment ");
+                out.print("(jakarta.servlet.jsp.tagext.JspFragment ");
             } else {
                 out.print("(");
                 out.print(JspUtil.toJavaSourceType(attrInfos[i].getTypeName()));
@@ -3948,9 +3947,9 @@ class Generator {
         }
 
         if (aliasSeen) {
-            out.printil("public void setJspContext(javax.servlet.jsp.JspContext ctx, java.util.Map aliasMap) {");
+            out.printil("public void setJspContext(jakarta.servlet.jsp.JspContext ctx, java.util.Map aliasMap) {");
         } else {
-            out.printil("public void setJspContext(javax.servlet.jsp.JspContext ctx) {");
+            out.printil("public void setJspContext(jakarta.servlet.jsp.JspContext ctx) {");
         }
         out.pushIndent();
         out.printil("super.setJspContext(ctx);");
@@ -3997,7 +3996,7 @@ class Generator {
         out.popIndent();
         out.printil("}");
         out.println();
-        out.printil("public javax.servlet.jsp.JspContext getJspContext() {");
+        out.printil("public jakarta.servlet.jsp.JspContext getJspContext() {");
         out.pushIndent();
         out.printil("return this.jspContext;");
         out.popIndent();
@@ -4006,12 +4005,12 @@ class Generator {
 
     /*
      * Generates implementation of
-     * javax.servlet.jsp.tagext.DynamicAttributes.setDynamicAttribute() method,
+     * jakarta.servlet.jsp.tagext.DynamicAttributes.setDynamicAttribute() method,
      * which saves each dynamic attribute that is passed in so that a scoped
      * variable can later be created for it.
      */
     public void generateSetDynamicAttribute() {
-        out.printil("public void setDynamicAttribute(java.lang.String uri, java.lang.String localName, java.lang.Object value) throws javax.servlet.jsp.JspException {");
+        out.printil("public void setDynamicAttribute(java.lang.String uri, java.lang.String localName, java.lang.Object value) throws jakarta.servlet.jsp.JspException {");
         out.pushIndent();
         /*
          * According to the spec, only dynamic attributes with no uri are to be
@@ -4311,12 +4310,12 @@ class Generator {
                     + "org.apache.jasper.runtime.JspFragmentHelper");
             out.printil("{");
             out.pushIndent();
-            out.printil("private javax.servlet.jsp.tagext.JspTag _jspx_parent;");
+            out.printil("private jakarta.servlet.jsp.tagext.JspTag _jspx_parent;");
             out.printil("private int[] _jspx_push_body_count;");
             out.println();
             out.printil("public " + className
-                    + "( int discriminator, javax.servlet.jsp.JspContext jspContext, "
-                    + "javax.servlet.jsp.tagext.JspTag _jspx_parent, "
+                    + "( int discriminator, jakarta.servlet.jsp.JspContext jspContext, "
+                    + "jakarta.servlet.jsp.tagext.JspTag _jspx_parent, "
                     + "int[] _jspx_push_body_count ) {");
             out.pushIndent();
             out.printil("super( discriminator, jspContext, _jspx_parent );");
@@ -4347,7 +4346,7 @@ class Generator {
             } else {
                 out.printin("public void invoke");
             }
-            out.println(result.getId() + "( " + "javax.servlet.jsp.JspWriter out ) ");
+            out.println(result.getId() + "( " + "jakarta.servlet.jsp.JspWriter out ) ");
             out.pushIndent();
             // Note: Throwable required because methods like _jspx_meth_*
             // throw Throwable.
@@ -4384,11 +4383,11 @@ class Generator {
             // Generate postamble:
             out.printil("public void invoke( java.io.Writer writer )");
             out.pushIndent();
-            out.printil("throws javax.servlet.jsp.JspException");
+            out.printil("throws jakarta.servlet.jsp.JspException");
             out.popIndent();
             out.printil("{");
             out.pushIndent();
-            out.printil("javax.servlet.jsp.JspWriter out = null;");
+            out.printil("jakarta.servlet.jsp.JspWriter out = null;");
             out.printil("if( writer != null ) {");
             out.pushIndent();
             out.printil("out = this.jspContext.pushBody(writer);");
@@ -4400,8 +4399,8 @@ class Generator {
             out.printil("}");
             out.printil("try {");
             out.pushIndent();
-            out.printil("Object _jspx_saved_JspContext = this.jspContext.getELContext().getContext(javax.servlet.jsp.JspContext.class);");
-            out.printil("this.jspContext.getELContext().putContext(javax.servlet.jsp.JspContext.class,this.jspContext);");
+            out.printil("Object _jspx_saved_JspContext = this.jspContext.getELContext().getContext(jakarta.servlet.jsp.JspContext.class);");
+            out.printil("this.jspContext.getELContext().putContext(jakarta.servlet.jsp.JspContext.class,this.jspContext);");
             out.printil("switch( this.discriminator ) {");
             out.pushIndent();
             for (int i = 0; i < fragments.size(); i++) {
@@ -4415,15 +4414,15 @@ class Generator {
             out.printil("}"); // switch
 
             // restore nested JspContext on ELContext
-            out.printil("jspContext.getELContext().putContext(javax.servlet.jsp.JspContext.class,_jspx_saved_JspContext);");
+            out.printil("jspContext.getELContext().putContext(jakarta.servlet.jsp.JspContext.class,_jspx_saved_JspContext);");
 
             out.popIndent();
             out.printil("}"); // try
             out.printil("catch( java.lang.Throwable e ) {");
             out.pushIndent();
-            out.printil("if (e instanceof javax.servlet.jsp.SkipPageException)");
-            out.printil("    throw (javax.servlet.jsp.SkipPageException) e;");
-            out.printil("throw new javax.servlet.jsp.JspException( e );");
+            out.printil("if (e instanceof jakarta.servlet.jsp.SkipPageException)");
+            out.printil("    throw (jakarta.servlet.jsp.SkipPageException) e;");
+            out.printil("throw new jakarta.servlet.jsp.JspException( e );");
             out.popIndent();
             out.printil("}"); // catch
             out.printil("finally {");
diff --git a/java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java b/java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java
index ed8a29d..7b0b072 100644
--- a/java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java
+++ b/java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java
@@ -24,11 +24,11 @@ import java.util.Hashtable;
 import java.util.Set;
 import java.util.Vector;
 
-import javax.servlet.ServletContext;
-import javax.servlet.jsp.tagext.FunctionInfo;
-import javax.servlet.jsp.tagext.TagFileInfo;
-import javax.servlet.jsp.tagext.TagInfo;
-import javax.servlet.jsp.tagext.TagLibraryInfo;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.jsp.tagext.FunctionInfo;
+import jakarta.servlet.jsp.tagext.TagFileInfo;
+import jakarta.servlet.jsp.tagext.TagInfo;
+import jakarta.servlet.jsp.tagext.TagLibraryInfo;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.JasperException;
diff --git a/java/org/apache/jasper/compiler/JarScannerFactory.java b/java/org/apache/jasper/compiler/JarScannerFactory.java
index ea0350b..b855d06 100644
--- a/java/org/apache/jasper/compiler/JarScannerFactory.java
+++ b/java/org/apache/jasper/compiler/JarScannerFactory.java
@@ -16,7 +16,7 @@
  */
 package org.apache.jasper.compiler;
 
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 import org.apache.tomcat.JarScanner;
 import org.apache.tomcat.util.scan.StandardJarScanner;
diff --git a/java/org/apache/jasper/compiler/JasperTagInfo.java b/java/org/apache/jasper/compiler/JasperTagInfo.java
index ec9c6e8..fd12bfb 100644
--- a/java/org/apache/jasper/compiler/JasperTagInfo.java
+++ b/java/org/apache/jasper/compiler/JasperTagInfo.java
@@ -17,11 +17,11 @@
 
 package org.apache.jasper.compiler;
 
-import javax.servlet.jsp.tagext.TagAttributeInfo;
-import javax.servlet.jsp.tagext.TagExtraInfo;
-import javax.servlet.jsp.tagext.TagInfo;
-import javax.servlet.jsp.tagext.TagLibraryInfo;
-import javax.servlet.jsp.tagext.TagVariableInfo;
+import jakarta.servlet.jsp.tagext.TagAttributeInfo;
+import jakarta.servlet.jsp.tagext.TagExtraInfo;
+import jakarta.servlet.jsp.tagext.TagInfo;
+import jakarta.servlet.jsp.tagext.TagLibraryInfo;
+import jakarta.servlet.jsp.tagext.TagVariableInfo;
 
 /**
  * TagInfo extension used by tag handlers that are implemented via tag files.
diff --git a/java/org/apache/jasper/compiler/JspConfig.java b/java/org/apache/jasper/compiler/JspConfig.java
index 373db7c..c608808 100644
--- a/java/org/apache/jasper/compiler/JspConfig.java
+++ b/java/org/apache/jasper/compiler/JspConfig.java
@@ -21,9 +21,9 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Vector;
 
-import javax.servlet.ServletContext;
-import javax.servlet.descriptor.JspConfigDescriptor;
-import javax.servlet.descriptor.JspPropertyGroupDescriptor;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.descriptor.JspConfigDescriptor;
+import jakarta.servlet.descriptor.JspPropertyGroupDescriptor;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
diff --git a/java/org/apache/jasper/compiler/JspDocumentParser.java b/java/org/apache/jasper/compiler/JspDocumentParser.java
index b40ba76..938ebe3 100644
--- a/java/org/apache/jasper/compiler/JspDocumentParser.java
+++ b/java/org/apache/jasper/compiler/JspDocumentParser.java
@@ -22,12 +22,13 @@ import java.io.IOException;
 import java.security.AccessController;
 import java.util.Collection;
 
-import javax.servlet.jsp.tagext.TagFileInfo;
-import javax.servlet.jsp.tagext.TagInfo;
-import javax.servlet.jsp.tagext.TagLibraryInfo;
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 
+import jakarta.servlet.jsp.tagext.TagFileInfo;
+import jakarta.servlet.jsp.tagext.TagInfo;
+import jakarta.servlet.jsp.tagext.TagLibraryInfo;
+
 import org.apache.jasper.Constants;
 import org.apache.jasper.JasperException;
 import org.apache.jasper.JspCompilationContext;
diff --git a/java/org/apache/jasper/compiler/JspRuntimeContext.java b/java/org/apache/jasper/compiler/JspRuntimeContext.java
index 87fe6c3..02f5c0c 100644
--- a/java/org/apache/jasper/compiler/JspRuntimeContext.java
+++ b/java/org/apache/jasper/compiler/JspRuntimeContext.java
@@ -33,8 +33,8 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.JspCompilationContext;
diff --git a/java/org/apache/jasper/compiler/JspUtil.java b/java/org/apache/jasper/compiler/JspUtil.java
index e1b881b..b0be277 100644
--- a/java/org/apache/jasper/compiler/JspUtil.java
+++ b/java/org/apache/jasper/compiler/JspUtil.java
@@ -394,7 +394,7 @@ public class JspUtil {
                         + ") "
                         + "org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate"
                         + "(" + Generator.quote(expression) + ", " + targetType
-                        + ".class, " + "(javax.servlet.jsp.PageContext)" + jspCtxt + ", "
+                        + ".class, " + "(jakarta.servlet.jsp.PageContext)" + jspCtxt + ", "
                         + fnmapvar + ")");
 
         /*
diff --git a/java/org/apache/jasper/compiler/Node.java b/java/org/apache/jasper/compiler/Node.java
index 14aeb6a..836bb99 100644
--- a/java/org/apache/jasper/compiler/Node.java
+++ b/java/org/apache/jasper/compiler/Node.java
@@ -20,22 +20,21 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Vector;
 
-import javax.servlet.jsp.tagext.BodyTag;
-import javax.servlet.jsp.tagext.DynamicAttributes;
-import javax.servlet.jsp.tagext.IterationTag;
-import javax.servlet.jsp.tagext.JspIdConsumer;
-import javax.servlet.jsp.tagext.SimpleTag;
-import javax.servlet.jsp.tagext.TagAttributeInfo;
-import javax.servlet.jsp.tagext.TagData;
-import javax.servlet.jsp.tagext.TagFileInfo;
-import javax.servlet.jsp.tagext.TagInfo;
-import javax.servlet.jsp.tagext.TagVariableInfo;
-import javax.servlet.jsp.tagext.TryCatchFinally;
-import javax.servlet.jsp.tagext.VariableInfo;
-
 import jakarta.el.ELContext;
 import jakarta.el.ELException;
 import jakarta.el.ExpressionFactory;
+import jakarta.servlet.jsp.tagext.BodyTag;
+import jakarta.servlet.jsp.tagext.DynamicAttributes;
+import jakarta.servlet.jsp.tagext.IterationTag;
+import jakarta.servlet.jsp.tagext.JspIdConsumer;
+import jakarta.servlet.jsp.tagext.SimpleTag;
+import jakarta.servlet.jsp.tagext.TagAttributeInfo;
+import jakarta.servlet.jsp.tagext.TagData;
+import jakarta.servlet.jsp.tagext.TagFileInfo;
+import jakarta.servlet.jsp.tagext.TagInfo;
+import jakarta.servlet.jsp.tagext.TagVariableInfo;
+import jakarta.servlet.jsp.tagext.TryCatchFinally;
+import jakarta.servlet.jsp.tagext.VariableInfo;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.JasperException;
diff --git a/java/org/apache/jasper/compiler/PageDataImpl.java b/java/org/apache/jasper/compiler/PageDataImpl.java
index 592da5e..dff1d88 100644
--- a/java/org/apache/jasper/compiler/PageDataImpl.java
+++ b/java/org/apache/jasper/compiler/PageDataImpl.java
@@ -21,7 +21,7 @@ import java.io.CharArrayWriter;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 
-import javax.servlet.jsp.tagext.PageData;
+import jakarta.servlet.jsp.tagext.PageData;
 
 import org.apache.jasper.JasperException;
 import org.apache.tomcat.util.security.Escape;
@@ -29,7 +29,7 @@ import org.xml.sax.Attributes;
 import org.xml.sax.helpers.AttributesImpl;
 
 /**
- * An implementation of <code>javax.servlet.jsp.tagext.PageData</code> which
+ * An implementation of <code>jakarta.servlet.jsp.tagext.PageData</code> which
  * builds the XML view of a given page.
  *
  * The XML view is built in two passes:
diff --git a/java/org/apache/jasper/compiler/PageInfo.java b/java/org/apache/jasper/compiler/PageInfo.java
index 59c6038..e4a745a 100644
--- a/java/org/apache/jasper/compiler/PageInfo.java
+++ b/java/org/apache/jasper/compiler/PageInfo.java
@@ -25,9 +25,8 @@ import java.util.Map;
 import java.util.Set;
 import java.util.Vector;
 
-import javax.servlet.jsp.tagext.TagLibraryInfo;
-
 import jakarta.el.ExpressionFactory;
+import jakarta.servlet.jsp.tagext.TagLibraryInfo;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.JasperException;
diff --git a/java/org/apache/jasper/compiler/Parser.java b/java/org/apache/jasper/compiler/Parser.java
index 9de1f1e..f4fa086 100644
--- a/java/org/apache/jasper/compiler/Parser.java
+++ b/java/org/apache/jasper/compiler/Parser.java
@@ -20,10 +20,10 @@ import java.io.CharArrayWriter;
 import java.io.FileNotFoundException;
 import java.util.Collection;
 
-import javax.servlet.jsp.tagext.TagAttributeInfo;
-import javax.servlet.jsp.tagext.TagFileInfo;
-import javax.servlet.jsp.tagext.TagInfo;
-import javax.servlet.jsp.tagext.TagLibraryInfo;
+import jakarta.servlet.jsp.tagext.TagAttributeInfo;
+import jakarta.servlet.jsp.tagext.TagFileInfo;
+import jakarta.servlet.jsp.tagext.TagInfo;
+import jakarta.servlet.jsp.tagext.TagLibraryInfo;
 
 import org.apache.jasper.JasperException;
 import org.apache.jasper.JspCompilationContext;
diff --git a/java/org/apache/jasper/compiler/ScriptingVariabler.java b/java/org/apache/jasper/compiler/ScriptingVariabler.java
index a9628fa..a2682f2 100644
--- a/java/org/apache/jasper/compiler/ScriptingVariabler.java
+++ b/java/org/apache/jasper/compiler/ScriptingVariabler.java
@@ -22,8 +22,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import javax.servlet.jsp.tagext.TagVariableInfo;
-import javax.servlet.jsp.tagext.VariableInfo;
+import jakarta.servlet.jsp.tagext.TagVariableInfo;
+import jakarta.servlet.jsp.tagext.VariableInfo;
 
 import org.apache.jasper.JasperException;
 
diff --git a/java/org/apache/jasper/compiler/TagFileProcessor.java b/java/org/apache/jasper/compiler/TagFileProcessor.java
index 01224c5..af1ed91 100644
--- a/java/org/apache/jasper/compiler/TagFileProcessor.java
+++ b/java/org/apache/jasper/compiler/TagFileProcessor.java
@@ -23,15 +23,14 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Vector;
 
-import javax.servlet.jsp.tagext.TagAttributeInfo;
-import javax.servlet.jsp.tagext.TagFileInfo;
-import javax.servlet.jsp.tagext.TagInfo;
-import javax.servlet.jsp.tagext.TagLibraryInfo;
-import javax.servlet.jsp.tagext.TagVariableInfo;
-import javax.servlet.jsp.tagext.VariableInfo;
-
 import jakarta.el.MethodExpression;
 import jakarta.el.ValueExpression;
+import jakarta.servlet.jsp.tagext.TagAttributeInfo;
+import jakarta.servlet.jsp.tagext.TagFileInfo;
+import jakarta.servlet.jsp.tagext.TagInfo;
+import jakarta.servlet.jsp.tagext.TagLibraryInfo;
+import jakarta.servlet.jsp.tagext.TagVariableInfo;
+import jakarta.servlet.jsp.tagext.VariableInfo;
 
 import org.apache.jasper.JasperException;
 import org.apache.jasper.JspCompilationContext;
diff --git a/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java b/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java
index d5f35bd..7da6963 100644
--- a/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java
+++ b/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java
@@ -31,16 +31,16 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.servlet.jsp.tagext.FunctionInfo;
-import javax.servlet.jsp.tagext.PageData;
-import javax.servlet.jsp.tagext.TagAttributeInfo;
-import javax.servlet.jsp.tagext.TagExtraInfo;
-import javax.servlet.jsp.tagext.TagFileInfo;
-import javax.servlet.jsp.tagext.TagInfo;
-import javax.servlet.jsp.tagext.TagLibraryInfo;
-import javax.servlet.jsp.tagext.TagLibraryValidator;
-import javax.servlet.jsp.tagext.TagVariableInfo;
-import javax.servlet.jsp.tagext.ValidationMessage;
+import jakarta.servlet.jsp.tagext.FunctionInfo;
+import jakarta.servlet.jsp.tagext.PageData;
+import jakarta.servlet.jsp.tagext.TagAttributeInfo;
+import jakarta.servlet.jsp.tagext.TagExtraInfo;
+import jakarta.servlet.jsp.tagext.TagFileInfo;
+import jakarta.servlet.jsp.tagext.TagInfo;
+import jakarta.servlet.jsp.tagext.TagLibraryInfo;
+import jakarta.servlet.jsp.tagext.TagLibraryValidator;
+import jakarta.servlet.jsp.tagext.TagVariableInfo;
+import jakarta.servlet.jsp.tagext.ValidationMessage;
 
 import org.apache.jasper.JasperException;
 import org.apache.jasper.JspCompilationContext;
@@ -356,7 +356,7 @@ class TagLibraryInfoImpl extends TagLibraryInfo implements TagConstants {
     }
 
     // *********************************************************************
-    // Until javax.servlet.jsp.tagext.TagLibraryInfo is fixed
+    // Until jakarta.servlet.jsp.tagext.TagLibraryInfo is fixed
 
     /**
      * The instance (if any) for the TagLibraryValidator class.
diff --git a/java/org/apache/jasper/compiler/TagPluginManager.java b/java/org/apache/jasper/compiler/TagPluginManager.java
index b1ae5dc..17c2be0 100644
--- a/java/org/apache/jasper/compiler/TagPluginManager.java
+++ b/java/org/apache/jasper/compiler/TagPluginManager.java
@@ -23,7 +23,7 @@ import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.JasperException;
diff --git a/java/org/apache/jasper/compiler/TldCache.java b/java/org/apache/jasper/compiler/TldCache.java
index 60daed5..446f80e 100644
--- a/java/org/apache/jasper/compiler/TldCache.java
+++ b/java/org/apache/jasper/compiler/TldCache.java
@@ -23,7 +23,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.JasperException;
diff --git a/java/org/apache/jasper/compiler/Validator.java b/java/org/apache/jasper/compiler/Validator.java
index 0208041..4b68485 100644
--- a/java/org/apache/jasper/compiler/Validator.java
+++ b/java/org/apache/jasper/compiler/Validator.java
@@ -28,19 +28,18 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import javax.servlet.jsp.JspFactory;
-import javax.servlet.jsp.tagext.FunctionInfo;
-import javax.servlet.jsp.tagext.PageData;
-import javax.servlet.jsp.tagext.TagAttributeInfo;
-import javax.servlet.jsp.tagext.TagData;
-import javax.servlet.jsp.tagext.TagExtraInfo;
-import javax.servlet.jsp.tagext.TagInfo;
-import javax.servlet.jsp.tagext.TagLibraryInfo;
-import javax.servlet.jsp.tagext.ValidationMessage;
-
 import jakarta.el.ELException;
 import jakarta.el.ExpressionFactory;
 import jakarta.el.FunctionMapper;
+import jakarta.servlet.jsp.JspFactory;
+import jakarta.servlet.jsp.tagext.FunctionInfo;
+import jakarta.servlet.jsp.tagext.PageData;
+import jakarta.servlet.jsp.tagext.TagAttributeInfo;
+import jakarta.servlet.jsp.tagext.TagData;
+import jakarta.servlet.jsp.tagext.TagExtraInfo;
+import jakarta.servlet.jsp.tagext.TagInfo;
+import jakarta.servlet.jsp.tagext.TagLibraryInfo;
+import jakarta.servlet.jsp.tagext.ValidationMessage;
 
 import org.apache.jasper.JasperException;
 import org.apache.jasper.compiler.ELNode.Text;
diff --git a/java/org/apache/jasper/el/ELResolverImpl.java b/java/org/apache/jasper/el/ELResolverImpl.java
index 00001ac..c5812d5 100644
--- a/java/org/apache/jasper/el/ELResolverImpl.java
+++ b/java/org/apache/jasper/el/ELResolverImpl.java
@@ -20,13 +20,12 @@ package org.apache.jasper.el;
 import java.util.Iterator;
 import java.util.Objects;
 
-import javax.servlet.jsp.el.VariableResolver;
-
 import jakarta.el.ELContext;
 import jakarta.el.ELException;
 import jakarta.el.ELResolver;
 import jakarta.el.ExpressionFactory;
 import jakarta.el.PropertyNotWritableException;
+import jakarta.servlet.jsp.el.VariableResolver;
 
 @Deprecated
 public final class ELResolverImpl extends ELResolver {
@@ -50,7 +49,7 @@ public final class ELResolverImpl extends ELResolver {
                 try {
                     return this.variableResolver.resolveVariable(property
                             .toString());
-                } catch (javax.servlet.jsp.el.ELException e) {
+                } catch (jakarta.servlet.jsp.el.ELException e) {
                     throw new ELException(e.getMessage(), e.getCause());
                 }
             }
@@ -73,7 +72,7 @@ public final class ELResolverImpl extends ELResolver {
                     Object obj = this.variableResolver.resolveVariable(property
                             .toString());
                     return (obj != null) ? obj.getClass() : null;
-                } catch (javax.servlet.jsp.el.ELException e) {
+                } catch (jakarta.servlet.jsp.el.ELException e) {
                     throw new ELException(e.getMessage(), e.getCause());
                 }
             }
diff --git a/java/org/apache/jasper/el/ExpressionEvaluatorImpl.java b/java/org/apache/jasper/el/ExpressionEvaluatorImpl.java
index 3c48c4b..0a9aa98 100644
--- a/java/org/apache/jasper/el/ExpressionEvaluatorImpl.java
+++ b/java/org/apache/jasper/el/ExpressionEvaluatorImpl.java
@@ -16,15 +16,14 @@
  */
 package org.apache.jasper.el;
 
-import javax.servlet.jsp.el.ELException;
-import javax.servlet.jsp.el.ELParseException;
-import javax.servlet.jsp.el.Expression;
-import javax.servlet.jsp.el.ExpressionEvaluator;
-import javax.servlet.jsp.el.FunctionMapper;
-import javax.servlet.jsp.el.VariableResolver;
-
 import jakarta.el.ExpressionFactory;
 import jakarta.el.ValueExpression;
+import jakarta.servlet.jsp.el.ELException;
+import jakarta.servlet.jsp.el.ELParseException;
+import jakarta.servlet.jsp.el.Expression;
+import jakarta.servlet.jsp.el.ExpressionEvaluator;
+import jakarta.servlet.jsp.el.FunctionMapper;
+import jakarta.servlet.jsp.el.VariableResolver;
 
 @Deprecated
 public final class ExpressionEvaluatorImpl extends ExpressionEvaluator {
diff --git a/java/org/apache/jasper/el/ExpressionImpl.java b/java/org/apache/jasper/el/ExpressionImpl.java
index a607da0..cf0e8fe 100644
--- a/java/org/apache/jasper/el/ExpressionImpl.java
+++ b/java/org/apache/jasper/el/ExpressionImpl.java
@@ -16,13 +16,12 @@
  */
 package org.apache.jasper.el;
 
-import javax.servlet.jsp.el.ELException;
-import javax.servlet.jsp.el.Expression;
-import javax.servlet.jsp.el.VariableResolver;
-
 import jakarta.el.ELContext;
 import jakarta.el.ExpressionFactory;
 import jakarta.el.ValueExpression;
+import jakarta.servlet.jsp.el.ELException;
+import jakarta.servlet.jsp.el.Expression;
+import jakarta.servlet.jsp.el.VariableResolver;
 
 @Deprecated
 public final class ExpressionImpl extends Expression {
diff --git a/java/org/apache/jasper/el/FunctionMapperImpl.java b/java/org/apache/jasper/el/FunctionMapperImpl.java
index c8d45d7..490d488 100644
--- a/java/org/apache/jasper/el/FunctionMapperImpl.java
+++ b/java/org/apache/jasper/el/FunctionMapperImpl.java
@@ -18,7 +18,7 @@ package org.apache.jasper.el;
 
 import java.lang.reflect.Method;
 
-import javax.servlet.jsp.el.FunctionMapper;
+import jakarta.servlet.jsp.el.FunctionMapper;
 
 @Deprecated
 public final class FunctionMapperImpl extends jakarta.el.FunctionMapper {
diff --git a/java/org/apache/jasper/el/JasperELResolver.java b/java/org/apache/jasper/el/JasperELResolver.java
index 2b04ffc..d28c61c 100644
--- a/java/org/apache/jasper/el/JasperELResolver.java
+++ b/java/org/apache/jasper/el/JasperELResolver.java
@@ -23,9 +23,6 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import javax.servlet.jsp.el.ImplicitObjectELResolver;
-import javax.servlet.jsp.el.ScopedAttributeELResolver;
-
 import jakarta.el.ArrayELResolver;
 import jakarta.el.BeanELResolver;
 import jakarta.el.CompositeELResolver;
@@ -37,6 +34,8 @@ import jakarta.el.MapELResolver;
 import jakarta.el.PropertyNotFoundException;
 import jakarta.el.ResourceBundleELResolver;
 import jakarta.el.StaticFieldELResolver;
+import jakarta.servlet.jsp.el.ImplicitObjectELResolver;
+import jakarta.servlet.jsp.el.ScopedAttributeELResolver;
 
 import org.apache.jasper.runtime.ExceptionUtils;
 import org.apache.jasper.runtime.JspRuntimeLibrary;
diff --git a/java/org/apache/jasper/el/VariableResolverImpl.java b/java/org/apache/jasper/el/VariableResolverImpl.java
index b6eaa82..18bd48c 100644
--- a/java/org/apache/jasper/el/VariableResolverImpl.java
+++ b/java/org/apache/jasper/el/VariableResolverImpl.java
@@ -16,10 +16,9 @@
  */
 package org.apache.jasper.el;
 
-import javax.servlet.jsp.el.ELException;
-import javax.servlet.jsp.el.VariableResolver;
-
 import jakarta.el.ELContext;
+import jakarta.servlet.jsp.el.ELException;
+import jakarta.servlet.jsp.el.VariableResolver;
 
 @Deprecated
 public final class VariableResolverImpl implements VariableResolver {
diff --git a/java/org/apache/jasper/resources/LocalStrings.properties b/java/org/apache/jasper/resources/LocalStrings.properties
index 6574f84..e51ba3d 100644
--- a/java/org/apache/jasper/resources/LocalStrings.properties
+++ b/java/org/apache/jasper/resources/LocalStrings.properties
@@ -76,7 +76,7 @@ jsp.error.file.already.registered=Recursive include of file [{0}]
 jsp.error.file.cannot.read=Cannot read file: [{0}]
 jsp.error.file.not.found=File [{0}] not found
 jsp.error.flush=Exception occurred when flushing data
-jsp.error.fragmentwithtype=Cannot specify both 'fragment' and 'type' attributes.  If 'fragment' is present, 'type' is fixed as 'javax.servlet.jsp.tagext.JspFragment'
+jsp.error.fragmentwithtype=Cannot specify both 'fragment' and 'type' attributes.  If 'fragment' is present, 'type' is fixed as 'jakarta.servlet.jsp.tagext.JspFragment'
 jsp.error.function.classnotfound=The class [{0}] specified in TLD for the function [{1}] cannot be found: [{2}]
 jsp.error.include.exception=Unable to include [{0}]
 jsp.error.include.tag=Invalid jsp:include tag
diff --git a/java/org/apache/jasper/resources/LocalStrings_es.properties b/java/org/apache/jasper/resources/LocalStrings_es.properties
index c7c470b..5f2f900 100644
--- a/java/org/apache/jasper/resources/LocalStrings_es.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_es.properties
@@ -69,7 +69,7 @@ jsp.error.file.already.registered=El archivo [{0}] ya se ha visto, ¿podría ser
 jsp.error.file.cannot.read=No se puede leer el archivo: [{0}]
 jsp.error.file.not.found=Archivo JSP [{0}] no encontrado
 jsp.error.flush=Excepción sucedida al vaciar los datos
-jsp.error.fragmentwithtype=No puede especificar ambos atributos 'fragment' y 'type'. Si está presente 'fragment', 'type' se pone como 'javax.servlet.jsp.tagext.JspFragment'
+jsp.error.fragmentwithtype=No puede especificar ambos atributos 'fragment' y 'type'. Si está presente 'fragment', 'type' se pone como 'jakarta.servlet.jsp.tagext.JspFragment'
 jsp.error.function.classnotfound=La clase [{0}] especificada en el TLD para la función [{1}] no se puede hallar: [{2}]
 jsp.error.include.exception=No se puede incluir [{0}]
 jsp.error.include.tag=Tag jsp:include no válido
diff --git a/java/org/apache/jasper/resources/LocalStrings_fr.properties b/java/org/apache/jasper/resources/LocalStrings_fr.properties
index d311b8d..6373ae8 100644
--- a/java/org/apache/jasper/resources/LocalStrings_fr.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_fr.properties
@@ -76,7 +76,7 @@ jsp.error.file.already.registered=Inclusion récursive du fichier [{0}]
 jsp.error.file.cannot.read=Impossible de lire le fichier: [{0}]
 jsp.error.file.not.found=Le fichier [{0}] n''a pas été trouvé
 jsp.error.flush=Une exception s'est produite lors de l'envoi des données
-jsp.error.fragmentwithtype=On ne peut indiquer à la fois les attributs 'fragment' et 'type'.  Si 'fragment' est présent, 'type' est fixé comme 'javax.servlet.jsp.tagext.JspFragment'
+jsp.error.fragmentwithtype=On ne peut indiquer à la fois les attributs 'fragment' et 'type'.  Si 'fragment' est présent, 'type' est fixé comme 'jakarta.servlet.jsp.tagext.JspFragment'
 jsp.error.function.classnotfound=La classe [{0}] spécifiée dans la TLD pour la fonction [{1}] n''a pas été trouvée: [{2}]
 jsp.error.include.exception=Impossible d''inclure (include) [{0}]
 jsp.error.include.tag=Tag jsp:include incorrect
diff --git a/java/org/apache/jasper/resources/LocalStrings_ja.properties b/java/org/apache/jasper/resources/LocalStrings_ja.properties
index 3820aaf..58aab4f 100644
--- a/java/org/apache/jasper/resources/LocalStrings_ja.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_ja.properties
@@ -76,7 +76,7 @@ jsp.error.file.already.registered=ファイル [{0}] の再帰的な取り込み
 jsp.error.file.cannot.read=ファイルが読めません: [{0}]
 jsp.error.file.not.found=JSP ファイル [{0}] が見つかりません
 jsp.error.flush=データをフラッシュする際に例外が発生しました。
-jsp.error.fragmentwithtype='fragment'属性と'type'属性を両方指定できません。'fragment'が存在する場合には'type'は'javax.servlet.jsp.tagext.JspFragment'に固定されます
+jsp.error.fragmentwithtype='fragment'属性と'type'属性を両方指定できません。'fragment'が存在する場合には'type'は'jakarta.servlet.jsp.tagext.JspFragment'に固定されます
 jsp.error.function.classnotfound=TLDの中で関数 [{1}] に指定されているクラス [{0}] が見つかりません: [{2}]
 jsp.error.include.exception=[{0}] を取り込めません
 jsp.error.include.tag=無効なjsp:includeタグです
diff --git a/java/org/apache/jasper/resources/LocalStrings_ko.properties b/java/org/apache/jasper/resources/LocalStrings_ko.properties
index 5ca9865..ed63764 100644
--- a/java/org/apache/jasper/resources/LocalStrings_ko.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_ko.properties
@@ -77,7 +77,7 @@ jsp.error.file.already.registered=파일 [{0}]의 재귀적인 include입니다.
 jsp.error.file.cannot.read=파일을 읽을 수 없습니다: [{0}]
 jsp.error.file.not.found=파일 [{0}]을(를) 찾을 수 없습니다.
 jsp.error.flush=데이터를 배출하는 중 예외가 발생했습니다.
-jsp.error.fragmentwithtype='fragment'와 'type' 속성, 둘 다를 지정할 수 없습니다. 만일 'fragment'이 지정되면, 'type'은 'javax.servlet.jsp.tagext.JspFragment'으로 고정됩니다.
+jsp.error.fragmentwithtype='fragment'와 'type' 속성, 둘 다를 지정할 수 없습니다. 만일 'fragment'이 지정되면, 'type'은 'jakarta.servlet.jsp.tagext.JspFragment'으로 고정됩니다.
 jsp.error.function.classnotfound=function [{1}]을(를) 위하여 TLD에 지정된, 클래스 [{0}]을(를) 찾을 수 없습니다: [{2}]
 jsp.error.include.exception=[{0}]을(를) include할 수 없습니다.
 jsp.error.include.tag=유효하지 않은 jsp:include 태그
diff --git a/java/org/apache/jasper/runtime/BodyContentImpl.java b/java/org/apache/jasper/runtime/BodyContentImpl.java
index 0f3c11a..7575650 100644
--- a/java/org/apache/jasper/runtime/BodyContentImpl.java
+++ b/java/org/apache/jasper/runtime/BodyContentImpl.java
@@ -24,8 +24,8 @@ import java.io.Writer;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.tagext.BodyContent;
+import jakarta.servlet.jsp.JspWriter;
+import jakarta.servlet.jsp.tagext.BodyContent;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.compiler.Localizer;
diff --git a/java/org/apache/jasper/runtime/HttpJspBase.java b/java/org/apache/jasper/runtime/HttpJspBase.java
index 544af4e..64caf7e 100644
--- a/java/org/apache/jasper/runtime/HttpJspBase.java
+++ b/java/org/apache/jasper/runtime/HttpJspBase.java
@@ -19,12 +19,12 @@ package org.apache.jasper.runtime;
 
 import java.io.IOException;
 
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.HttpJspPage;
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.jsp.HttpJspPage;
 
 import org.apache.jasper.compiler.Localizer;
 
diff --git a/java/org/apache/jasper/runtime/InstanceManagerFactory.java b/java/org/apache/jasper/runtime/InstanceManagerFactory.java
index 0188c63..4a63ad3 100644
--- a/java/org/apache/jasper/runtime/InstanceManagerFactory.java
+++ b/java/org/apache/jasper/runtime/InstanceManagerFactory.java
@@ -16,7 +16,7 @@
  */
 package org.apache.jasper.runtime;
 
-import javax.servlet.ServletConfig;
+import jakarta.servlet.ServletConfig;
 
 import org.apache.jasper.compiler.Localizer;
 import org.apache.tomcat.InstanceManager;
diff --git a/java/org/apache/jasper/runtime/JspApplicationContextImpl.java b/java/org/apache/jasper/runtime/JspApplicationContextImpl.java
index c0b89d2..ad39da6 100644
--- a/java/org/apache/jasper/runtime/JspApplicationContextImpl.java
+++ b/java/org/apache/jasper/runtime/JspApplicationContextImpl.java
@@ -21,16 +21,15 @@ import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.servlet.ServletContext;
-import javax.servlet.jsp.JspApplicationContext;
-import javax.servlet.jsp.JspContext;
-
 import jakarta.el.CompositeELResolver;
 import jakarta.el.ELContext;
 import jakarta.el.ELContextEvent;
 import jakarta.el.ELContextListener;
 import jakarta.el.ELResolver;
 import jakarta.el.ExpressionFactory;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.jsp.JspApplicationContext;
+import jakarta.servlet.jsp.JspContext;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.compiler.Localizer;
diff --git a/java/org/apache/jasper/runtime/JspContextWrapper.java b/java/org/apache/jasper/runtime/JspContextWrapper.java
index 1bda259..0620d56 100644
--- a/java/org/apache/jasper/runtime/JspContextWrapper.java
+++ b/java/org/apache/jasper/runtime/JspContextWrapper.java
@@ -28,31 +28,30 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
-import javax.servlet.Servlet;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpSession;
-import javax.servlet.jsp.JspApplicationContext;
-import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.JspFactory;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.el.ELException;
-import javax.servlet.jsp.el.ExpressionEvaluator;
-import javax.servlet.jsp.el.VariableResolver;
-import javax.servlet.jsp.tagext.BodyContent;
-import javax.servlet.jsp.tagext.JspTag;
-import javax.servlet.jsp.tagext.VariableInfo;
-
 import jakarta.el.ELContext;
 import jakarta.el.ELResolver;
 import jakarta.el.EvaluationListener;
 import jakarta.el.FunctionMapper;
 import jakarta.el.ImportHandler;
 import jakarta.el.VariableMapper;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpSession;
+import jakarta.servlet.jsp.JspApplicationContext;
+import jakarta.servlet.jsp.JspContext;
+import jakarta.servlet.jsp.JspFactory;
+import jakarta.servlet.jsp.JspWriter;
+import jakarta.servlet.jsp.PageContext;
+import jakarta.servlet.jsp.el.ELException;
+import jakarta.servlet.jsp.el.ExpressionEvaluator;
+import jakarta.servlet.jsp.el.VariableResolver;
+import jakarta.servlet.jsp.tagext.BodyContent;
+import jakarta.servlet.jsp.tagext.JspTag;
+import jakarta.servlet.jsp.tagext.VariableInfo;
 
 import org.apache.jasper.compiler.Localizer;
 
diff --git a/java/org/apache/jasper/runtime/JspFactoryImpl.java b/java/org/apache/jasper/runtime/JspFactoryImpl.java
index c2a73d4..1e4a005 100644
--- a/java/org/apache/jasper/runtime/JspFactoryImpl.java
+++ b/java/org/apache/jasper/runtime/JspFactoryImpl.java
@@ -20,14 +20,14 @@ import java.io.IOException;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 
-import javax.servlet.Servlet;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.jsp.JspApplicationContext;
-import javax.servlet.jsp.JspEngineInfo;
-import javax.servlet.jsp.JspFactory;
-import javax.servlet.jsp.PageContext;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.jsp.JspApplicationContext;
+import jakarta.servlet.jsp.JspEngineInfo;
+import jakarta.servlet.jsp.JspFactory;
+import jakarta.servlet.jsp.PageContext;
 
 import org.apache.jasper.Constants;
 
diff --git a/java/org/apache/jasper/runtime/JspFragmentHelper.java b/java/org/apache/jasper/runtime/JspFragmentHelper.java
index 1df68d5..a9a445c 100644
--- a/java/org/apache/jasper/runtime/JspFragmentHelper.java
+++ b/java/org/apache/jasper/runtime/JspFragmentHelper.java
@@ -17,10 +17,10 @@
 
 package org.apache.jasper.runtime;
 
-import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.tagext.JspFragment;
-import javax.servlet.jsp.tagext.JspTag;
+import jakarta.servlet.jsp.JspContext;
+import jakarta.servlet.jsp.PageContext;
+import jakarta.servlet.jsp.tagext.JspFragment;
+import jakarta.servlet.jsp.tagext.JspTag;
 
 /**
  * Helper class from which all Jsp Fragment helper classes extend.
diff --git a/java/org/apache/jasper/runtime/JspRuntimeLibrary.java b/java/org/apache/jasper/runtime/JspRuntimeLibrary.java
index 4770024..9a0783c 100644
--- a/java/org/apache/jasper/runtime/JspRuntimeLibrary.java
+++ b/java/org/apache/jasper/runtime/JspRuntimeLibrary.java
@@ -24,17 +24,17 @@ import java.io.OutputStreamWriter;
 import java.lang.reflect.Method;
 import java.util.Enumeration;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.tagext.BodyContent;
-import javax.servlet.jsp.tagext.BodyTag;
-import javax.servlet.jsp.tagext.Tag;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.JspWriter;
+import jakarta.servlet.jsp.PageContext;
+import jakarta.servlet.jsp.tagext.BodyContent;
+import jakarta.servlet.jsp.tagext.BodyTag;
+import jakarta.servlet.jsp.tagext.Tag;
 
 import org.apache.jasper.JasperException;
 import org.apache.jasper.compiler.Localizer;
@@ -73,9 +73,9 @@ public class JspRuntimeLibrary {
     }
 
     /**
-     * Returns the value of the javax.servlet.error.exception request
+     * Returns the value of the jakarta.servlet.error.exception request
      * attribute value, if present, otherwise the value of the
-     * javax.servlet.jsp.jspException request attribute value.
+     * jakarta.servlet.jsp.jspException request attribute value.
      *
      * This method is called at the beginning of the generated servlet code
      * for a JSP error page, when the "exception" implicit scripting language
diff --git a/java/org/apache/jasper/runtime/JspWriterImpl.java b/java/org/apache/jasper/runtime/JspWriterImpl.java
index d4cca73..24eb0bd 100644
--- a/java/org/apache/jasper/runtime/JspWriterImpl.java
+++ b/java/org/apache/jasper/runtime/JspWriterImpl.java
@@ -20,8 +20,8 @@ package org.apache.jasper.runtime;
 import java.io.IOException;
 import java.io.Writer;
 
-import javax.servlet.ServletResponse;
-import javax.servlet.jsp.JspWriter;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.jsp.JspWriter;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.compiler.Localizer;
diff --git a/java/org/apache/jasper/runtime/PageContextImpl.java b/java/org/apache/jasper/runtime/PageContextImpl.java
index 0aa46f6..fcbbae8 100644
--- a/java/org/apache/jasper/runtime/PageContextImpl.java
+++ b/java/org/apache/jasper/runtime/PageContextImpl.java
@@ -25,27 +25,26 @@ import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Set;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.JspFactory;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.tagext.BodyContent;
-
 import jakarta.el.ELContext;
 import jakarta.el.ELException;
 import jakarta.el.ExpressionFactory;
 import jakarta.el.ImportHandler;
 import jakarta.el.ValueExpression;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.JspFactory;
+import jakarta.servlet.jsp.JspWriter;
+import jakarta.servlet.jsp.PageContext;
+import jakarta.servlet.jsp.tagext.BodyContent;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.compiler.Localizer;
@@ -499,7 +498,7 @@ public class PageContextImpl extends PageContext {
 
     @Override
     @Deprecated
-    public javax.servlet.jsp.el.VariableResolver getVariableResolver() {
+    public jakarta.servlet.jsp.el.VariableResolver getVariableResolver() {
         return new org.apache.jasper.el.VariableResolverImpl(
                 this.getELContext());
     }
@@ -583,7 +582,7 @@ public class PageContextImpl extends PageContext {
      */
     @Override
     @Deprecated
-    public javax.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator() {
+    public jakarta.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator() {
         return new org.apache.jasper.el.ExpressionEvaluatorImpl(
                 this.applicationContext.getExpressionFactory());
     }
@@ -607,7 +606,7 @@ public class PageContextImpl extends PageContext {
 
             /*
              * Set request attributes. Do not set the
-             * javax.servlet.error.exception attribute here (instead, set in the
+             * jakarta.servlet.error.exception attribute here (instead, set in the
              * generated servlet code for the error page) in order to prevent
              * the ErrorReportValve, which is invoked as part of forwarding the
              * request to the error page, from throwing it if the response has
@@ -655,7 +654,7 @@ public class PageContextImpl extends PageContext {
 
             Throwable rootCause = null;
             if (t instanceof JspException || t instanceof ELException ||
-                    t instanceof javax.servlet.jsp.el.ELException) {
+                    t instanceof jakarta.servlet.jsp.el.ELException) {
                 rootCause = t.getCause();
             }
 
diff --git a/java/org/apache/jasper/runtime/ProtectedFunctionMapper.java b/java/org/apache/jasper/runtime/ProtectedFunctionMapper.java
index 59a6d7a..3901492 100644
--- a/java/org/apache/jasper/runtime/ProtectedFunctionMapper.java
+++ b/java/org/apache/jasper/runtime/ProtectedFunctionMapper.java
@@ -20,7 +20,7 @@ package org.apache.jasper.runtime;
 import java.lang.reflect.Method;
 import java.util.HashMap;
 
-import javax.servlet.jsp.el.FunctionMapper;
+import jakarta.servlet.jsp.el.FunctionMapper;
 
 /**
  * Maps EL functions to their Java method counterparts. Keeps the actual Method
diff --git a/java/org/apache/jasper/runtime/ServletResponseWrapperInclude.java b/java/org/apache/jasper/runtime/ServletResponseWrapperInclude.java
index 25b2b99..7f48f07 100644
--- a/java/org/apache/jasper/runtime/ServletResponseWrapperInclude.java
+++ b/java/org/apache/jasper/runtime/ServletResponseWrapperInclude.java
@@ -20,11 +20,11 @@ package org.apache.jasper.runtime;
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.servlet.ServletOutputStream;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
-import javax.servlet.jsp.JspWriter;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponseWrapper;
+import jakarta.servlet.jsp.JspWriter;
 
 /**
  * ServletResponseWrapper used by the JSP 'include' action.
diff --git a/java/org/apache/jasper/runtime/TagHandlerPool.java b/java/org/apache/jasper/runtime/TagHandlerPool.java
index 6a753cc..0b03870 100644
--- a/java/org/apache/jasper/runtime/TagHandlerPool.java
+++ b/java/org/apache/jasper/runtime/TagHandlerPool.java
@@ -17,9 +17,9 @@
 
 package org.apache.jasper.runtime;
 
-import javax.servlet.ServletConfig;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.Tag;
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.tagext.Tag;
 
 import org.apache.jasper.Constants;
 import org.apache.tomcat.InstanceManager;
diff --git a/java/org/apache/jasper/servlet/JasperInitializer.java b/java/org/apache/jasper/servlet/JasperInitializer.java
index 0fc5d3a..390c8b6 100644
--- a/java/org/apache/jasper/servlet/JasperInitializer.java
+++ b/java/org/apache/jasper/servlet/JasperInitializer.java
@@ -19,10 +19,10 @@ package org.apache.jasper.servlet;
 import java.io.IOException;
 import java.util.Set;
 
-import javax.servlet.ServletContainerInitializer;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.jsp.JspFactory;
+import jakarta.servlet.ServletContainerInitializer;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.jsp.JspFactory;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.compiler.Localizer;
diff --git a/java/org/apache/jasper/servlet/JspCServletContext.java b/java/org/apache/jasper/servlet/JspCServletContext.java
index f35d0d7..dec6674 100644
--- a/java/org/apache/jasper/servlet/JspCServletContext.java
+++ b/java/org/apache/jasper/servlet/JspCServletContext.java
@@ -37,17 +37,17 @@ import java.util.Set;
 import java.util.Vector;
 import java.util.concurrent.ConcurrentHashMap;
 
-import javax.servlet.Filter;
-import javax.servlet.FilterRegistration;
-import javax.servlet.FilterRegistration.Dynamic;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRegistration;
-import javax.servlet.SessionCookieConfig;
-import javax.servlet.SessionTrackingMode;
-import javax.servlet.descriptor.JspConfigDescriptor;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterRegistration;
+import jakarta.servlet.FilterRegistration.Dynamic;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRegistration;
+import jakarta.servlet.SessionCookieConfig;
+import jakarta.servlet.SessionTrackingMode;
+import jakarta.servlet.descriptor.JspConfigDescriptor;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.JasperException;
@@ -678,7 +678,7 @@ public class JspCServletContext implements ServletContext {
 
 
     @Override
-    public javax.servlet.ServletRegistration.Dynamic addJspFile(String jspName, String jspFile) {
+    public jakarta.servlet.ServletRegistration.Dynamic addJspFile(String jspName, String jspFile) {
         return null;
     }
 
diff --git a/java/org/apache/jasper/servlet/JspServlet.java b/java/org/apache/jasper/servlet/JspServlet.java
index baba197..0fe5ca6 100644
--- a/java/org/apache/jasper/servlet/JspServlet.java
+++ b/java/org/apache/jasper/servlet/JspServlet.java
@@ -25,13 +25,13 @@ import java.security.AccessController;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.EmbeddedServletOptions;
@@ -294,7 +294,7 @@ public class JspServlet extends HttpServlet implements PeriodicEventListener {
                 /*
                  * Requested JSP has been target of
                  * RequestDispatcher.include(). Its path is assembled from the
-                 * relevant javax.servlet.include.* request attributes
+                 * relevant jakarta.servlet.include.* request attributes
                  */
                 String pathInfo = (String) request.getAttribute(
                         RequestDispatcher.INCLUDE_PATH_INFO);
diff --git a/java/org/apache/jasper/servlet/JspServletWrapper.java b/java/org/apache/jasper/servlet/JspServletWrapper.java
index dbfd731..e77511c 100644
--- a/java/org/apache/jasper/servlet/JspServletWrapper.java
+++ b/java/org/apache/jasper/servlet/JspServletWrapper.java
@@ -22,16 +22,16 @@ import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.SingleThreadModel;
-import javax.servlet.UnavailableException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.tagext.TagInfo;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.Servlet;
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.SingleThreadModel;
+import jakarta.servlet.UnavailableException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.jsp.tagext.TagInfo;
 
 import org.apache.jasper.JasperException;
 import org.apache.jasper.JspCompilationContext;
diff --git a/java/org/apache/jasper/servlet/TldPreScanned.java b/java/org/apache/jasper/servlet/TldPreScanned.java
index afda3ca..398e004 100644
--- a/java/org/apache/jasper/servlet/TldPreScanned.java
+++ b/java/org/apache/jasper/servlet/TldPreScanned.java
@@ -19,7 +19,7 @@ package org.apache.jasper.servlet;
 import java.net.URL;
 import java.util.Collection;
 
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 import org.apache.jasper.compiler.Localizer;
 import org.apache.tomcat.util.descriptor.tld.TldResourcePath;
diff --git a/java/org/apache/jasper/servlet/TldScanner.java b/java/org/apache/jasper/servlet/TldScanner.java
index 5956ca2..747c5b3 100644
--- a/java/org/apache/jasper/servlet/TldScanner.java
+++ b/java/org/apache/jasper/servlet/TldScanner.java
@@ -32,9 +32,9 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
-import javax.servlet.ServletContext;
-import javax.servlet.descriptor.JspConfigDescriptor;
-import javax.servlet.descriptor.TaglibDescriptor;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.descriptor.JspConfigDescriptor;
+import jakarta.servlet.descriptor.TaglibDescriptor;
 
 import org.apache.jasper.compiler.JarScannerFactory;
 import org.apache.jasper.compiler.Localizer;
diff --git a/java/org/apache/jasper/tagplugins/jstl/Util.java b/java/org/apache/jasper/tagplugins/jstl/Util.java
index 7b75d16..d14ae67 100644
--- a/java/org/apache/jasper/tagplugins/jstl/Util.java
+++ b/java/org/apache/jasper/tagplugins/jstl/Util.java
@@ -25,14 +25,14 @@ import java.io.StringWriter;
 import java.io.UnsupportedEncodingException;
 import java.util.Locale;
 
-import javax.servlet.ServletOutputStream;
-import javax.servlet.WriteListener;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.JspTagException;
-import javax.servlet.jsp.PageContext;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.WriteListener;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponseWrapper;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.JspTagException;
+import jakarta.servlet.jsp.PageContext;
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.compiler.Localizer;
diff --git a/java/org/apache/jasper/tagplugins/jstl/core/Out.java b/java/org/apache/jasper/tagplugins/jstl/core/Out.java
index dad75c3..a908192 100644
--- a/java/org/apache/jasper/tagplugins/jstl/core/Out.java
+++ b/java/org/apache/jasper/tagplugins/jstl/core/Out.java
@@ -21,7 +21,7 @@ package org.apache.jasper.tagplugins.jstl.core;
 import java.io.IOException;
 import java.io.Reader;
 
-import javax.servlet.jsp.JspWriter;
+import jakarta.servlet.jsp.JspWriter;
 
 import org.apache.jasper.compiler.tagplugin.TagPlugin;
 import org.apache.jasper.compiler.tagplugin.TagPluginContext;
diff --git a/java/org/apache/tomcat/JarScanner.java b/java/org/apache/tomcat/JarScanner.java
index 27a8f6d..c5ca8a9 100644
--- a/java/org/apache/tomcat/JarScanner.java
+++ b/java/org/apache/tomcat/JarScanner.java
@@ -16,7 +16,7 @@
  */
 package org.apache.tomcat;
 
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 /**
  * Scans a web application and classloader hierarchy for JAR files. Uses
diff --git a/java/org/apache/tomcat/util/descriptor/DigesterFactory.java b/java/org/apache/tomcat/util/descriptor/DigesterFactory.java
index 2947033..d920a44 100644
--- a/java/org/apache/tomcat/util/descriptor/DigesterFactory.java
+++ b/java/org/apache/tomcat/util/descriptor/DigesterFactory.java
@@ -21,7 +21,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
@@ -46,7 +46,7 @@ public class DigesterFactory {
         CLASS_SERVLET_CONTEXT = ServletContext.class;
         Class<?> jspContext = null;
         try {
-            jspContext = Class.forName("javax.servlet.jsp.JspContext");
+            jspContext = Class.forName("jakarta.servlet.jsp.JspContext");
         } catch (ClassNotFoundException e) {
             // Ignore - JSP API is not present.
         }
diff --git a/java/org/apache/tomcat/util/descriptor/tagplugin/TagPluginParser.java b/java/org/apache/tomcat/util/descriptor/tagplugin/TagPluginParser.java
index dde2d37..d2d75c6 100644
--- a/java/org/apache/tomcat/util/descriptor/tagplugin/TagPluginParser.java
+++ b/java/org/apache/tomcat/util/descriptor/tagplugin/TagPluginParser.java
@@ -22,7 +22,7 @@ import java.net.URL;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
diff --git a/java/org/apache/tomcat/util/descriptor/tld/TagXml.java b/java/org/apache/tomcat/util/descriptor/tld/TagXml.java
index d025aab..60aa99d 100644
--- a/java/org/apache/tomcat/util/descriptor/tld/TagXml.java
+++ b/java/org/apache/tomcat/util/descriptor/tld/TagXml.java
@@ -19,9 +19,9 @@ package org.apache.tomcat.util.descriptor.tld;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.servlet.jsp.tagext.TagAttributeInfo;
-import javax.servlet.jsp.tagext.TagInfo;
-import javax.servlet.jsp.tagext.TagVariableInfo;
+import jakarta.servlet.jsp.tagext.TagAttributeInfo;
+import jakarta.servlet.jsp.tagext.TagInfo;
+import jakarta.servlet.jsp.tagext.TagVariableInfo;
 
 /**
  * Model of a tag define in a tag library descriptor.
diff --git a/java/org/apache/tomcat/util/descriptor/tld/TaglibXml.java b/java/org/apache/tomcat/util/descriptor/tld/TaglibXml.java
index 41acd1e..2a45c51 100644
--- a/java/org/apache/tomcat/util/descriptor/tld/TaglibXml.java
+++ b/java/org/apache/tomcat/util/descriptor/tld/TaglibXml.java
@@ -19,7 +19,7 @@ package org.apache.tomcat.util.descriptor.tld;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.servlet.jsp.tagext.FunctionInfo;
+import jakarta.servlet.jsp.tagext.FunctionInfo;
 
 /**
  * Common representation of a Tag Library Descriptor (TLD) XML file.
diff --git a/java/org/apache/tomcat/util/descriptor/tld/TldRuleSet.java b/java/org/apache/tomcat/util/descriptor/tld/TldRuleSet.java
index 3607e5e..4f43a47 100644
--- a/java/org/apache/tomcat/util/descriptor/tld/TldRuleSet.java
+++ b/java/org/apache/tomcat/util/descriptor/tld/TldRuleSet.java
@@ -18,9 +18,9 @@ package org.apache.tomcat.util.descriptor.tld;
 
 import java.lang.reflect.Method;
 
-import javax.servlet.jsp.tagext.TagAttributeInfo;
-import javax.servlet.jsp.tagext.TagVariableInfo;
-import javax.servlet.jsp.tagext.VariableInfo;
+import jakarta.servlet.jsp.tagext.TagAttributeInfo;
+import jakarta.servlet.jsp.tagext.TagVariableInfo;
+import jakarta.servlet.jsp.tagext.VariableInfo;
 
 import org.apache.tomcat.util.digester.Digester;
 import org.apache.tomcat.util.digester.Rule;
@@ -249,7 +249,7 @@ public class TldRuleSet implements RuleSet {
         public TagAttributeInfo toTagAttributeInfo() {
             if (fragment) {
                 // JSP8.5.2: for a fragment type is fixed and rexprvalue is true
-                type = "javax.servlet.jsp.tagext.JspFragment";
+                type = "jakarta.servlet.jsp.tagext.JspFragment";
                 requestTime = true;
             } else if (deferredValue) {
                 type = "jakarta.el.ValueExpression";
diff --git a/java/org/apache/tomcat/util/descriptor/web/FilterDef.java b/java/org/apache/tomcat/util/descriptor/web/FilterDef.java
index 8d70c79..30fd247 100644
--- a/java/org/apache/tomcat/util/descriptor/web/FilterDef.java
+++ b/java/org/apache/tomcat/util/descriptor/web/FilterDef.java
@@ -20,7 +20,7 @@ import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.servlet.Filter;
+import jakarta.servlet.Filter;
 
 import org.apache.tomcat.util.res.StringManager;
 
diff --git a/java/org/apache/tomcat/util/descriptor/web/FilterMap.java b/java/org/apache/tomcat/util/descriptor/web/FilterMap.java
index c432d95..868ef66 100644
--- a/java/org/apache/tomcat/util/descriptor/web/FilterMap.java
+++ b/java/org/apache/tomcat/util/descriptor/web/FilterMap.java
@@ -21,7 +21,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 
-import javax.servlet.DispatcherType;
+import jakarta.servlet.DispatcherType;
 
 import org.apache.tomcat.util.buf.UDecoder;
 
diff --git a/java/org/apache/tomcat/util/descriptor/web/JspConfigDescriptorImpl.java b/java/org/apache/tomcat/util/descriptor/web/JspConfigDescriptorImpl.java
index 0fe4cf1..3418225 100644
--- a/java/org/apache/tomcat/util/descriptor/web/JspConfigDescriptorImpl.java
+++ b/java/org/apache/tomcat/util/descriptor/web/JspConfigDescriptorImpl.java
@@ -19,9 +19,9 @@ package org.apache.tomcat.util.descriptor.web;
 import java.util.ArrayList;
 import java.util.Collection;
 
-import javax.servlet.descriptor.JspConfigDescriptor;
-import javax.servlet.descriptor.JspPropertyGroupDescriptor;
-import javax.servlet.descriptor.TaglibDescriptor;
+import jakarta.servlet.descriptor.JspConfigDescriptor;
+import jakarta.servlet.descriptor.JspPropertyGroupDescriptor;
+import jakarta.servlet.descriptor.TaglibDescriptor;
 
 public class JspConfigDescriptorImpl implements JspConfigDescriptor {
 
diff --git a/java/org/apache/tomcat/util/descriptor/web/JspPropertyGroupDescriptorImpl.java b/java/org/apache/tomcat/util/descriptor/web/JspPropertyGroupDescriptorImpl.java
index 50d1cc1..4785ee2 100644
--- a/java/org/apache/tomcat/util/descriptor/web/JspPropertyGroupDescriptorImpl.java
+++ b/java/org/apache/tomcat/util/descriptor/web/JspPropertyGroupDescriptorImpl.java
@@ -19,7 +19,7 @@ package org.apache.tomcat.util.descriptor.web;
 import java.util.ArrayList;
 import java.util.Collection;
 
-import javax.servlet.descriptor.JspPropertyGroupDescriptor;
+import jakarta.servlet.descriptor.JspPropertyGroupDescriptor;
 
 
 
diff --git a/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java b/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java
index 66e033d..3cb06da 100644
--- a/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java
+++ b/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java
@@ -26,11 +26,11 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.servlet.HttpConstraintElement;
-import javax.servlet.HttpMethodConstraintElement;
... 5859 lines suppressed ...


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org