表单<form>用于搜集不同类型的用户输入。可以轻松地将一个HTML表单从一个Servlet发送到浏览器,当用户提交表单时,在表单元素中输入的值就会被当做请求参数发送到服务器。

request.getParameter(name) 中的name指的是表单中元素的name属性的值

HTML输入域(文本域、隐藏域、密码域)或者文本区的值,会被当做字符串发送到服务器,空的输入域或者文本区会发送空字符串。因此,有输入域名称的,ServletRequest.getParameter(String name)绝对不会返回null

包含多个值的<select>元素,使用ServeltRequest.getParameterValues(name)捕获选中的值,返回一个字符串数组

复选框<input type="checkbox" />,选中的复选框会发送字符串“on”到服务器,未选中的复选框不向服务器发送任何东西,此时ServletRequest.getParameter(name)返回null

单选框<input type="radio" />,将被选中按钮的值(即value属性的值)发送到服务器,若没有选中任何按钮,将没有内容发送到服务器,此时Servletrequest.getParameter(name)返回null

如果同一个表单包含多个输入同名的元素(即name属性的值相同),那么所有值都会被提交,并且必须利用Servlet.getParameterValues(name)来捕获它们并返回一个字符串数组。若使用Servler.getParameter(name)将只会返回最后一个值。

package app01b;import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** Servlet implementation class FormServlet*/@WebServlet(name = "FormServlet", urlPatterns = {"/form"})
public class FormServlet extends HttpServlet {private static final long serialVersionUID = 1L;private static final String TITLE = "Order Form";public FormServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");PrintWriter writer = response.getWriter();writer.println("<html>");writer.println("<head>");writer.println("<title>" + TITLE + "</title>");writer.println("</head>");writer.println("<body>");writer.println("<h1>" + TITLE + "</h1>");writer.println("<form method='post'>");writer.println("<table>");writer.println("<tr>");writer.println("<td>Name:</td>");writer.println("<td><input type='text' name='name' /></td>");writer.println("</tr>");writer.println("<tr>");writer.println("<td>Address:</td>");writer.println("<td><textarea name='address' cols='40' rows='5'></textarea></td>");writer.println("</tr>");writer.println("<tr>");writer.println("<td>Country:</td>");writer.println("<td>");writer.println("<select name='country'>");writer.println("<option>United States</option>");writer.println("<option>Canada</option>");writer.println("</select>");writer.println("</td>");writer.println("</tr>");writer.println("<tr>");writer.println("<td>Delivery Method:</td>");writer.println("<td>");writer.println("<input type='radio' name='deliveryMethod' value='First Class' />First Class");  // 将被选中按钮的值(即value属性的值)发送到服务器,若没有选中任何按钮,将没有内容发送到服务器,此时Servletrequest.getParameter(name)返回nullwriter.println("<input type='radio' name='deliveryMethod' value='Second Class' />Second Class");writer.println("</td>");writer.println("</tr>");writer.println("<tr>");writer.println("<td>Shipping Instructions:</td>");writer.println("<td><textarea name='instructions' cols='40' rows='5'></textarea></td>");  // 如果同一个表单包含多个输入同名的元素(即name属性的值相同),那么所有值都会被提交,并且必须利用Servlet.getParameterValues(name)来捕获它们并返回一个字符串数组。writer.println("</tr>");writer.println("<tr>");writer.println("<td>&nbsp;</td>");writer.println("<td><textarea name = 'instructions' cols='40' rows='5'></textarea></td>");writer.println("</tr>");writer.println("<tr>");writer.println("<td>Please send me the leatest product catalog:</td>");writer.println("<td><input type='checkbox' name='catalogRequest' /></td>");  // 若选中,发送字符串“on”到服务器;若未选中,不向服务器发送任何东西,此时ServletRequest.getParameter(name)返回nullwriter.println("</tr>");writer.println("<tr>");writer.println("<td>&nbsp;</td>");writer.println("<td><input type='reset' /><input type='submit' /></td>");writer.println("</tr>");writer.println("</table>");writer.println("</form>");writer.println("</body>");writer.println("</html>");}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");PrintWriter writer = response.getWriter();writer.println("<html>");writer.println("<head>");writer.println("<title>" + TITLE + "</title>");writer.println("</head>");writer.println("<body>");writer.println("<h1>" + TITLE + "</h1>");writer.println("<table>");writer.println("<tr>");writer.println("<td>Name:</td>");writer.println("<td>" + request.getParameter("name") + "</td>");writer.println("</tr>");writer.println("<tr>");writer.println("<td>Address:</td>");writer.println("<td>" + request.getParameter("address") + "</td>");writer.println("</tr>");writer.println("<tr>");writer.println("<td>Country:</td>");writer.println("<td>" + request.getParameter("country") + "</td>");writer.println("</tr>");writer.println("<tr>");writer.println("<td>Shipping Instructions:</td>");writer.println("<td>");String[] instructions = request.getParameterValues("instruction");if(instructions != null) {for(String instruction : instructions) {writer.println(instruction + "<br />");}}writer.println("</td>");writer.println("</tr>");writer.println("<tr>");writer.println("<td>Delivery Method:</td>");writer.println("<td>" + request.getParameter("deliveryMethod") + "</td>");writer.println("</tr>");writer.println("<tr>");writer.println("<td>Catalog Request:</td>");writer.println("<td>");if(request.getParameter("catalogRequest") == null) {writer.println("No");}else {writer.println("Yes");}writer.println("</td>");writer.println("</tr>");writer.println("</table>");writer.println("<div style='border:1px solid #ddd; margin-top:40px; font-size:90%'>");writer.println("Debug Info<br />");Enumeration<String> parameters = request.getParameterNames();while(parameters.hasMoreElements()) {String parameterName = parameters.nextElement();writer.println(parameterName + ": ");String[] parameterValues = request.getParameterValues(parameterName);for(String parameterValue : parameterValues) {writer.println(parameterValue + "<br />");}}writer.println("</div>");writer.println("</body>");writer.println("</html>");}
}

