Struts使用者與開髮指南(前言之二)
0.6 屬性(PRoperties)檔案和資源綁定(Resourse Bundles)
很多java應用程式(包括Web應用程式在內)經常透過 屬性檔案進行一些設定。屬性檔是Struts框架用來提供應用程式訊息資源資源綁定的基礎所在。
關於屬性文件更多,請參考:
.The Java Tutorial中的Using Properties to Manage Program Attributes
支持。 Struts從一建立開始就對應用程式的在地化有很好的支援。
關於在地化和資源綁定的更多,請參考:
.The Java Tutorial 中的About the ResourceBundle Java T〟〜、 let平台就把HTTP強製造型(或構造)為物件導向的形式。這個策略使得Java開發人員省下更多的時間去處理自己的應用程式的功能上,而不是放在HTTP的機制處理上。
HTTP提供了一套擴充伺服器的基本機制,即公共網關介面(Common Gateway Interface,CGI)。伺服器可以傳遞一個請求給CGI程序,然後CGI程序回傳一個回應。同樣,一個Java伺服器傳遞一個請求給一個Servlet容器,容器可以對請求作一些處理,也可以把這個請求直接回還給HTTP伺服器,容器檢查它的Servlet列表來決定是否要對這個請求進行處理,假如請求註冊了一個Servlert,那麼容器就把這個請求轉交給這個Servlet。
當一個請求進入時,容器檢查該請求是否註冊了Servlet,假如找到一個匹配的Servlet,容器就把這個請求傳給這個Servlet,假如沒有,請求就被返還給HTTP伺服器。
容器的職責就是治理Servlet的生命週期,創建Servlet,呼叫Servlet,最後釋放Servlet。
一般情況下一個Servlet是[javax.servlet.http.HttpServlet]的一個子類,一個Servlet必須實作容器需要呼叫的四個方法:
let。ServSamp.public void次被建立時和執行所有請求之前Servlet容器呼叫這個方法;
.public void doGet(HttpServletRequest request,HttpServletResponse response)此方法用於處理一個使用HTTP GET 協定的請求,並產生一個對應的動態回應; public void doPost(HttpServletRequest request HttpServletResponse response)此方法用於處理一個使用HTTP POST協定的請求,並產生一個對應的動態回應;
.public void destroy() 當Servlet服務時暫停這個實例服務時,當容器呼叫這個實例時,當容器時諸如暫停這個實例服務時,當容器時調用這個實例時,當容器時沒有調用這個實例服務時,諸如活動時中止Web應用程式正在被undeploy或當整個容器被shut down時;
Struts框架已為我們的應用程式提供一個現成Servlet[org.apache.struts.action.ActionServlet]。身為一個Struts應用程式開發人員,在使用Struts框架的ActionServlet實例的同時,了解Servlet的基礎知識和明白它在Web應用程式中所扮演的角色也是相當重要。
關於Servlet的更多知識,請參考:
.java.sun.com中的The Java Servlet Technology;
.java.sun.com中的The Java Servlet Technology;
.java.sun.com中的The Java Servlet Technology;
.java.sun.com的的Java Servlet Technology;
.The Java Web Service Tutorial的Web applications;
0.7.1 Servlet和Thread
『 》容器。一個特定的Servlet只能建立一個實例,透過同一個物件為註冊了這個Servlet的每個請求服務。這個策略可以讓容器充分利用系統資源,同時也必須考慮Servlet的doGet和doPost方法編碼的執行緒安全問題。
關於Servlet與執行緒安全的更多資料,請參考:
.The Java Web Service Tutorial中的Controlling Concurrent access to Shared Resourceshttp://javasun.com/webservices/t.com/doc Servlets5.Html#64386;
0.7.2 Servlet上下文(Context)
ServletContext介面[javax.servlet.ServletContext]所提供的上下文Servlet可以透過getServletConfig()方法訪問,而jsp頁面可以透過隱含變數application變數獲得。 Servlet上下文提供的幾個API在創建Struts Web應用程式時是相當有用的。
.存取Web應用程式資源:Servlet可以透過getResource()和getResourceAsStream()方法存取Web應用程式內的靜態資源檔案;
.Servlet上下文屬性:上下文可以用來儲存Java對象,透過字串值的key來識別對象,這些屬性對整個Web應用程式都是全域的,Servlet可以透過getAttribute(),getAttributeNames(),removeAtrribute()和setAttribute()方法進行存取。對JSP頁面來說,Servlet上下文屬性相當於「應用程式作用域Bean」;
關於Servlet上下文的更多信息,請參考:
.The Java Web Services Tutorial中的Accessing the Webtext http://text java.sun.com/webservices/docs/1.0/tutorial/doc/Servlets10.html#64724;
0.7.3 Servlet請求
0.7.3 Servlet請求
貝servlet.http.HttpServletRequest]。這個請求介面提供了一套存取包含在底層HTTP請求內的所有資訊的物件導向機制,包含:
.Cookie:透過getCookie()方法取得包含在請求中的有效Cookie集;
.頭:可以透過包含在請求中的有效Cookie集;
。名稱存取包含在請求中的HTTP頭。你可以列舉包含的所有的HTTP頭的名稱;
.參數:請求參數,可以透過名稱存取包含在URL的查詢字串中(doGet)或包含在請求內容中(doPost)的請求參數;
.請求特徵:輸入HTTP請求的一些其他特徵,諸如GET或POST方法使用的協議規格("http" 或"https"),等等;
.請求URI資訊:透過getRequestURI()方法可以獲得原始的請求URL 。另外,Servlet容器把請求URL解析為一些可以單獨存取的組成部分(contextPath、 servletPath和pathInfo);
.用戶資訊:假如你使用了用戶治理的安全,那麼你就可以找到一個已認證用戶名,獲得一個代表目前使用者的Principal對象,還有目前使用者是否被授權為一個特定角色;
另外,Servlet請求也支援請求屬性(在JSP中,就是請求作用域Bean),類似前面講到的Servlet上下文屬性。請求屬性常用於業務邏輯層和視圖層之間狀態資訊通信,業務邏輯層產生這些狀態訊息,視圖層使用這些資訊產生相應的回應。
Servlet容器會確保一個特定的請求被一個單獨線程的Servlet處理,所以你就不必擔心在訪問Servlet請求的屬性時有關線程安全的問題。
關於Servlet請求的更多,請參考:
.The Java Web Tutorial中的Getting Information from Requestshttp://java.sun.com/webservices/docs/1.03/2721.03 月;
0.7.4 Servlet回應
一個Servlet的主要目的就是處理一個輸入的Servlet請求[javax.servlet.http.HttpServletRequest],並產生對應的回應。產生回應的過程是透過呼叫Servlet回應介面[javax.servlet.http.HttpServletResponse]對應的方法來完成的,可用的方法如下:
.設定HTTP頭:你可以設定包含在回應中的HTTP頭資訊。最重要的HTTP頭資訊就是Content-Type,它告訴你的客戶端包含在回應體中資訊是哪種類型的,一般情況下,設為text/html類型就是HTML頁面,或設為text/xml類型就是XML文檔;
.設定Cookies:你可以向當前的回應中增加Cookie;
.發送錯誤回應:你可以使用sendErro()發送一個HTTP錯誤狀態資訊(代替一般的頁面內容);
.其他資源:你可以使用sendRedirect()方法重新導向客戶端到你指定的其他URL資源上去;
使用Servlet回應API的一個重要原則就是呼叫維護頭資訊和Cookies所有方法都必須在快取的全部回應內容第一次被更新給客戶端之前完成。原因是因為這些訊息都是作為HTTP回應最開始部分被傳遞的,因此試圖在頭訊息已被送出之後再加入頭訊息,必然是徒勞無功的。
使用Model 2模式的應用程式的表現層,你可能不會直接使用Servlet 回應APIs來產生回應。一般是使用JSP頁面來完成,在Servlet容器中JSP頁面將被JSP編譯器轉換為Servlet,由這個JSP Servlet產生回應,其中可能包含一些JSP標籤產生的動態資訊。
其他的表現系統,諸如Struts工具Velocity框架,可能把生成響應的任務代理給一個專門的Servlet來完成,但是原理是相同的。你建立一個模板,然後動態的回應由模板動態產生。
關於Servlet回應的更多,請參考:
.The Java Web Tutorial中的ConstrUCting Responseshttp://java.sun.com/vls/docs/1.0/tuialting Responseshttp://java.sun.com/vls/docs/1.0/36/2/1375375357; 0.7.5 過濾器(Filtering)
🎜 假如你使用2.3版或更新規格的Servlet容器(如Tomcat4.x),你可以使用新的過濾器APIs[javax.servlet.Filter]組合一些元件來處理請求和產生回應。過濾器其實是一個過濾器鏈的集合,每個過濾器都可以處理請求和產生回應,然後把處理權交給下一個過濾器,最後呼叫Servlet。
Struts 1.x系列(1.0,1.1版本等)僅支援2.2版本或更早的Servlet規範的Servlet容器,所以Struts本身並沒有使用過濾器。下一代的Struts(2.x系列)是基於Servlet2.3或更新規範的。 Struts 2.x版可能會使用到過濾器。
關於過濾器更多,請參考:
.Filtering Requests and Responseshttp://java.sun.com/webf.會話( session
以上是Struts使用者與開髮指南(前言之二)的內容,更多相關文章請關注PHP中文網(www.php.cn)!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP商城商品管理系統的設計與開發指南摘要:本文將介紹如何使用PHP開發一個強大的商城商品管理系統。系統包括商品的新增、編輯、刪除、搜索,以及商品分類管理、庫存管理和訂單管理等功能。透過本文的指南,讀者將能夠掌握PHP開發商城商品管理系統的基本流程和技巧。引言隨著電子商務的快速發展,越來越多的企業選擇在網路上開設商城。而商品管理系統作為商城的核心功能之一,

