系統(tǒng)相關(guān):
IntelliJ IDEA 2022.3.3
jdk v17+
tomcat v10.1.7
1、新建項(xiàng)目
我的是jdk17,選擇電腦對(duì)應(yīng)的jdk版本,后面涉及到這個(gè)的最好都保持一致。
2、創(chuàng)建出來(lái)的項(xiàng)目是沒有java目錄的,右鍵新建一個(gè)。
3、創(chuàng)建一個(gè)MyServlet.java類
package com.amos.servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @author Amos
* @date 2023/4/13
*/
@WebServlet(name = "MyServlet", urlPatterns = "/myservlet")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doGet====================");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doPost====================");
}
}
4、添加Servlet的依賴庫(kù),這里需要注意下,別弄錯(cuò)了!
Tomcat 10是第一個(gè)不再使用javax.servlet和相關(guān)包的版本。在Tomcat 10中,Servlet API已經(jīng)遷移到了Jakarta EE命名空間(jakarta.servlet)。這是因?yàn)镴ava EE已經(jīng)轉(zhuǎn)移到了Eclipse基金會(huì),并更名為Jakarta EE。因此,Servlet API也需要進(jìn)行相應(yīng)的更改。
在Tomcat 10之前的版本中,Servlet API仍然使用javax.servlet和相關(guān)包。但是,如果您使用的是Tomcat 10或更高版本,則需要使用jakarta.servlet和相關(guān)包。如果您的應(yīng)用程序使用舊的javax.servlet包,則需要將其遷移到新的jakarta.servlet包。
<!--tomcat 10+-->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
<!--tomcat 10之前版本-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
5、編輯configuration文件,關(guān)聯(lián)到本地已安裝的tomcat,配置相關(guān)內(nèi)容
6、這樣直接運(yùn)行可能會(huì)報(bào)如下錯(cuò)誤,需要指定一下編譯版本
在pom.xml文件中添加下面一段內(nèi)容
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
在Project Struture中選擇一下Language level,這里為了保持一致,我選了17版本。
?最后,訪問(wèn)http://localhost:8080/servlet_test_war/myservlet,可以在控制臺(tái)看到doGet方法已經(jīng)被調(diào)用了。
注意:當(dāng)添加完Artifact后,即servlet-test:war,在編輯configuration的server下的url,會(huì)自動(dòng)給從http://localhost:8080變成http://localhost:8080/servlet_test_war/,所以最終訪問(wèn)路徑就變成了http://localhost:8080/servlet_test_war/myservlet。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-455370.html
完結(jié)!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-455370.html
到了這里,關(guān)于IDEA2023創(chuàng)建MavenWeb項(xiàng)目,并搭建Servlet工程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!