Servlet中写的html代码(doGet()方法中的)。通过浏览器查看

Servlet中写的html代码(doPost()方法中的)

转载于:https://www.cnblogs.com/0820LL/p/9813949.html

Sevlet处理HTML表单相关推荐

  1. 按照下面的页面做一个用户注册的Sevlet,要求自己设计表,并将表单的数据写入到表中。

    按照下面的页面做一个用户注册的Sevlet,要求自己设计表,并将表单的数据写入到表中. 表单代码如下:(register.html) <!DOCTYPE html> <html la ...

  2. Excel 模拟form表单提交

    前端模拟form表单 function batSubmit() {var temp_form = document.createElement("form");//temp_for ...

  3. servlet获取表单数据

    1.sevlet获取表单数据 在很多的情况下,我们需要在浏览器,Web服务器和后台程序之间传递数据.浏览器使用两种方法可将这些信息传递到Web服务器,分别为Get方法和Post方法. 2.Get方法, ...

  4. java_web1:基本标签、form表单、frameset框架标签、CSS样式、javascript、servlet

    前端三剑客: html,css,js(javascript) html: Hyper Text Markup Language:超文本标记语言 针对字体,图片,视频,音频等等进行操作,设置字体颜色,大 ...

  5. 一个form表单,多个提交按钮(实现不同功能和地址的提交)

    直接上代码 表单部分: <form action="" name="find" method="post" enctype=" ...

  6. form表单提交前进行ajax或js验证,校验不通过不提交

    在使用form表单进行提交数据前,需要进行数据的校验->表单的校验(如:两次密码输入是否相同)+后台数据的校验(如:账号是否存在),这个时候,如果哪步校验不通过,表单将停止提交,同时避免后台主键 ...

  7. 用js方法做提交表单的校验

    基础知识: 原始提交如下: <form action="<%=basePath %>puser/register" method="post" ...

  8. form表单提交编码的问题

    浏览器在form提交后,会生成一个HTTP的头部信息"content-type",标准规定其形式为Content-type: application/x-www-form-urle ...

  9. js异步提交form表单的解决方案

    1.定义异步提交表单的方法 (通用方法) /*** 异步提交form表单* @param options {form:form表单元素,success:执行成功后处理函数}* <span sty ...

  10. 提交表单自动刷新_Web自动化测试:元素的基础操作和浏览器基础操作

    上一节,我们了解了如何定位元素,其实也有涉及对于元素的操作,这一节我们就详细的介绍一下对于元素的操作和对于浏览器的一些操作 一.对于元素的基础操作: clear():清除输入框内的文本 send_ke ...

最新文章

  1. 静态内部类和非静态内部类区别汇总
  2. Serlvet学习笔记之四—对文件的操作
  3. 百度的TSDB——可针对tag查询,应该类似kairosDB
  4. 首个卡车全栈自动驾驶系统发布:嬴彻轩辕!年内量产上路
  5. Oracle大象,大象工程(石头剪刀布PK游戏)
  6. Leansoft再发招贤令:面试官徐磊有话讲 | IDCF
  7. Honest Coach CodeForces - 1360B(简单贪心)
  8. d3js mysql_D3.js入门指南
  9. 工厂电子产品工艺文件_建智能工厂,人机如何达到最佳组合?
  10. 最优的素数判断代码(Python)是这样写出来的
  11. AndroidStudio_安卓原生开发_什么是AndroidStudio NDK ---Android原生开发工作笔记140
  12. 电子书下载(强烈推荐):《大道至简——软件工程实践者的思想》
  13. 计算机多媒体技术视差估计,立体视觉中视差估计算法研究
  14. html论坛页面怎么做_用php怎么做一个简单的留言页面?
  15. zf:tf7: RNN—古诗词
  16. ES Elasticsearch
  17. 袁萌:Linux病毒为何不会泛滥成灾?
  18. VS2017生成项目报 找不到资产文件“xxxx\obj\project.assets.json
  19. 静态路由配置(不会配静态路由,看这里就够了!)
  20. 《零基础入门学习Python》第023、024讲:递归:这帮小兔崽子、汉诺塔

热门文章

  1. 模拟tomcat连接器
  2. 3D游戏中的画质与效率适配(转)
  3. [.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能
  4. MSP430F149学习之路——比较器Comparaor_A
  5. android 开源框架
  6. 关于阵列卡的配置参数Cache Policy(缓存策略)
  7. css3的target伪类
  8. [转载] 大道至简:软件工程实践者的思想——第八章 你看得到工具的本质吗
  9. linux系统中配置NFS实现文件共享
  10. 微服务之间最佳调用方式是什么?