WebSphere Application Server 作為 e-Business 應用核心,基於 Java Servlet 技術將基本 HTTP Server 昇級為 Java 應用伺服器,提供遠超 CGI 的性能表現。本文系統介紹 Servlet 技術內幕,並與傳統 CGI 技術深度對比。
| 優勢維度 | 具體說明 |
|---|---|
| 資源交互 | 可交互文件、數據庫、Applet、Java 應用等生成響應;可保存請求-響應過程信息 |
| 安全控制 | 伺服器授權本地資源訪問,Servlet 自身控制外部用戶訪問量與性質 |
| 分布式能力 | 可作為其他服務的客戶端,支撐分布式應用系統 |
| 部署靈活 | 可從本地硬盤或遠端網絡動態加載 |
| 鏈式調用 | Servlet 可調用另一個或一系列 Servlet(Filter/Chain 模式前身) |
| 標籤技術 | Servlet Tag 技術支援在 HTML 中動態調用 Servlet |
| 協議無關 | API 不假設傳輸協議,擴展性極強 |
| Java 基因 | 繼承面向對象、健壯、安全、可移植、自動網絡下載等所有 Java 優勢 |
init()(僅一次)service(request, response),可派生 doGet/doPost 或自定義方法destroy()$query_string = $ENV{'QUERY_STRING'};
$query_string =~ s/%([\dA-Fa-f][\dA-Fa-f])/pack("C", hex($1))/eg;
$query_string =~ s/\+/ /g;
@pairs = split(/&/, $query_string);
foreach $pair (@pairs) {
($key, $value) = split(/=/, $pair);
$form_data{$key} = $value;
}
$firstname = $form_data{"firstname"};
$lastname = $form_data{"lastname"};
print "Hello, $firstname $lastname. Thank you for your visit!";
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletOutputStream out = response.getOutputStream();
response.setContentType("text/html");
String firstname = request.getParameter("firstname");
String lastname = request.getParameter("lastname");
out.println("Hello, " + firstname + " " + lastname + ".");
out.println("Thank you for your visit!");
out.close();
}
HttpServlet,框架自動完成參數解碼,直接獲取 Key-Value 對javax.servlet、javax.servlet.http、java.ioWebSphere 提供功能強大的 Servlet API,擁有比 JSDK 更多功能與更優性能,為 Servlet 編程提供卓越支撐。隨 WAS 推廣與 Java 普及,Servlet 技術必將取代 CGI,成為 Web Server 功能擴展的標準技術。