📄 36.html
字号:
下面这个例子寻找表单所发送的所有变量名字,并把它们放入表格中,没有值或者有多个值的变量都突出显示。 <br>
<br>
首先,程序通过HttpServletRequest的getParameterNames方法得到所有的变量名字,getParameterNames返回的是一个Enumeration。接下来,程序用循环遍历这个Enumeration,通过hasMoreElements确定何时结束循环,利用nextElement得到Enumeration中的各个项。由于nextElement返回的是一个Object,程序把它转换成字符串后再用这个字符串来调用getParameterValues。 <br>
<br>
getParameterValues返回一个字符串数组,如果这个数组只有一个元素且等于空字符串,说明这个表单变量没有值,Servlet以斜体形式输出“No Value”;如果数组元素个数大于1,说明这个表单变量有多个值,Servlet以HTML列表形式输出这些值;其他情况下Servlet直接把变量值放入表格。 <br>
<br>
ShowParameters.java <br>
<br>
注意,ShowParameters.java用到了前面介绍过的ServletUtilities.java。 <br>
package hall;<br>
<br>
import java.io.*;<br>
import javax.servlet.*;<br>
import javax.servlet.http.*;<br>
import java.util.*;<br>
<br>
public class ShowParameters extends HttpServlet {<br>
public void doGet(HttpServletRequest request,<br>
HttpServletResponse response)<br>
throws ServletException, IOException {<br>
response.setContentType("text/html");<br>
PrintWriter out = response.getWriter();<br>
String title = "读取所有请求参数";<br>
out.println(ServletUtilities.headWithTitle(title) +<br>
"<BODY BGCOLOR=\"#FDF5E6\">\n" +<br>
"<H1 ALIGN=CENTER>" + title + "</H1>\n" +<br>
"<TABLE BORDER=1 ALIGN=CENTER>\n" +<br>
"<TR BGCOLOR=\"#FFAD00\">\n" +<br>
"<TH>参数名字<TH>参数值");<br>
Enumeration paramNames = request.getParameterNames();<br>
while(paramNames.hasMoreElements()) {<br>
String paramName = (String)paramNames.nextElement();<br>
out.println("<TR><TD>" + paramName + "\n<TD>");<br>
String[] paramValues = request.getParameterValues(paramName);<br>
if (paramValues.length == 1) {<br>
String paramValue = paramValues[0];<br>
if (paramValue.length() == 0)<br>
out.print("<I>No Value</I>");<br>
else<br>
out.print(paramValue);<br>
} else {<br>
out.println("<UL>");<br>
for(int i=0; i<paramValues.length; i++) {<br>
out.println("<LI>" + paramValues[i]);<br>
}<br>
out.println("</UL>");<br>
}<br>
}<br>
out.println("</TABLE>\n</BODY></HTML>");<br>
}<br>
<br>
public void doPost(HttpServletRequest request,<br>
HttpServletResponse response)<br>
throws ServletException, IOException {<br>
doGet(request, response);<br>
}<br>
}<br>
<br>
<br>
<br>
<br>
测试表单 <br>
<br>
下面是向上述Servlet发送数据的表单PostForm.html。就像所有包含密码输入域的表单一样,该表单用POST方法发送数据。我们可以看到,在Servlet中同时实现doGet和doPost这两种方法为表单制作带来了方便。 <br>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><br>
<HTML><br>
<HEAD><br>
<TITLE>示例表单</TITLE><br>
</HEAD><br>
<br>
<BODY BGCOLOR="#FDF5E6"><br>
<H1 ALIGN="CENTER">用POST方法发送数据的表单</H1><br>
<br>
<FORM ACTION="/servlet/hall.ShowParameters"<br>
METHOD="POST"><br>
Item Number:<br>
<INPUT TYPE="TEXT" NAME="itemNum"><BR><br>
Quantity:<br>
<INPUT TYPE="TEXT" NAME="quantity"><BR><br>
Price Each:<br>
<INPUT TYPE="TEXT" NAME="price" VALUE="$"><BR><br>
<HR><br>
First Name:<br>
<INPUT TYPE="TEXT" NAME="firstName"><BR><br>
Last Name:<br>
<INPUT TYPE="TEXT" NAME="lastName"><BR><br>
Middle Initial:<br>
<INPUT TYPE="TEXT" NAME="initial"><BR><br>
Shipping Address:<br>
<TEXTAREA NAME="address" ROWS=3 COLS=40></TEXTAREA><BR><br>
Credit Card:<BR><br>
<INPUT TYPE="RADIO" NAME="cardType"<br>
VALUE="Visa">Visa<BR><br>
<INPUT TYPE="RADIO" NAME="cardType"<br>
VALUE="Master Card">Master Card<BR><br>
<INPUT TYPE="RADIO" NAME="cardType"<br>
VALUE="Amex">American Express<BR><br>
<INPUT TYPE="RADIO" NAME="cardType"<br>
VALUE="Discover">Discover<BR><br>
<INPUT TYPE="RADIO" NAME="cardType"<br>
VALUE="Java SmartCard">Java SmartCard<BR><br>
Credit Card Number:<br>
<INPUT TYPE="PASSWORD" NAME="cardNum"><BR><br>
Repeat Credit Card Number:<br>
<INPUT TYPE="PASSWORD" NAME="cardNum"><BR><BR><br>
<CENTER><br>
<INPUT TYPE="SUBMIT" VALUE="Submit Order"><br>
</CENTER><br>
</FORM><br>
<br>
</BODY><br>
</HTML> <br>
<br>
</td>
</tr>
<tr><td colspan=2 align=right class=t> <a href="http://www.chinajavaworld.com/doc/servlet-jsp/32.html" ></a> <a href="35.html" tppabs="http://www.chinajavaworld.com/doc/servlet-jsp/35.html" ></a> <a href="37.html" tppabs="http://www.chinajavaworld.com/doc/servlet-jsp/37.html" ></a> </td></tr>
</td>
</tr>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -