将 Microsoft 的 Internet Information Server 用作 Java
现在这个工具极大地简化了您的工作。而 getParameterNames 方法就具有了类似下面的形式:
public Enumeration getParameterNames()
{
return(
new EnumerationComposite(
new RequestDictionary[] {
request.getQueryString(),
request.getForm() } ) );
}
响应对象的下一个最常用的方法是 getSession。会话对象是另一个核心对象,它在 ASP 和 servlet 之间互为映像。因此,您提供的会话就必须拥有自己的适配器,稍后我会对此加以说明。但在我说明之前,请先看这个请求方法:
public HttpSession getSession( boolean flag )
{
return( new SessionAdapter() );
}
在本文中,需要改写的请求对象的最后一个方法是 getCookies。顾名思义,它返回客户机所提供的 cookie 的集合。ASP 版本的 cookie 对象使我感到为难,它似乎用作自身的一个集合,但又引出了许多具有莫明其妙的功能的方法。但是我能够对脚本进行充分的剖析来改写 servlet。由于 ASP 版本中返回 Enumeration,而 servlet 版本中则返回一个数组,这样就可以使用 Vector 类中一个不常用的方法 copyInto,来实现这种转换,这是唯一的小窍门。另外请注意,由于在 com.ms.iis.asp 包和 javax.servlet.http 包中,类名是完全相同的,因此我们不得不明确指明每个 Cookie 对象的包名。代码如下:
public javax.servlet.http.Cookie[] getCookies()
{
Vector tmpList = new Vector();
CookieDictionary aspCookies = this.request.getCookies();
IEnumerator e = aspCookies.keys();
while( e.hasMoreItems() )
{
String key = (String) e.nextItem();
String val = aspCookies.getCookie( key ).getValue();
补充:Jsp教程,J2EE/EJB/服务器