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);
?? }
?}
????? 首先這個(gè)servlet用HttpServletRequest的getParameterNames方法檢查出所有參數(shù)名。
?getParameterNames方法返回一個(gè)Enumeration,其中包含參數(shù)名,次序未定。接下來(lái)servlet
?用標(biāo)準(zhǔn)的方式依次迭代Enumeration,使用hasMoreElements確定什么時(shí)候停止,使用
?nextElement獲取每個(gè)參數(shù)名。由于nextElement返回的是Object,故而必須轉(zhuǎn)換為String,
?并傳遞給getParameterValues,得到一個(gè)字符數(shù)組。如果這個(gè)數(shù)組種只有一項(xiàng),且為空
?字符串,那么該參數(shù)沒(méi)值,該servlet表示為No Value。如果該數(shù)組中含有多項(xiàng),那么
?servlet就把所有的顯示出來(lái)。