一、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. 把java的class文件打成jar包的步骤

    现在我的文件夹的目录在: C:\Users\linsenq\Desktop\cglibjar 我要把位于这个目录下的所有文件夹以及这个文件夹下的.class文件打成jar包 第一步:用win+R 打开 ...

  2. SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释

    这几天一直在整合SSM框架,虽然网上有很多已经整合好的,但是对于里面的配置文件并没有进行过多的说明,很多人知其然不知其所以然,经过几天的搜索和整理,今天总算对其中的XML配置文件有了一定的了解,所以拿 ...

  3. Navicat Premium mysql

    #Sql语句 创建一表格 ),name ),age ),sex )); #添加语句 ,,'男'); ,,'男'); #删除 delete from user3;#user3中所有数据全删 delete ...

  4. 知问前端——按钮UI

    按钮(button),可以给生硬的原生按钮或者文本提供更多丰富多彩的外观.它不单单可以设置按钮或文本,还可以设置单选按钮和多选按钮. 使用button按钮 使用button按钮UI的时候,不一定必须是 ...

  5. 【BZOJ1468】Tree [点分治]

    Tree Time Limit: 10 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Description 给你一棵TREE,以及这棵树上边的距 ...

  6. bzoj 1022 SJ定理

    与传统的SG游戏不同的是,完成最后一个状态的人是输的,我们把这一类问题称作Anti-SG,这类问题的解决我们需要引入一个定理—SJ定理: 对于任意一个Anti-SG游戏,如果我们规定当局面中所有的单一 ...

  7. LCD实验学习笔记(三):WATCH DOG

    看门狗是为了能够防止程序跑飞用的.程序应该定时的去喂狗.如果程序跑飞了,那么就不会去喂狗了.如果超过了喂狗的时间,那么狗就会生成一个信号来reset CPU.一般程序不需要,特殊情况下需要这种机制. ...

  8. Educational Codeforces Round 41 A B C D E

    A. Tetris 题意 俄罗斯方块,问能得多少分. 思路 即求最小值 Code #include <bits/stdc++.h> #define F(i, a, b) for (int ...

  9. HDU1248 (完全背包简单变形)

    寒冰王座 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  10. Ubuntu Touch环境搭建

    最近搞了一下Nexus 5的MultiRom Manger,体验了一把Ubuntu Touch和Android L,总体感觉还不错,不过Android L的NFC驱动还有问题,Ubuntu Touch ...