我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理,通常使用的是 GET 和 POST 方法向服务器提交数据。

其中,GET方法将请求的编码信息添加在网址后面,网址与编码信息通过"?"号分隔。如下所示:

http://www.luyaran.com/hello?key1=value1&key2=value2

GET方法是浏览器默认传递参数的方法,一些敏感信息,如密码等建议不使用GET方法。当我们用get时,传输数据的大小有限制 (注意不是参数的个数有限制),最大为1024字节。

一些敏感信息,如密码等我们可以通过POST方法传递,POST提交数据是隐式的,并且是不可见的,GET是通过在url里面传递的(可以看一下我们浏览器的地址栏)。

我们来看下jsp读取表单数据的几种方式:

  • getParameter(): 使用 request.getParameter() 方法来获取表单参数的值。

  • getParameterValues(): 获得如checkbox类(名字相同,但值有多个)的数据。 接收数组变量 ,如checkbox类型

  • getParameterNames():该方法可以取得所有变量的名称,该方法返回一个 Enumeration。

  • getInputStream():调用此方法来读取来自客户端的二进制数据流。

我们来看一个简单的URL,并使用GET方法来传递URL中的参数:

http://localhost:8080/blog/main.jsp?name=luyaran

我们来使用getParameter()方法来获取提交的数据:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>luyaran</title>
</head>
<body>
<h1>使用 GET 方法读取数据</h1>
<ul>
<li><p><b>my lover is :</b><%= request.getParameter("name")%>
</p></li>
</ul>
</body>
</html>

完事我们来尝试使用表单的 GET 方法,来提交一部分数据。我么来看一个简单的 HTML 表单,文件名称为test.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>luyaran</title>
</head>
<body><form action="main.jsp" method="GET">
my lover: <input type="text" name="name">
<br />
pass: <input type="text" name="pass" />
<input type="submit" value="提交" />
</form></body>
</html>

完事我们来将该文件放置于当前jsp项目的 WebContent 目录下(与 main.jsp 同一个目录)。然后我们通过http://localhost:8080/blog/test.html来打开表单,并且向main.jsp提交数据。main.jsp代码为:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>luyaran</title>
</head>
<body>
<h1>使用 GET 方法读取数据</h1>
<ul>
<li><p><b>my lover is :</b><%= request.getParameter("name")%>
</p></li>
<li><p><b>pass is :</b><%= request.getParameter("pass")%>
</p></li>
</ul>
</body>
</html>

至于运行效果,大家可以手动来试试,在下就不赘述了。

完事我们来看使用POST方法来传递表单数据。

首先来更改之前两个文件的代码,test.html的代码更改为:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>luyaran</title>
</head>
<body><form action="main.jsp" method="POST">
my lover: <input type="text" name="name">
<br />
pass: <input type="text" name="pass" />
<input type="submit" value="提交" />
</form></body>
</html>

main.jsp代码更改为:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>luyaran</title>
</head>
<body>
<h1>使用 POST 方法读取数据</h1>
<ul>
<li><p><b>my lover is:</b>
<%
// 解决中文乱码的问题
String name = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8");
%><%=name%>
</p></li>
<li><p><b>pass:</b><%= request.getParameter("pass")%>
</p></li>
</ul>
</body>
</html>

上述代码中我们使用 new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8")来转换编码,防止中文乱码的发生。完事大家手动运行试试,看下效果。咱这里就不赘述了哈。

好啦,本次记录就到这里了。

如果感觉不错的话,请多多点赞支持哦。。。

