在本章中,我们将讨论JSP中的表单处理.当您需要将一些信息从浏览器传递到Web服务器并最终传递到后端程序时,您必须遇到很多情况.浏览器使用两种方法将此信息传递给Web服务器.这些方法是GET方法和POST方法.
现在让我们讨论表单处理中的方法.
GET方法发送附加到页面请求的编码用户信息.页面和编码信息由?分隔.字符如下 :
http://www.test.com/hello?key1=value1&key2=value2
GET方法是将信息从浏览器传递到Web服务器的默认方法,它会生成一个长字符串,显示在浏览器的 Location:box .建议最好不要使用GET方法.如果您有密码或其他敏感信息要传递给服务器.
GET方法有大小限制:请求字符串中只能包含1024个字符.
此信息使用 QUERY_STRING标头传递,可以通过QUERY_STRING环境变量访问,可以使用 getQueryString()和
将信息传递给后端程序的一般更可靠的方法是POST方法.
此方法以与GET方法完全相同的方式打包信息,但不是在文本字符串之后将其作为文本字符串发送?在URL中,它将其作为单独的消息发送.此消息以标准输入的形式提供给后端程序,您可以对其进行解析并用于处理.
JSP使用 getParameter()来处理此类请求读取简单参数的方法和 getInputStream()方法来读取来自客户端的二进制数据流.
JSP使用以下方法自动处理表单数据解析,具体取决于情况 :
getParameter() : 您调用 request.getParameter()方法来获取表单参数的值.
getParameterValues() : 如果参数出现多次并且返回多个值,请调用此方法,例如复选框.
getParameterNames() : 如果您想要当前请求中所有参数的完整列表,请调用此方法.
getInputStream() : 调用此方法来读取来自客户端的二进制数据流.
以下URL将使用GET方法将两个值传递给HelloForm程序.
http://localhost:8080/main.jsp?first_name = ZARA& last_name = ALI
下面是用于处理Web浏览器提供的输入的 main.jsp JSP程序.我们将使用 getParameter()方法,这样可以非常轻松地访问传递的信息 :
<html> <head> <title>Using GET Method to Read Form Data</title> </head> <body> <h1>Using GET Method to Read Form Data</h1> <ul> <li><p><b>First Name:</b> <%= request.getParameter("first_name")%> </p></li> <li><p><b>Last Name:</b> <%= request.getParameter("last_name")%> </p></li> </ul> </body> </html>
现在输入 http://localhost:8080/main.jsp?first_name = ZARA& last_name = ALI 在浏览器的位置:框中.这将生成以下结果 :
使用GET方法读取表格数据
|
以下是使用以下两个值传递的示例HTML FORM和提交按钮.我们将使用相同的JSP main.jsp来处理此输入.
<html> <body> <form action = "main.jsp" method = "GET"> First Name: <input type = "text" name = "first_name"> <br /> Last Name: <input type = "text" name = "last_name" /> <input type = "submit" value = "Submit" /> </form> </body> </html>
将此HTML保存在文件Hello.htm中并将其放入< Tomcat-installation-directory>/webapps/ROOT目录.当您访问 http://localhost:8080/Hello.htm 时,您将收到以下输出.
尝试输入名字和姓氏,然后单击提交按钮以在运行tomcat的本地计算机上查看结果.根据提供的输入,它将生成与上例中提到的类似的结果.