JSP —— Servlet 读取表单数据

原创 2016年08月30日 10:04:18

一、表单数据

1、发送method:GET或POST。前者可显示在url中,故运用于对安全性要求低且数据少的场合。

2、servlet与传统CGI  处理表单数据的区别

说明:以GET 方式提交表单数据时,数据会出现在url 的问好之后,以name=value值对(或多个值时为name=value1|value2)的方式出现,多对数据之间以&连接,且空格变为+号。

1)、从传统CGI 读取表单数据:

首先,必须以不同方式读取GETF请求(通过QUERY_STRING环境变量)或POST请求(通过读取标准输入);

其次,必须在&号的位置截断数据串,然后将name与value值分开;

再次,必须以URL 方式将这些value值解码,因为发送表单数据时,是经过编码的,其中空格被转换成加号,其它符号将被转换成%XX(XX为该字符的ASCII码)。

例如:表单名称为users的文本字段中输入了“~hall~gates~  and  ~mcnealy”,数据就会发送为“user=%7Ehall%2C%7Egates%2C+and+%7Emcnealy”。

此外,还可能有忽略个别值,一个name对应多个值得情况。


2)、Servlet读取表单数据

对于继承HttpServlet的servlet,使用HttpServletRequest对象的以下几个常用方法:

getParameter(String name):返回某个name表单元素的值。

getParameterValues(String name):用于具有多个值的name,返回String数组。

getParameterNames():以Enumeration形式可获取该表单中清单,其中每一项都可以转换成String,并用于getParameter或getParameterValues调用。

注意:HttpServletRequest API不指定这些name出现在Enumeration中的次序。


servlet读取表单简单实践:

login.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>合工大信息门户网</title>
<style>
	.pageBg{
		width:100%;
		height:100%;
		background:url("./imgSource/pageImg.jpg");
	}
</style>
</head>
<body>
	<div class="pageBg">
		<form action="getlogin" method="post">
			<fieldset style="width:200px">
			<legend>登录信息</legend>
				学号:<input type="text" name="number" style="width:120px"/><br/>
				密码:<input type="password" name="pass" style="width:120px"/><br/>
				<input type="submit" value="登录"/>
			</fieldset>
		</form>
	</div>
</body>
</html>
jsp输出效果:


servlet:简单的读取表单数据

GetLoginRequest.java

package com.servletSolveForm.servlets;
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;

/**
 * Servlet implementation class GetLoginRequest
 */
public class GetLoginRequest extends HttpServlet {
	private static final long serialVersionUID = 1L;
    public GetLoginRequest() {
        super();
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request,response);
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		PrintWriter out=response.getWriter();
		//通过清单取值
		Enumeration paramNames=request.getParameterNames();
		while(paramNames.hasMoreElements()){
			String paramName=(String) paramNames.nextElement();
			out.println(paramName+":"+request.getParameter(paramName));
		}
		//单个取值
		out.println("number:"+request.getParameter("number")+'\n'+
				"pass:"+request.getParameter("pass"));
	}

}

web.xml中servlet的配置:

<servlet>
    <description></description>
    <display-name>GetLoginRequest</display-name>
    <servlet-name>GetLoginRequest</servlet-name>
    <servlet-class>com.servletSolveForm.servlets.GetLoginRequest</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>GetLoginRequest</servlet-name>
    <url-pattern>/getlogin</url-pattern>
  </servlet-mapping>
说明:其中getlogin为表单转到此servlet对应的action值,一个servlet可有多个映射。

servlet处理请求结果:



版权声明:转载请注明出处!

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

// javaBean代码 package servlet; import java.io.*; import javax.servlet.*; import javax.servlet.http...
  • u012804490
  • u012804490
  • 2014年07月26日 13:53
  • 1359

如何在servlet中获取jsp中form表单提交的变量,以及jsp与servlet之间的数据传递

今天让这个问题纠结了大半天,关于如何在servlet中获取jsp中form表单提交的变量,由于是新手,总结的地方可能不太很准确,望见谅 下面是用jfreechart做的一个柱状图,需要用到form表单...
  • s346658910
  • s346658910
  • 2013年10月30日 18:27
  • 5213

javaWeb之servlet获取表单数据

javaWeb之servlet获取表单数据代码: reg.jsp:
  • u014785563
  • u014785563
  • 2016年10月06日 11:46
  • 222

servlet获取表单数据

1.前言: 很多情况下,需要传递一些信息,从浏览器到 Web 服务器,最终到后台程序。浏览器使用两种方法可将这些信息传递到 Web 服务器,分别为 GET 方法和 POST 方法。 2.get和po...
  • HLK_1135
  • HLK_1135
  • 2016年11月05日 12:56
  • 1678

利用Servlet读取HTML表单数据-Servlet学习笔记

空间管理 您的位置: 51Testing软件测试网 » Super敏的个人空间 » 日志 一、客户端传递数据的方式 客户端往web服务器传递数据,通常有两种方式:使用表单或者将数据附在...
  • wenminhao
  • wenminhao
  • 2013年02月16日 21:52
  • 9296

Servlet 知识点(三) -- Servlet 的文件上传功能的表单获取问题(2)

上周用 smartUpload 因为性能的关系被无情抛弃了 , 百度了一波之后采用了 common-io 和 common-lang 的上传方式 . 对于表单传值 , 他们也有很好的解决办法//判断表...
  • JacXuan
  • JacXuan
  • 2017年06月28日 09:35
  • 6168

Servlet 取表单的值

ServletInfoForm This is the description of my J2EE component This is the display name of ...
  • bluzelee2011
  • bluzelee2011
  • 2015年08月01日 13:43
  • 1197

使用 Servlet 读取表单数据

使用 Servlet 读取表单数据 Servlet 处理表单数据,这些数据会根据不同的情况使用不同的方法自动解析: getParameter():您可以调用 request.getPa...
  • qq_38177503
  • qq_38177503
  • 2017年06月24日 07:57
  • 81

JSP、Servlet与JavaBean实现从表单传输到数据库验证完成登录功能

JSP、Servlet与JavaBean实现从表单传输到数据库验证完成登录功能
  • rui15111
  • rui15111
  • 2017年02月20日 20:14
  • 562

jsp Servlet 处理表单数据

4.1 表单数据概述    如果你曾经使用过Web搜索引擎,或者浏览过在线书店、股票价格、机票信息,或许会留意到一些古怪的URL,比如“http://host/path?user=Marty+Hall...
  • shuilv2000
  • shuilv2000
  • 2009年10月22日 13:13
  • 518
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSP —— Servlet 读取表单数据
举报原因:
原因补充:

(最多只允许输入30个字)