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就把所有的顯示出來。