JSP - 表单处理

在本章中,我们将讨论JSP中的表单处理.当您需要将一些信息从浏览器传递到Web服务器并最终传递到后端程序时,您必须遇到很多情况.浏览器使用两种方法将此信息传递给Web服务器.这些方法是GET方法和POST方法.

表单处理中的方法

现在让我们讨论表单处理中的方法.

GET方法

GET方法发送附加到页面请求的编码用户信息.页面和编码信息由?分隔.字符如下 :

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

GET方法是将信息从浏览器传递到Web服务器的默认方法,它会生成一个长字符串,显示在浏览器的 Location:box .建议最好不要使用GET方法.如果您有密码或其他敏感信息要传递给服务器.

GET方法有大小限制:请求字符串中只能包含1024个字符.

此信息使用 QUERY_STRING标头传递,可以通过QUERY_STRING环境变量访问,可以使用 getQueryString()

POST方法

将信息传递给后端程序的一般更可靠的方法是POST方法.

此方法以与GET方法完全相同的方式打包信息,但不是在文本字符串之后将其作为文本字符串发送?在URL中,它将其作为单独的消息发送.此消息以标准输入的形式提供给后端程序,您可以对其进行解析并用于处理.

JSP使用 getParameter()来处理此类请求读取简单参数的方法和 getInputStream()方法来读取来自客户端的二进制数据流.

使用JSP读取表单数据

JSP使用以下方法自动处理表单数据解析,具体取决于情况 :

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

  • getParameterValues() : 如果参数出现多次并且返回多个值,请调用此方法,例如复选框.

  • getParameterNames() : 如果您想要当前请求中所有参数的完整列表,请调用此方法.

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

GET方法示例使用URL

以下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方法读取表格数据

  • 名字:ZARA

  • 姓氏:ALI

使用表单获取方法示例

以下是使用以下两个值传递的示例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的本地计算机上查看结果.根据提供的输入,它将生成与上例中提到的类似的结果.