繁体中文
设为首页
加入收藏
当前位置:JSP技术首页 >> J2EE/EJB/服务器 >> Weblogic6.0部署和配置WEB应用程序(6)

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

2004-10-01 08:26:10  作者:  来源:互联网  浏览次数:20  文字大小:【】【】【
简介:使用URL改写 在某些情形下,浏览器也许不接受cookies,这样就不能用cookies来进行会话跟踪。URL改写就是这种情形下的一个解决办法,当Weblogic服务器检测到浏览器不接受cookies时,就会自动替换URL。URL改写就会...

使用URL改写

在某些情形下,浏览器也许不接受cookies,这样就不能用cookies来进行会话跟踪。URL改写就是这种情形下的一个解决办法,当Weblogic服务器检测到浏览器不接受cookies时,就会自动替换URL。URL改写就会将编码的会话ID写进servlet返回给浏览器的Web页面的超级链接里。当用户随后点击这些链接时,Weblogic服务器从URL地址中取出ID,并在servlet调用getSession()方法时找到合适的HttpSession。

要在Weblogic服务器中使用URL改写,在Weblogic特有部署描述符weblogic.xml中的下,将属性URLRewritingEnabled设为true(这个属性的默认值是true)。

URL改写的编码原则

要支持URL改写,这里有一些代码应当如何处理URLs的一般原则。

· 避免在输出流中直接写URL,如:

out.println("catalog");

而是使用HttpServletResponse.encodeURL()方法,如:

out.println("

+ response.encodeURL("myshop/catalog.jsp")

+ "\">catalog");

调用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

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方法提交的表单数据时可设定使用的字符集。要通知处理表单数据的应用程序在使用的特定字符集,给处理表单数据(在标签的action属性里指定)的URL添加指定的”信号”字符,然后将那些字符映射到一个WEB应用程序部署描述符web.xml的编码上。POST数据数据正常以ASCII编码读取,除非用以下过程指定编码。

要用非ASCII字符集处理POST数据:

1. 在WEB应用程度部署描述符web.xml中用建立一个条目。这个条目应在web.xml 文件里的元素后,元素前。在这个条目中,总是包含weblogic.httpd.inputCharset类名,后跟一句点,再后就是信号字符串。包含HTTP字符集的名称。在下例中,字符串/rus/jo*被映射到windows-1251字符集:

weblogic.httpd.inputCharset./rus/jo*

windows-1251

2. 在传递表单数据时使用信号字符串编码HTML表单。如:

...

将信号字符串放在WEB应用程序名称(这种情况下也叫context路径-myWebApp-)后面和URL剩余部分的前面。

有关更多的WEB应用程序描述符的信息,参考定义Context参数。

责任编辑:admin
相关文章