隨著網路的發展,網站已成為人們獲取資訊和交流的重要方式。而為了更好地管理和維護網站內容,CMS(ContentManagementSystem)系統應運而生。作為一種常用的網站架設工具,CMS系統提供了一種簡單、快速、有效率的方式來建立和管理網站。而PHP作為一種強大的後端語言,在CMS系統開發上應用廣泛。本文將為大家說明PHP中的CM

PHPExchange郵箱開髮指南:一步步實現主要功能隨著互聯網的快速發展,電子郵件已經成為人們日常生活和工作中不可或缺的一部分。 Exchange信箱作為常用的企業級郵件解決方案,提供了更強大且更安全的郵件功能。本文將為讀者提供一份PHPExchange郵箱開髮指南,透過一步步驟實現主要功能,幫助讀者建立自己的Exchange郵件系統。第一步:搭建

PHPWebSocket開發入門指南:一起探索實現各種功能的方法引言:隨著網路的發展,即時通訊變得越來越重要。傳統的HTTP協定在即時性方面表現較為疲軟,而WebSocket協定則能夠提供更有效率的即時通訊解決方案。 PHP作為一種常見的伺服器端語言,也能夠透過WebSocket來實現即時通訊功能。本文將介紹PHPWebSocket開發的入門知識與一些常

