一、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. rsync 同步

    1./usr/bin/rsync -vzrtopg --progress  --include "weibo-service-server" --exclude "/*& ...

  2. Jquery 获取checkbox的checked问题以及解决方案

    转载自:http://www.cnblogs.com/-run/archive/2011/11/16/2251250.html 这个郁闷了,今天写这个功能的时候发现了问题,上网找了好多资料对照,更加纠 ...

  3. jquery.cookie.js 的使用指南

    转自:http://www.cnblogs.com/yjzhu/p/4359420.html 介绍: jquery.cookie.js 是一款轻量级的 cookie 插件,可以读取,写入和删除 coo ...

  4. 平衡树之splay讲解

    首先来说是splay是二叉搜索树,它可以说是线段树和SBT的综合,更可以解决一些二者解决不了的问题,splay几乎所有的操作都是由splay这一操作完成的,在介绍这一操作前我们先介绍几个概念和定义 二 ...

  5. 【mysql优化】大数据量分页优化

    limit 翻页原理 limit offset,N, 当offset非常大时, 效率极低, 原因是mysql并不是跳过offset行,然后单取N行, 而是取offset+N行,返回放弃前offset行 ...

  6. linux驱动学习(二) Makefile高级【转】

    转自:http://blog.csdn.net/ghostyu/article/details/6866863 版权声明:本文为博主原创文章,未经博主允许不得转载. 在我前一篇写的[ linux驱动学 ...

  7. POJ1019 Number Sequence

    Number Sequence Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 36256   Accepted: 10461 ...

  8. linux下源码安装netcat

    linux下源码安装netcat http://blog.chinaunix.net/uid-20783755-id-4211230.html 1,下载netcat源码,netcat-0.7.1-13 ...

  9. python读取doc

    import os, time, fnmatch from docx import Document class search: def __init__(self, path, search_str ...

  10. STL各个数据结构特点

    STL容器特征总结 2011-11-09 11:10:50|  分类: STL|举报|字号 订阅     STL中顺序容器类和关联式容器类的主要特征如下:(1)Vector 1.内部数据结构:连续存储 ...