import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
//获取所有的参数
public class ShowParameters extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
String title = "Reading All Request Parameters";
out.println("<html><head><title>读取所有参数</title></head>"
+ "<BODY BGCOLOR='#FDF5E6'>/n" + "<H1 ALIGN=CENTER>" + title
+ "</H1>/n" + "<TABLE BORDER=1 ALIGN=CENTER>/n"
+ "<TR BGCOLOR=/"#FFAD00/">/n"
+ "<TH>Parameter Name<TH>Parameter Value(s)");
Enumeration paramNames = request.getParameterNames();
while (paramNames.hasMoreElements() //若枚举对象 paramNames还有 更多元素可以被提取 ) {
String paramName = (String) paramNames.nextElement();
out.print("<TR><TD>" + paramName + "/n<TD>");
String[] paramValues = request.getParameterValues(paramName);
if (paramValues.length == 1 //一般来说,HTML代码中的name没重名时, paramValues.length都为1,只有如:<INPUT TYPE="PASSWORD" NAME="cardNum">
Repeat Credit Card Number:
<INPUT TYPE="PASSWORD" NAME="cardNum"><BR><BR>
这里要求核对两次数输入的密码是否一致时,才有两个name重名,都叫做PASSWORD.
)
{
String paramValue = paramValues[0];
if (paramValue.length() == 0)
out.println("<I>No Value</I>");
else
out.println(paramValue);
} else {//如果一个name有多个value的情况 :
out.println("<UL>");
for (int i = 0; i < paramValues.length; i++) {
out.println("<LI>" + paramValues[i]);
}
out.println("</UL>");
}
}
out.println("</TABLE>/n</BODY></HTML>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}