【Java】Tomcat 10中無法正常使用Servlet
阿新 • • 發佈:2021-12-17
【Java】Tomcat 10中無法正常使用Servlet
問題描述
報錯:請求的資源[/ch2/servletController/Controller]不可用
版本:Tomcat 10.0.12, jdk-17.0.1,Windows 10, IDEA
POM 檔案中的依賴設定
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency>
Servlet檔案中的包引用
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
原因分析
Tomcat 10中把包名從以往版本的javax改成了jakart,而amaven導包的時候依舊使用原來的javax,導致Tomcat 10伺服器的Servlet介面和我寫的servlet檔案不匹配,從而無法正常執行。
解決方法
-
pom.xml檔案中依賴更改。點選Load Maven Changes。
<!-- https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api --> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>5.0.0</version> <scope>provided</scope> </dependency>
-
servlet檔案中的包引用改為
import jakarta.servlet.RequestDispatcher; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse;
參考資料
- Tomcat 10中Servlet無法正常使用的解決辦法 https://blog.csdn.net/qq_55069056/article/details/118105044