client_types.xml 文件
client_types.xml 文件为扩展 PageListServlet 的 Servlet 提供客户机类型检测支持。使用 client_types.xml 文件中的配置数据,Servlet 可以确定调用客户机响应所需的语言类型。
注意: 在 WebSphere® Application Server V9.0 中不推荐使用 PageList Servlet 定制扩展,在以后的发行版本中将移除该功能。重新设计旧应用程序以使用
javax.Servlet.filter 类而不使用 com.ibm.Servlet 类。
客户机类型检测支持允许 Servlet 使用 callPage 方法调用适当的 JavaServer Pages (JSP) 文件。Servlet 基于请求的标记语言类型选择 JSP 文件。
Servlets 必须使用以下版本的 callPage 方法来确定客户机所需的标记语言类型:
callPage(String mlName, String pageName, HttpServletRequest request,
HttpServletResponse response)
其中自变量是:
- mlName - 标记语言类型
- pageName - 在 PageListServlet 配置中定义的页面名称
- request - HttpServletRequest 对象
- response - HttpServletResponse 对象
请复审“扩展 PageListServlet”中的“扩展 PageListServlet 代码”示例,以了解 Servlet 如何调用 callPage 方法。
在此示例中,由 PageListServlet 提供的客户机类型检测方法 getMLTypeFromRequest(HttpServletRequestrequest) 检查 HttpServletRequest 对象请求头,然后在 client_types.xml 文件中搜索匹配。
客户机类型检测方法执行以下操作:
- 使用输入的 HttpServletRequest 和 client_types.xml 文件检查匹配的 HTTP 请求名和值。
- 如果找到一个匹配项,那么将返回为 <client-type> 元素配置的标记语言值。
- 如果找到多个匹配项,那么此方法将返回第一个找到匹配的 <client-type> 元素的标记语言。
- 如果未找到匹配项,那么将返回在 PageListServlet 配置中定义的缺省页面的标记语言值。
位置
client_types.xml 文件位于 install_root/properties 目录中。
使用说明
请查看以下使用情况问题的答案:
- 该文件是只读文件吗?
否
- 该文件由产品组件更新吗?
否
- 如果是,那么什么触发其更新?
该文件由用户手动创建和更新。
- 如何以及何时使用该文件的内容?
扩展 PageListServlet Servlet 的 Servlet 使用此文件来确定调用客户机所需的响应语言类型。
样本文件条目
<?xml version="1.0" >
<!DOCTYPE clients [
<!ELEMENT client-type (description, markup-language,request-header+)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT markup-language (#PCDATA)>
<!ELEMENT request-header (name, value)>
<!ELEMENT clients (client-type+)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT value (#PCDATA)>]>
<clients>
<client-type>
<description>IBM Speech Client</description>
<markup-language>VXML</markup-language>
<request-header>
<name>user-agent</name>
<value>IBM VoiceXML pre-release version 000303</value>
</request-header>
<request-header>
<name>accept</name>
<value>text/vxml</value>
</request-header>
</client-type>
<client-type>
<description>WML Browser</description>
<markup-language>WML</markup-language>
<request-header>
<name>accept</name>
<value>text/x-wap.wml</value>
</request-header>
<request-header>
<name>accept</name>
<value>text/vnd.wap.xml</value>
</request-header>
</client-type>
</clients>