您的位置:首页 > 编程语言 > Python开发

python 的列表遍历删除

2009-06-11 13:46 197 查看
Technorati 标签: servlet;java 一、概述
    Servlet 有一个比较好的功能就是可以自动处理表单提交的数据。我们只需要调用HttpServletRequest#getParameter(String name),就可以获得指定参数的值(String),注意此方法是大小写敏感的。其返回值(String)与其对应的URL编码一致。当参数name存在可没有值的时候,会返回一个空串(“”),当参数name 不存在时,会返回 null。当某一个参数有多个值时,可以调用方法getParameterValues(String name),返回字符串数组。当指定参数不存在时,getParameterValues(String name)返回null;当指定参数只有一个值时,返回一个只有一个元素的数组(String)。
    接着谈一下的是,尽管大部分时候,servlet 都只需要获取指定参数的值。不过在调试时,获取整个参数列表也是一个不错的选择。调用方法 getParameterNames()可以获取表单参数名的枚举列表,每一条目都会强制转换为 String,可以用于getParameter(String name)和getParameterNames()。需要注意的是,所返回的枚举列表在任何情况下都不能保证各个元素的排列数序。
二、Demo
    Demo1,读取三个指定参数的值。如下,我们设计的一个简单的form,




    register.jsp代码如下:
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>collecting three parameters</title>
</head>
<body>
<center>
<h1>collecting three parameters</h1>
<form id="form" name="form" method="get" action="ThreeParams">
<label>name:</label>
<input type="text" name="username"/>

<label>password:</label>
<input name="password" type="password" />

<label>email:</label>
<input name="email" type="text" />

<input name="submit" type="submit"/>
</form>
</center>
</body>
</html>


    对应的,看一下Servlet ThreeParams.java 代码如下:

1: @WebServlet("/ThreeParams")


2: public class ThreeParams extends HttpServlet {


3: private static final long serialVersionUID = 1L;


4: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


5: PrintWriter out = response.getWriter();


6:         response.setCharacterEncoding("text/html;chaset=gbk");


7:         String title = "collecting three parameters";


8:         out.print("<html><body><h1>"


9:                 + title +"</h1><li><b>name:</b>"


10:                 + request.getParameter("username") +"</li>"


11:                 +"<li><b>password:</b>"


12:                 + request.getParameter("password") +"</li>"


13:                 +"<li><b>email:</b>"


14:                 + request.getParameter("email") +"</li>");


15:         out.print("</body></html>");


16: }


17: }


     其输出效果如图:



    

    以上Demo演示了,如何获取一个指定参数的值,不过都一个个来获取的。有时候我们也许需要一次性获取所有参数的值,那怎么做呢???

   Demo2:一次性获取所有参数。form 表单设计如下:





    info.jsp代码如下:

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">


<head>


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


<title>a sample form using post</title>


</head>


<body>


<form id="form" name="form" method="post" action="ShowParameters">


<li>用户名:<input type="text" name="account"  /></li>


<li>性别:<input type="radio" name="sex" value="male" checked="checked" />帅哥


<input type="radio" name="sex" value="female" />美女</li>


<li>爱好:<input name="hobby" type="checkbox" value="bastketball" checked="checked" />篮球


<input name="hobby" type="checkbox" value="football" />足球</li>


<li>密码: <input type="password" name="password"  /></li>


<li>确认密码:<input type="password" name="repassword"  />


<li>email:<input type="email" name="email" /></li>


<li>自我描述:</li>


<li><textarea name="description" cols="20" rows="5" ></textarea></li>


<li><input name="submit" type="submit" value="submit"/></li>


</form>


</body>


</html>


    现在来看一下Servlet ShowParemeter.java 的代码设计:

@WebServlet("/ShowParameters")


public class ShowParameters extends HttpServlet {


private static final long serialVersionUID = 1L;


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


response.setContentType("text/html");


PrintWriter out = response.getWriter();


String title = "get all parameters of a form";


out.println("<html><body><h1>" + title + "</h1>"


+ "<table border=1 align=center><tr><th>Parameter name</th><th>Parameter values</th></tr>");


Enumeration<String> parameterNames = request.getParameterNames();


while (parameterNames.hasMoreElements()) {


String name = (String) parameterNames.nextElement();


out.println("<tr><td>" + name + "</td>");


String[] parameterValues = request.getParameterValues(name);


if (parameterValues.length == 1) {


String parameterValue = parameterValues[0];


if (parameterValue.length() == 0) {


out.println("<td><b>No value</b></td>");


} else {


out.println("<td>" + parameterValue + "</td>");


}


} else {


out.println("<td><ul>");


for (int i = 0; i < parameterValues.length; i++) {


out.println("<li>" + parameterValues[i] + "</li>");


}


out.println("</ul></td>");


}


}


out.println("</table></body></html>");


 


}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


doGet(request, response);


}


}


    其对应的输出如下:





    注意的是:getParameterNames()从不保证获取参数的顺序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: