上篇部落格《配置TomCat環境》說了如何搭建jdk和Tomcat環境,這次我們在TomCat下寫一個簡單的Servlet執行個體,例子很簡單:用戶端輸入帳號和密碼,經Servlet處理,在服務端顯示使用者名稱和密碼,用戶端返回“登入成功”。
代碼 HTML 這個不用多說,和.NET中的HTML一樣,直接和使用者互動,並可以發出請求,提交表單資料。
<html><head><title>login</title></head><body><formaction="http://127.0.0.1:8080/MyFirstServlet/LoginTest" method="GET">ID:<input type="text" name="userName" ></br>PW:<input type="text" name="password" ></br><input type="submit" id="btnSubmit" value="submit"></form></body><html>
LoginTest.java
在我看來,經過編譯形成的類檔案,就是真正進行處理的類檔案,Tomcat部署中的設定檔,最後要的結果就是要找到這個類檔案。
import javax.servlet.*; import java.io.*; import javax.servlet.http.*; public class LoginTest extends HttpServlet{ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException { String userName=request.getParameter("userName"); String password=request.getParameter("password"); System.out.println(userName);System.out.println(password);response.setHeader("Content-type","text/html;charset=UTF-8"); response.getWriter().println("歡迎 "+userName+" 使用本系統!"); } } 運行結果
瀏覽器方面,首先輸入ID:lida、密碼:123,提交給Servlet處理;經過Servlet處理,返回給瀏覽器的是“歡迎 lida 使用本系統!”,如下:
伺服器方面,開啟Tomcat,可以看到把使用者名稱和密碼列印了命令列的最下端:
配置 以下是項目MyFirstServlet的設定檔,這個設定檔主要說明的是:Servlet的名字,指向的類和它的URL,注意設定檔的頭資訊不要更改:
<?xml version="1.0" encoding="ISO-8859-1"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"><servlet> <servlet-name>LoginTest</servlet-name> <servlet-class>LoginTest</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginTest</servlet-name> <url-pattern>/LoginTest</url-pattern> </servlet-mapping> </web-app>
時序圖 使用EA時序圖的方式,展現互動的過程:
簡單說來,這個處理過程是:
- 使用者輸入帳號和密碼,通過協議及指定的URL找到Tomcat
- Tomcat截取URL字串,找到項目名稱,樣本為MyFirstServlet
- Tomcat再次截取字串,找到要訪問的Servlet名稱,樣本為LoginTest
- 通過找到的Servlet名稱,找到映射到的地址
- 通過Servlet名稱,找到類檔案名稱
- 結合以上兩步,準確定位類檔案地址
- 把請求傳給類檔案,處理後發迴響應內容
- 瀏覽器解析響應內容,展現給使用者。
總結
執行個體很簡單,處理過程和一個.NET下的一般處理常式區別不大,因為是第一個,就像第一個VB程式一樣,簡單但也要紀念一下。
更多DRP系列部落格,其訪問《DRP項目總結》。