JSP开发之JSP 表单处理(GET 方法POST 方法)相关推荐

  1. python嵌套html开发gui_python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例...

    PyQt5布局控件QFormLayout简介 QFormLayout是label-field式的表单布局,顾明思议,就是实现表单方式的布局,表单是提示用户进行交互的一种模式,主要有两列组成,第一列用于 ...

  2. SPA项目开发之CRUD+表单验证

    目录 一.SPA项目开发之表单验证 二.SPA项目开发之CRUD 一.SPA项目开发之表单验证          我们做项目的都关乎到增删改查的功能,在进行增删改查功能之前,我们必须有一个表单验证. ...

  3. php 表单提交2次,微信开发之php表单微信中自动提交两次问题解决办法

    前言: 最近做微信开发,在微信中访问PHP页面,页面中有个表单.测试发现偶尔会出现表单被自动提交两次的情况,导致流程出错. 问题原因 暂时未找到原因,不过怀疑跟微信本身的机制有关. 解决方法 用ses ...

  4. JSP开发之JSP 日期处理(SimpleDateFormat格式化日期)案例了解下

    我们使用JSP最重要的优势之一,就是可以使用所有Java  API,我们这次就来看下Java中的Date类,它在java.util包下. 我们要知道Date类有两个构造函数.第一个构造函数使用当前日期 ...

  5. JSP开发之JSP 标准标签库(JSTL)之JSTL函数endsWith()函数escapeXml()函数的使用

    fn:endsWith()函数用于确定一个字符串是否以指定后缀结尾,语法如下: <c:if test="${fn:endsWith(<原始字符串>, <要查找的子字符 ...

  6. JSP开发之JSP连接数据库简单实例

    首先嘞,咱们这里有一个需要下载的jar文件: mysql-connector-java-5.1.39-bin.jar 完事之后嘞,把它放到 tomcat 下 lib 目录里,然后我们就可以来开始尝试连 ...

  7. .jsp页面提交form表单,后台却无法获取input文本框value值

    问题一:奇葩bug总结:input提交,后端获取不到value问题 注意: java后端jsp页面input disabled="disabled"表单提交,后端无法print获取 ...

  8. Struts2之前台表单传值到后台Action方法总结

    在正式讲解之前,先交代一下项目版本,Struts2的版本是struts-2.3.30稳定版本,至于如何快速搭建以及正确的选择Struts2必要的Jar文件,以struts-2.3.30为例,首先建议大 ...

  9. Action 中接收表单参数的3种方法总结

    (1) Action 中使用属性接受参数 @ Action中需要包含与表单参数对应的setXxx()方法: @ 简单易用,但当表单参数较多时不太适用: (2)使用DomainModel( 域模型:系统 ...

最新文章

  1. iframe的src怎么携带参数_Java 爬虫遇到需要登录的网站,该怎么办?
  2. 另外一篇关于JS页面跳转代码
  3. sobel算子原理以及运用
  4. Nginx压缩输出配置
  5. 网络4/7层模型各层作用和协议对比
  6. [HAOI2008]移动玩具
  7. C++虚函数表和多态
  8. Paxos在大型系统中常见的应用场景
  9. angular自带的一些api_在Angular软件中执行API请求的正确方式,了解一下
  10. 线性代数学习笔记——第三十五讲——平面与平面的位置关系
  11. 搜索 阿虚同学_凉宫春日阿虚台词“在虚构的故事当中寻求真实感的人脑袋一定有问题”动画是出自那一集?...
  12. 交换机vtp功能配置
  13. 关于IntelliJ IDEA
  14. 3 Linux 10个主流发行版本
  15. [echarts]echarts的canvas画布大小与容器大小不一致的解决方案
  16. ARM + RISC-V双核锁步DCLS Lockstep技术总结
  17. 2018年舆情产品小总结
  18. 800字让你搞懂:掩码,反掩码,通配符。
  19. 七年级下册信息技术认识计算机硬件,七年级信息技术下册
  20. 信管网 系统集成经验分享

热门文章

  1. Chinese Postman Problem Aizu - DPL_2_B(无向图中国邮路问题)
  2. 提升游戏陪玩源码请求响应速度,应从哪方面下手?
  3. C语言:用swich,case语句输出星期一到星期天的课表。
  4. 重装机器后,发现HP打印机无法打印多份
  5. 【论文翻译】OpenFace: A general-purpose face recognition library with mobile applications
  6. 安装及运行openface的大坑
  7. layui表单+显示和隐藏密码
  8. 2021新款iMac将提供五种颜色 搭配自研CPU
  9. python 桑基图 地理坐标_手把手教你用Python绘制酷炫的桑基图
  10. PHP正则表达式语法规则