手動構建Servlet項目的流程


  前面討論過手動建立jsp的項目,jsp是tomcat服務器負責編譯執行,所以配置相對簡單,而Servlet需要先把java源文件編譯成字節碼class文件,然后再執行,所以需要servlet-api.jar這個包的支持,使用集成的開發環境時,IDE幫助我們做了一些事情,所以手動配置和IDE的原理是一樣的,xml文件的編寫方式也是一樣的,下面就從頭開始建立一個servlet的項目

  首先在tomcat服務器目錄下的webapps目錄下新建一個目錄作為項目目錄,我建立的是MyFirstServlet,然后在這個目錄下建立一個WEB-INF目錄,這個和前面的一樣,能直接通過瀏覽器訪問的資源都要放在WEB-INF目錄外面,而WEB-INF目錄是無法通過瀏覽器進行訪問的,然后在WEB-INF目錄中建立classes和lib目錄,lib目錄是放相關類庫的,classes目錄就是servlet運行的目錄,我們編寫好的java源文件可以放到WEB-INF下,也可以自己定義一個存放源文件的目錄,但是千萬不要放在可以被訪問到的地方,然后我們復制web.xml文件,放在WEB-INF目錄下,這樣我們的目錄就部署完畢了,然后我們編寫簡單的servlet源文件,代碼如下:

 1 package servlet;
 2 
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 
 6 import javax.servlet.ServletException;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10 
11 /*
12  * 繼承於Servlet
13  */
14 public class HelloServlet extends HttpServlet {
15 
16     @Override
17     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
18         System.out.println("處理GET請求");
19         //獲取輸入
20         PrintWriter out = response.getWriter();
21         //指定輸出文件類型和編碼
22         response.setContentType("text/html; charset=utf-8");
23         //開始輸出
24         out.println("<strong>Hello Servlet !!!</strong>");
25     }
26 
27     @Override
28     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
29         doGet(request, response);
30     }
31 
32 }

  這個java源文件是不能直接用javac編譯的,原因是因為我們沒有添加servlet的jar包,有兩種方法來配置編譯環境

  第一個方法是讓之前配置過JDK去加載jar包進行編譯,我們復制tomcat服務器目錄下lib目錄中的servlet-api.jar文件,復制到之前配置好的%JAVA_HOME%\jre\lib\ext\下,如下圖:

  

  第二種方法是,還可以在之前配置好的環境變量CLASSPATH最后追加servlet-api.jar的路徑,比如我的是:;%CATALINA_HOME%\lib\servlet-api.jar,然后確定即可生效,這兩種方法都可以,但是推薦第一種,因為jar包復制過去,以后服務器目錄改變了也不影響

  然后我們就可以直接編譯java源文件了,我使用的編碼是UTF-8的,所以用:javac -encoding utf-8 HelloServlet.java進行編譯

  

  那么編譯成功,同目錄下會出現一個HelloServlet.class的字節碼文件,然后我們復制該文件到classes/servlet/下,就是路徑要和package聲明包的保持一致,然后配置web.xml文件,當然在Servlet3.0之后還可以用注解進行url配置,xml文件內容如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" metadata-complete="true" version="3.1">
 3   <welcome-file-list>
 4     <welcome-file>/index.jsp</welcome-file>
 5   </welcome-file-list>
 6 
 7   <servlet>
 8     <servlet-name>HelloServlet</servlet-name>
 9     <servlet-class>servlet.HelloServlet</servlet-class>
10   </servlet>
11   <servlet-mapping>
12     <servlet-name>HelloServlet</servlet-name>
13     <url-pattern>/servlet/HelloServlet</url-pattern>
14   </servlet-mapping>
15   <servlet-name>HelloServlet</servlet-name>
16     <url-pattern>/servlet/HelloServlet/</url-pattern>
17   </servlet-mapping>
18   
19 </web-app>

  這里配置和2個url-pattern用任何一個都能訪問,注意<servlet-class>的配置,要把包寫完整,寫好之后保存;然后啟動tomcat,輸入http://localhost:8080/MyFirstServlet/servlet/HelloServlet,訪問就可以了

  

  以上就是手動配置的過程,我們可以把IDE的項目手動的移植過來,也可以自由的配置JavaBean和其他的業務邏輯類等,只要原理明白了其他的就簡單了,這樣就不會出現只會使用IDE的被動,開發起來也更加靈活


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM