一、Servlet获取表单数据

  表单提交数据经由Servlet处理,返回一个处理结果显示在页面上,

  那么如何获取表单提交的参数进出相应的处理呢?

  主要用到以下方法:
  String  getParameter("paramName")

  以字符串形式返回请求参数对应的值,如果参数不存在返回null。

  此处的参数名是指表达中提交属性控件的name属性。

  例如:

    

  在这个表单中username后面是一个输入框,paramName就是name=“username”中的“name”,

  使用getParameter("username")获取的值就是输入到输入框中的内容。

  

  String[]  getParameterValues("paramName")

  返回包含给定请求参数所有值的字符串数组,如果参数不存在返回null,

  如果参数只有一个值,则数组长度为1.

  例如:

  

  爱好是一个多选项,这里设置的是复选框(CheckBox),而这个复选框的name是相同的,

  也就是说一个参数名可能对应多个值,这时就需要采用getParameterVlaues("like"),来获取

  所有被选中的复选框对应的value。

  Enumeration request.getParameterNames();

  返回此请求中所有的参数名称。如果没有参数返回空枚举。

  例如:

  

  使用getParameterNames()就可以获取当前请求中所有参数的名称(username、pwd、sex、like)

  获取了参数名称,后续就可以通过参数名获取对应的值。

  

二、例子

  

<!DOCTYPE html>
<!-- http://localhost:8080/TestServlet/Test.html -->
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--表单提交调用servlet -->
<!-- http://localhost:8080/TestServlet/TestServlet.html -->
<form name = f1 action = "/TestServlet/TestServlet.html" method = "post">
username:<input type = "text" name = "username"></input><br>
pwd:<input type = "password" name = "pwd"></input><br>
性别:<input type = "radio" name = "sex" value = "0"> 男
<input type = "radio" name = "sex" value = "1">女<br>
爱好:<input type = "checkbox" name = "like" value = "1">篮球
<input type = "checkbox" name = "like" value = "2">足球<br>
<input type = "submit" value = "提交">
</form> </body>
</html>
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class TestServlet extends HttpServlet{
// private PrintStream out = System.out;
private String initParam = null;
private String contextParam = null; @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取输入的用户名。
//String username = getParameter("username");
PrintWriter out = resp.getWriter();
//获取所有参数名
Enumeration names = req.getParameterNames();
//打印html头部代码
printHtmlPage(out,true);
//绘制html表格显示获取参数
out.println("<table border = 2>");
//遍历包含所有参数名的枚举对象
while(names.hasMoreElements()) {//判断是否有更多元素
String name = (String)names.nextElement();//获取当前枚举参数。
//根据当前参数名获取对应值
String[] values = req.getParameterValues(name);
//输出参数名
out.println("<tr>");
out.print("<td>");
out.print(name);
out.print("</td>\n");
//输出参数名所对应的值
for(int i = 0; i < values.length; i++) {
out.print("<td>");
out.print(values[i]);
out.print("</td>\n");
}
out.println("</tr>");
}
out.println("</table>");
//打印html尾部代码
printHtmlPage(out,false);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req, resp);
} //打印HTML页面,head为True打印HTML头部代码,为false打印尾部HTML代码
private void printHtmlPage(PrintWriter out, boolean head) {
if(head) {
out.println("<!DOCTYPE html>\r\n" +
"<!-- http://localhost:8080/TestServlet/Test.html -->\r\n" +
"<html>\r\n" +
"<head>\r\n" +
"<meta charset=\"UTF-8\">\r\n" +
"<title>Insert title here</title>\r\n" +
"</head>\r\n" +
"<body>");
}else {
out.println("</body>\r\n" +
"</html>");
}
}
}

      

在Servlet中对获取的值(0,1,2等)结合参数名称进行处理

可以还原出选项所代表的中文信息。

1.3(学习笔记)Servlet获取表单数据的更多相关文章

  1. 用Servlet获取表单数据

    用Servlet获取表单数据 在webroot下新建userRegist2.jsp 代码如下: <%@ page contentType="text/html;charset=gb23 ...

  2. JSP简单练习-用Servlet获取表单数据

    // javaBean代码 package servlet; import java.io.*; import javax.servlet.*; import javax.servlet.http.* ...

  3. Servlet的5种方式实现表单提交(注册小功能),后台获取表单数据

    用servlet实现一个注册的小功能 ,后台获取数据. 注册页面: 注册页面代码 : <!DOCTYPE html> <html> <head> <meta ...

  4. Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法

    Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法 昨天在开发的时候遇到个小问题,就是如何将Grid的内容与Form一起发送到服务器端.默认情况下,表单(F ...

  5. Servlet处理表单数据

    Servlet 表单数据 很多情况下,需要传递一些信息,从浏览器到 Web 服务器,最终到后台程序.浏览器使用两种方法可将这些信息传递到 Web 服务器,分别为 GET 方法和 POST 方法. 使用 ...

  6. ASP.NET MVC 获取表单数据

    public class Person { public string Name{get;set;} public string Phone{get;set;} } view层 @model Mode ...

  7. HTML5学习笔记<五>: HTML表单和PHP环境搭建

    HTML表单 1. 表单用于不同类型的用户输入 2. 常用的表单标签: 标签 说明 <form> 表单 <input> 输入域 <textarea> 文本域 < ...

  8. angular学习笔记(二十)-表单验证

    本篇主要介绍angular中的表单验证: 表单验证主要有以下一些内容: 1. required指令: 相当于html5的required属性,验证不能为空 2. ng-maxlength属性: 验证内 ...

  9. redux-form的学习笔记二--实现表单的同步验证

    (注:这篇博客参考自redux-form的官方英文文档)左转http://redux-form.com/6.5.0/examples/syncValidation/ 在这篇博客里,我将用redux-f ...

随机推荐

  1. Exponial~(欧拉函数)~(发呆题)

    Description Everybody loves big numbers (if you do not, you might want to stop reading at this point ...

  2. weblogic的安装和注意的问题以及在idea怎么用weblogic启动一个web服务

    第一步下载weblogic: 大家可以通过我的网盘下载weblogic,地址如下 https://pan.baidu.com/s/1NkZ_Gd-xfim5YGcdtjYoUw 第二步安装weblog ...

  3. Linux重定向: > 和 &> 区别

    总结:>只能将正常信息重定向 &>可以将错误信息或者普通信息都重定向输出(下面是实测) [root@Dev_yang shellScript]# lll -bash: lll: c ...

  4. bzoj 2427 [HAOI2010]软件安装 Tarjan缩点+树形dp

    [HAOI2010]软件安装 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2029  Solved: 811[Submit][Status][Dis ...

  5. 编写一个 Chrome 浏览器扩展程序

    浏览器扩展允许我们编写程序来实现对浏览器元素(书签.导航等)以及对网页元素的交互, 甚至从 web 服务器获取数据,以 Chrome 浏览器扩展为例,扩展文件包括: 一个manifest文件(主文件, ...

  6. 【Foreign】字符串匹配 [KMP]

    字符串匹配 Time Limit: 10 Sec  Memory Limit: 256 MB Description Input Output Sample Input 3 3 6 3 1 2 1 2 ...

  7. 【BZOJ】1691: [Usaco2007 Dec]挑剔的美食家

    [算法]扫描线+平衡树(set) [题解]很明显的二维偏序数点,排序后扫描线,现加点后查询答案. 则问题转化为一维偏序,显然贪心找第一个比当前大的最优,所以用平衡树维护. 记得开multiset!!! ...

  8. JSP页面中格式化日期为指顶格式

    有时候在页面中显示直接从数据库获取的日期时候会出现英文的日期格式.比如:

  9. 手把手教你最简单的开源项目托管GitHub入门教程

    自从google code关闭了下载服务了之后,GitHub作为了目前最好用的免费开源项目托管站点,众多开源项目都托管在github,其中不乏著名的播放器MPC-HC. 不习惯于英文的朋友,难免少不了 ...

  10. Oracle基础 09 概要文件 profile

    --创建 profile 概要文件create profile profile123 limit failed_login_attempts 2;  --修改用户的 profile 文件alter u ...