博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP处理表单
阅读量:4090 次
发布时间:2019-05-25

本文共 1754 字,大约阅读时间需要 5 分钟。

 由发表在

表单

在Internet中,用户除了访问Web应用获取信息,还会主动创造信息——这种交互是通过HTML表单来完成的。在浏览器用户填写表单,通过HTTP通讯协议传送到服务器,相应的Servlet获取数据并处理,最后将结果返回浏览器。这一节我们将学习如何在Servlet/JSP中处理表单数据。

HTML表单用于收集不同类型的输入,应用场景非常的广泛。HTML表单不仅仅是在浏览器(客户端)上展示一个输入界面,更加重要的是用户输入数据会通过HTTP通讯协议传送到服务器上的处理程序(Servlet/JSP),下图就是一个标准的表单处理流程:

创建表单——新建博客文章页面

为了在博客中添加文章,我们需要一个表单来输入文章的标题、内容等等信息,表单的内容都是静态的,所以不妨直接将create.html内容作为Web应用的静态资源:

其中非常重要的是<form>标签的action属性,它决定了表单数据交给服务器的哪一个URL进行处理(也就是对应的Servlet/JSP),同时表单还包含一个type="submit"<button>,按下这个按钮的默认行为是提交表单,向指定的URL发出HTTP请求。

HTTP POST方法

上述表单提交后,我们会发现浏览器的地址变成了:

http://localhost:8080/
/create.jsp?title=
<用户输入内容>
&content=
<用户输入内容>

在默认情况下,<form>提交后发送的HTTP请求的方法(Method)是GET。对于GET请求,数据会以name/value对的格式附加在URL之后,其中name由表单输入对象(例如<input>标签)的name属性决定。虽然HTTP协议没有对URL的长度进行限制,但现代浏览器以及Web服务器都存在一定的限制。

从安全性方面考虑,也应该使用POST提交表单数据。例如用户登录的表单如果使用GET请求,那么密码就会被明文附加到URL上,这样通过浏览器的历史记录有可能查看到明文密码。

另外,如果需要通过文件输入框上传文件到服务器,必须是使用POST方法。

在表单中指定HTTP请求的方法非常简单:

POST方法传输数据的方式和GET方法也不相同,表单数据会作为HTTP请求的内容(body)部分,但数据编码的方式和GET是一样的:

在JSP/Servlet中处理表单

当HTTP请求发送到服务端时,相应的JSP/Servlet需要获取表单数据并进行处理。处理的办法都是通过HttpServletRequest对象的getParameter()方法。本节的例子以JSP为例,相应的Servlet代码也很容易写出。

获取表单数据

文章标题:<%= request.getParameter("title") %>

文章内容:<%= request.getParameter("content") %>

处理表单数据

create.jsp中可以加入处理逻辑:

<%!boolean logic(String title, String content) {    return true;}%><% if (request.getMethod().equals("POST")) {    String title = request.getParameter("title");    String content = request.getParameter("content");    if (logic(title, content)) {        out.println("文章创建成功");      } else {        out.println("文章创建失败");     }}%>

在上面的代码中,logic()方法用于处理表单数据,根据返回结果需要返回不同的内容提示用户。当然也可以把这段代码嵌入到更复杂的页面里。

更多文章请访问

你可能感兴趣的文章
DirectX11 兰伯特余弦定理(Lambert)
查看>>
DirectX11 漫反射光
查看>>
DirectX11 环境光
查看>>
DirectX11 镜面光
查看>>
DirectX11 三种光照组成对比
查看>>
DirectX11 指定材质
查看>>
DirectX11 平行光
查看>>
DirectX11 点光
查看>>
DirectX11 聚光灯
查看>>
DirectX11 HLSL打包(packing)格式和“pad”变量的必要性
查看>>
DirectX11 光照演示示例Demo
查看>>
漫谈一下前端的可视化技术
查看>>
VUe+webpack构建单页router应用(一)
查看>>
Vue+webpack构建单页router应用(二)
查看>>
从头开始讲Node.js——异步与事件驱动
查看>>
Node.js-模块和包
查看>>
Node.js核心模块
查看>>
express的应用
查看>>
NodeJS开发指南——mongoDB、Session
查看>>
Express: Can’t set headers after they are sent.
查看>>