最近學習java,主要是servlet相關的內容。IDEA和servlet之前都沒有碰過,所以做了一下小實驗,走了一些彎路;這里把一個完整的步驟寫出來,加深一下印象。
IDEA創建項目步驟
1. 在idea 14種新建一個java項目,類型是web Application
如下圖
將創建的項目命名為DemoServlet
2. 建一個servlet的類,在project欄中的項目src目錄上右鍵新建一個Servlet類,
命名為FirstServlet, 包名為javademo
3. 加入需要依賴的tomcat目錄下的servlet-api.jar包
4. 編寫FirstServlet的代碼,第三步加入了對servlet-api的引用后,在idea就可以智能提示servlet的成員了,寫好的簡單代碼如下:
public class FirstServlet extends javax.servlet.http.HttpServlet { protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { } protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.write("<h1> hello first servlet!</h1>"); } }
5. 編寫web.xml配置文件,我們用向導自動生成servlet,idea會在web.xml中寫好 <servlet>的配置,我們還需要增加<servlet-mapping>配置,完成的配置文件如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <servlet> <servlet-name>FirstServlet</servlet-name> <servlet-class>javademo.FirstServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FirstServlet</servlet-name> <url-pattern>/demo</url-pattern> </servlet-mapping> </web-app>
至此, 一個簡單的servlet網頁程序就編寫完成了,接下來我們看看如何部署。
在tomcat上部署
我在window上用的是xampp自帶的tomcat,主要看下如何在tomcat下部署我們剛剛創建的FirstServlet web應用。
1. 將源碼目錄里包含index.jsp的web目錄拷貝到tomcat的webapps目錄下,重命名為FirstServlet
2. 在這個目錄的WEB-INF目錄下增加一個classes的目錄
3. 在idea中編譯工程后,在out目錄下有編譯好的.class文件, 我們將項目產出目錄out\production\ServletDemo下的javademo文件夾拷貝到第二步創建的classes目錄中,最后的目錄結構如下
此處注意,classes中的目錄結構要和包保持一致
4. 重啟tomcat, 就可以在http://127.0.0.1:8080/FirstServlet/demo 這個地址看到我們的servlet頁面了。
需要注意這個url的路徑,FirstServlet是在webapps的目錄名,demo是在web.xml中的servlet-mapping中控制的