PHP開發指南:如何實現網站存取權限控制在開發一個網站時,保護使用者資料和確保敏感資訊的安全性至關重要。一個常用且有效的方法是透過網站存取權限控制來限制不同使用者對不同頁面的存取權限。本文將介紹如何使用PHP實現網站存取權限控制,並提供一些程式碼範例來幫助您快速上手。步驟一:建立資料庫表首先,我們需要建立一個資料庫表來儲存使用者資訊和權限。下面是一個範例的MySQL

隨著微信公眾號在社群網路中的逐漸普及,越來越多的開發者開始涉足微信公眾號開發領域。在這其中,PHP作為一種常見的後端程式語言,也開始被廣泛應用於微信公眾號的開發。本文將介紹PHP在微信公眾號發展上的基礎知識與常用技巧。一、PHP與微信公眾號開發基礎微信公眾號開發微信公眾號是指一種基於微信平台的互聯網應用程序,可以為用戶提供不同類型的服務和內容,如信息推送

PHP開發指南:實現簡單的友情連結功能友情連結是網站常見的功能,透過友情連結可以與其他網站建立互相推薦和互友關係,增加網站的流量和使用者轉換率。在本篇文章中,我們將介紹如何使用PHP開發一個簡單的友情連結功能。建立資料庫表首先,我們需要在資料庫中建立一個用於儲存友情連結資訊的表。可以使用下列SQL語句建立表格結構:CREATETABLE`links`(

隨著網路的快速發展,電子商務成為了人們越來越重要的購物方式,也促進了許多企業的發展。而在電子商務系統的開發中,PHP作為一種流行的程式語言,被廣泛應用於電子商務系統的設計與開發。本文將介紹PHP電子商務系統的開發指南。一、電子商務系統的基本要素在開始開發PHP電子商務系統之前,我們需要了解電子商務的基本要素。這些要素包括:1.商品展示:電子商務系統需要支援
