Idea不用Archetype創建Web項目
以新建模塊為例。
- 新建Maven項目
- 不勾選【Create from artchetype】,直接Next
- pom中添加一句話:
<artifactId>XXX</artifactId>
<!--↓ 加此句 -->
<packaging>war</packaging>
<!--↑ 加此句 -->
</project>
- 在src\main下新建文件夾【webapp】
- 在webapp下新建文件夾【WEB-INF】
- 在【WEB-INF】下新建文件【web.xml】
文件夾結構:
src
|--main
|--|--webapp
|--|--|--WEB-INF
|--|--|--|--web.xml
web.xml的內容:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
</web-app>
webapp文件夾上出現了一個小紅點,表示web功能生效,全賴pom中哪句war。
確認
-
Ctrl+Shift+Alt+S(Project Structure·項目結構)
-
選擇左側的Modules,選擇對應的模塊,選擇下面的【Web】
-
看看項目中是否有Web模塊,deploymentDescriptiors是否選中了web.xml。不是的話就手動改一下。
部署項目到Tomcat
- Run → Run Configuration → Tomcat Server → Local(前提是本地已經裝好Tomcat)
- Deployment(部署)→右側的+→選擇【Artifacts】→選擇需要部署的模塊
- 在webapp下放置一個jsp文件,如【index.jsp】,內容可以只是HTML
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
- 右鍵運行這個jsp文件,目的是調出tomcat的面板。這是頁面是404。
- 雙擊tomcat面板中的工程,可以正常顯示頁面。
測試Servlet
pom中添加依賴
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
寫Servlet
package org.ah.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/action")
public class MyServlet extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.getWriter().write("success");
}
}
測試
重啟Tomcat,雙擊模塊名運行,輸入servlet的url。