• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

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

发布: 2007-7-01 18:47 | 作者: admin | 来源: | 查看: 12次 | 进入软件测试论坛讨论

领测软件测试网 使用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参数。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网