好吧,又是一個簡單到不能再簡單的問題~~
由於各種原因,這次就不上圖了,直接步驟和代碼了。
1、前期准備
jdk、tomcat、EditPlus(eclipse)安裝成功並且設置好環境變量。
2、由於jdk(JavaSE)是無法直接編譯servlet的,所以需要將tomcat安裝目錄\lib\servlet-api.jar復制到java安裝目錄\lib下,並且為了確保沒有問題,可以在系統變量CLASSPATH后面加上“;%CATALINA_HOME%\lib\servlet-api.jar”(前提是CATALINA_HOME要設置好啊。。)
3、創建文件結構
我在tomcat的webapps目錄下新建了一個my文件夾,下面又新增了src文件夾(放所有的java文件包括servlet)、WEB-INF文件夾(放所有的classes類、jar包、靜態頁面和web.xml),WEB-INF文件夾里新建兩個文件夾:classes和lib。
4、現在可以寫代碼了,在src文件夾下新建文件夾servlet,在servlet文件夾內新建一個java文件,命名為HelloWorldServlet.java。
1 package servlet; 2 3 //打包,注意這個地方,待會在配置web.xml時會用到 4 5 import javax.servlet.http.*; 6 import javax.servlet.*; 7 import java.io.*; 8 9 //以上三個導入語句都是servlet要用到的,尤其是前兩個 10 11 public class HelloWorldServlet extends HttpServlet{ 12 13 protected void doGet(HttpServletRequest req,HttpServletResponse resp)throws IOException,ServletException{ 14 15 PrintWriter out = resp.getWriter(); //打印流,自動flush,不會拋出異常 16 out.println("<html><head><title>Hello</title></head><body>HelloWorld!</body></html>"); 17 18 //作用是輸出HelloWorld!字段 19 20 out.flush(); 21 22 //flush() 清空緩沖區的數據 23 24 out.close(); 25 26 //關閉 27 28 } 29 } 30
因為我用的是EditPlus,所以就手動來編譯一下吧(實話說一個兩個都也沒啥,多了我也不知道怎么辦比較好。。。)
運行——cmd——cd D:\apache-tomcat-8.0.12\webapps\my\src\servlet(這個路徑根據實際情況可以改)——javac HelloWorldServlet.java
如果出現亂碼的問題,請參見我的上一篇文章《解決java文件編碼和windows7系統(中文版)默認編碼沖突所導致的亂碼情況》
成功編譯之后,將生成的class文件復制到WEB-INF文件夾的classes文件夾中。注意,因為HelloWorldServlet.java的位置是在servlet文件夾內,所以在這里也要如法炮制,在classes文件夾里也要新建servlet文件夾,並將HelloWorldServlet.class文件放入其中。
5、別以為這就完事了。。配置web.xml同樣是件大事。如果沒有配置這個,100%報404(我才不會告訴你我蛋疼了好長時間)
如果你用的是eclipse或者其他的工具的話,可以在建立項目時就選擇創建默認的web.xml(內面的內容非常少,只有一些歡迎的頁面設置)。我是用的tomcat里example項目中改的,大家可以參考:
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <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"
metadata-complete="true"> 4 5 <servlet> 6 <servlet-name>Hello</servlet-name> 7 <servlet-class>servlet.HelloWorldServlet</servlet-class> 8 </servlet> 9 <servlet-mapping> 10 <servlet-name>Hello</servlet-name> 11 <url-pattern>/HelloWorldServlet</url-pattern> 12 </servlet-mapping> 13 </web-app> 14
加粗的內容是針對上文中寫的servlet的設置。大家可以如法炮制(實話說我也講不太明白,大家自行百度吧)。。。
6、最后,啟動tomcat,輸入http://localhost:8080/my/HelloWorldServlet ,搞定。
