package coreservlets;
import java.io.*;
import java.uitl.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ShowParameters extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
response.setContentType("text/html");
PrintWriter out=response.getWriter();
String title="showParameters";
out.println(ServletUtilities.headWithTitle(title)+
"<BODY bgcolor=/"#FDF5E6/">/n"+
"<h1>"+title+"</h1>/n"+
"</body>"+
"<Table border=1 align=center>/n"+
"<tr bgcolor=/"#FFAD00/">/n"+
"<th>Parameters Name<TH>Parameter Value(s)");
Enumeration paramNames=request.getParameterNames();
while(paramNames.hasMoreElement())
{
String paramName=(String)paramNames.nextElement();
out.println("<tr><Td>"+paramName+"/n<Td>");
String[] paramValues=request.getParamValues(paramName);
if(paramValues.length==1)
{
String paramValue=paramValues[0];
if(paramValue.length()==0)
out.println("<I>No Value</I>");
else
out.println(paramValue);
}
else
{
out.println("<UL>");
for(int i=0;i<paramValues.length;i++)
{
out.println("<LI>"+paramValues[i]);
}
out.println("</UL>");
}
}
out.println("</talbe>/n</body></html>);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
doGet(request,response);
}
}
首先这个servlet用HttpServletRequest的getParameterNames方法检查出所有参数名。
getParameterNames方法返回一个Enumeration,其中包含参数名,次序未定。接下来servlet
用标准的方式依次迭代Enumeration,使用hasMoreElements确定什么时候停止,使用
nextElement获取每个参数名。由于nextElement返回的是Object,故而必须转换为String,
并传递给getParameterValues,得到一个字符数组。如果这个数组种只有一项,且为空
字符串,那么该参数没值,该servlet表示为No Value。如果该数组中含有多项,那么
servlet就把所有的显示出来。