Weblogic6.0部署和配置WEB應用程序(6)

發表于:2007-07-01來源:作者:點擊數: 標簽:
使用URL改寫 在某些情形下,瀏覽器也許不接受cookies,這樣就不能用cookies來進行會話跟蹤。URL改寫就是這種情形下的一個解決辦法,當Weblogic 服務器 檢測到瀏覽器不接受cookies時,就會自動替換URL。URL改寫就會將編碼的會話ID寫進servlet返回給瀏覽器的Web
使用URL改寫
在某些情形下,瀏覽器也許不接受cookies,這樣就不能用cookies來進行會話跟蹤。URL改寫就是這種情形下的一個解決辦法,當Weblogic服務器檢測到瀏覽器不接受cookies時,就會自動替換URL。URL改寫就會將編碼的會話ID寫進servlet返回給瀏覽器的Web頁面的超級鏈接里。當用戶隨后點擊這些鏈接時,Weblogic服務器從URL地址中取出ID,并在servlet調用getSession()方法時找到合適的HttpSession。
要在Weblogic服務器中使用URL改寫,在Weblogic特有部署描述符weblogic.xml中的<session-descriptor>下,將屬性URLRewritingEnabled設為true(這個屬性的默認值是true)。
URL改寫的編碼原則

要支持URL改寫,這里有一些代碼應當如何處理URLs的一般原則。
·    避免在輸出流中直接寫URL,如:
out.println("<a href=\"/myshop/catalog.jsp\">catalog</a>");
而是使用HttpServletResponse.encodeURL()方法,如:
out.println("<a href=\""
     + response.encodeURL("myshop/catalog.jsp")
     + "\">catalog</a>");
調用encodeURL()方法決定URL是否需要改寫,如要就用包含會話ID的URL改寫。會話ID被添加到URL中,并以分號開頭。
·    除了Weblogic服務器響應返回的URLs,也要編碼重定向的URLs。如
if (session.isNew())
  response.sendRedirect (response.encodeRedirectUrl(welcomeURL));  
Weblogic服務器在一個新會話開始時就會使用URL改寫,即使瀏覽器不接受cookies,因為服務器不能斷定瀏覽器在會話的第一次訪問時是否接受cookies。
·    通過檢查HttpServletRequest.isRequestedSessionIdFromCookie()方法返回的布爾值,servlet能確定是否從cookie按收到給定的會話ID。也許應用程序適當響應,或者簡單地依賴Weblogic服務器的URL改寫。
URL改寫和無線訪問協議(WAP)
如編寫WAP應用程序,由于WAP協議不支持cookies,就必須使用URL改寫。另外,一些WAP設備的URL(包括參數)長度有128個字符的限制,這樣就限制了用URL改寫傳輸的數據數量。要允許參數使用更多空間,用IDLength屬性指定字節數,可以限制Weblogic服務器隨機產生的會話ID的長度。
使用字符集和POST數據
You can set the character set that is used when processing data from a form that uses the POST method. To inform the application that processes the form data that a particular character set is in use, you add specific "signal" characters to the URL used to process the form data (specified with the action attribute of the <form> tag) and then map those characters to an encoding in the Web Application deployment descriptor, web.xml. POST data is normally read as ASCII unless specified using the following procedure.
在處理從用POST方法提交的表單數據時可設定使用的字符集。要通知處理表單數據的應用程序在使用的特定字符集,給處理表單數據(在<form>標簽的action屬性里指定)的URL添加指定的”信號”字符,然后將那些字符映射到一個WEB應用程序部署描述符web.xml的編碼上。POST數據數據正常以ASCII編碼讀取,除非用以下過程指定編碼。
要用非ASCII字符集處理POST數據:
1.    在WEB應用程度部署描述符web.xml中用<context-param>建立一個條目。這個條目應在web.xml 文件里的<distributable>元素后,<servlet>元素前。在這個條目中,<param-name>總是包含weblogic.httpd.inputCharset類名,后跟一句點,再后就是信號字符串。<param-value>包含HTTP字符集的名稱。在下例中,字符串/rus/jo*被映射到windows-1251字符集:
<context-param>
<param-name>weblogic.httpd.inputCharset./rus/jo*</param-name>
<param-value>windows-1251</param-value>
</context-param>
2.    在傳遞表單數據時使用信號字符串編碼HTML表單。如:
<form action="http://some.host.com/myWebApp/rus/jo/index.html">
  ...
</form>
將信號字符串放在WEB應用程序名稱(這種情況下也叫context路徑-myWebApp-)后面和URL剩余部分的前面。
有關更多的WEB應用程序描述符的信息,參考定義Context參數。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97