從Eclipse轉到IDEA不久,對於idea很多地方還不熟悉,所以遇到問題及時記錄,以便以後查閱
1、idea新建servlet項目:File--new project --java項目--選擇java ee--勾選web app--設置好名稱等就進入第二步(類需要extends HttpServlet))
2、配置tomcat全局設置:點擊調試配置--編輯結構--添加一個tomcat(local)--點擊configure配置tomcat路徑--在Deployment添加一個Artifact名稱隨意(項目名最好)
3、添加tomcat 依賴:點擊項目結構--modules--在dependencies中添加依賴(add加號)-- 選擇library-java-選擇tomcat
4、至此配置已經完成,開始編寫代碼:
java類:
package com.servlet.demo;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* Created by 一抹灬茶香 on 2016/11/14.
*/
// 擴展 HttpServlet 類
public class Demo extends HttpServlet {
private String message;
public void init() throws ServletException {
// 執行必需的初始化
message = "Hello World";
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// 設置響應內容類型
response.setContentType("text/html");
// 實際的邏輯是在這裏
PrintWriter out = response.getWriter();
out.println("<h1>" + message + "</h1>");
}
public void destroy() {
System.out.println("執行destroy方法");
}
}
web.xml需要添加映射
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>com.servlet.demo.Demo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
5、運行:啓動tomcat,打開瀏覽器輸入url即可,運行的結果和url自己看圖吧
http://localhost:8080/Demo/ 訪問的是項目下的index.jsp
想要訪問代碼中的mapping,需要加入自己定義的url(在web.xml中配置<url-pattern>):http://localhost:8080/Demo/HelloWorld
說一些題外的:關於tomcat配置好之後無法訪問8080首頁問題:
需要在第三部的dependencies中添加依賴-- 選擇External source-選擇tomcat安裝路徑/webapps/ROOT文件夾之後就可以訪問8080首頁面了,如果你在
右邊的App context 自定義了鏈接,需要使用自定義的鏈接訪問,只有一個 “/” 這位localhost:8080
在編寫web項目時,如果在類前加了註解,則不需要在web.xml中添加url映射 @WebServlet("/CheckBox")
/**
* Servlet implementation class CheckBox
*/
@WebServlet("/CheckBox")//表示此class映射的url爲"/CheckBox",不需要再在web.xml中添加映射,
// 否者重複,報錯
public class CheckBox extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
<!--CheckBox 添加註解後不需添加url映射 -->
<!--
<servlet>
<servlet-name>CheckBox</servlet-name>
<servlet-class>com.servlet.demo.CheckBox</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ACheckBox</servlet-name>
<url-pattern>/CheckBox</url-pattern>
</servlet-mapping>
-->
另外,新建html或者jsp時,如果建在項目根目錄下,需要在結構中添加新建的文件,具體步驟如下
點擊編輯結構--打開下面頁面--點擊編輯--然後在彈出窗口中點擊添加File,選擇新建的文件,完成,現在可以運行這個文件了,否者無法打開
(如果將文件新建在web目錄下,如圖的checkBox2.xml,不需要添加即可直接運行)