zoukankan      html  css  js  c++  java
  • JSP学习-05表单

    JSP 表单处理

    GET 方法

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

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

    GET方法是浏览器默认传递参数的方法,一些敏感信息,如密码等建议不使用GET方法。

    用get时,传输数据的大小有限制 (注意不是参数的个数有限制),最大为1024字节。

    POST 方法

    一些敏感信息,如密码等我们可以通过POST方法传递,POST提交数据是隐式的。

    POST提交数据是不可见的,GET是通过在url里面传递的(可以看一下你浏览器的地址栏)。

    JSP使用getParameter()来获得传递的参数,getInputStream()方法用来处理客户端的二进制数据流的请求。

    JSP 读取表单数据

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

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

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

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

    使用URL的 GET 方法实例

    以下是一个简单的URL,并使用GET方法来传递URL中的参数:

    http://localhost:8080/testjsp/main.jsp?name=dtt&url=http://ww.mtimeyu.com
     

    testjsp 为项目地址。

    以下是 main.jsp 文件的JSP程序用于处理客户端提交的表单数据,我们使用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>mtimeyu</title>
    </head>
    <body>
    <h1>使用 GET 方法读取数据</h1>
    <ul>
    <li><p><b>站点名:</b>
       <%= request.getParameter("name")%>
    </p></li>
    <li><p><b>网址:</b>
       <%= request.getParameter("url")%>
    </p></li>
    </ul>
    </body>
    </html>
    

    使用表单的 GET 方法实例

    以下是一个简单的 HTML 表单,该表单通过GET方法将客户端数据提交 到 main.jsp 文件中:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>mtimeyu</title>
    </head>
    <body>
    
    <form action="main.jsp" method="GET">
    站点名: <input type="text" name="name">
    <br />
    网址: <input type="text" name="url" />
    <input type="submit" value="提交" />
    </form>
    
    </body>
    </html>
    

     

    使用表单的 POST 方法实例

    接下来让我们使用POST方法来传递表单数据,修改main.jsp与test.htm文件代码,

    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>yy12.xyz</title>
    </head>
    <body>
    <h1>使用 POST 方法读取数据</h1>
    <ul>
    <li><p><b>站点名:</b>
    <%
    // 解决中文乱码的问题
    String name = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8");
    %>
       <%=name%>
    </p></li>
    <li><p><b>网址:</b>
       <%= request.getParameter("url")%>
    </p></li>
    </ul>
    </body>
    </html>
    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>mtimeyu</title>
    </head>
    <body>
    
    <form action="main.jsp" method="POST">
    站点名: <input type="text" name="name">
    <br />
    网址: <input type="text" name="url" />
    <input type="submit" value="提交" />
    </form>
    
    </body>
    </html>
    

    传递 Checkbox 数据到JSP程序

    复选框 checkbox 可以传递一个甚至多个数据。

    以下是一个简单的HTML代码,并将代码保存在test.htm文件中:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>mtimeyu</title>
    </head>
    <body>
    
    <form action="main.jsp" method="POST" target="_blank">
    <input type="checkbox" name="apache" checked="checked" /> apache
    <input type="checkbox" name="tomcat"  /> tomcat
    <input type="checkbox" name="hadoop" checked="checked" /> 
                                                    hadoop
    <input type="submit" value="选择网站" />
    </form>
    
    </body>
    </html>
    
    <%@ 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>mtimeyu</title>
    </head>
    <body>
    <h1>从复选框中读取数据</h1>
    <ul>
    <li><p><b>apache 是否选中:</b>
       <%= request.getParameter("apache")%>
    </p></li>
    <li><p><b>tomcat是否选中:</b>
       <%= request.getParameter("tomcat")%>
    </p></li>
    <li><p><b>hadoop是否选中:</b>
       <%= request.getParameter("hadoop")%>
    </p></li>
    </ul>
    </body>
    </html>
    

    读取所有表单参数

    使用 HttpServletRequestgetParameterNames() 来读取所有表单参数,该方法可以取得所有变量的名称,该方法返回一个枚举。

    一旦我们有了一个 Enumeration(枚举),我们就可以调用 hasMoreElements() 方法来确定是否还有元素,以及使用nextElement()方法来获得每个参数的名称。

    <%@ 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>mtimeyu</title>
    </head>
    <body>
    <h1>读取所有表单参数</h1>
    <table width="100%" border="1" align="center">
    <tr bgcolor="#949494">
    <th>参数名</th><th>参数值</th>
    </tr>
    <%
       Enumeration paramNames = request.getParameterNames();
    
       while(paramNames.hasMoreElements()) {
          String paramName = (String)paramNames.nextElement();
          out.print("<tr><td>" + paramName + "</td>
    ");
          String paramValue = request.getParameter(paramName);
          out.println("<td> " + paramValue + "</td></tr>
    ");
       }
    %>
    </body>
    </html>
    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>mtimeyu</title>
    </head>
    <body>
    
    <form action="main.jsp" method="POST" target="_blank">
    <input type="checkbox" name="apache" checked="checked" /> apache
    <input type="checkbox" name="tomcat"  /> tomcat
    <input type="checkbox" name="hadoop" checked="checked" /> 
                                                    hadoop
    <input type="submit" value="选择网站" />
    </form>
    
    </body>
    </html>
    

     

  • 相关阅读:
    Ajax XMLHttpRequest对象的三个属性以及open和send方法
    去空格
    绑定事件中 如可控制函数的执行次数
    我之理解---计时器setTimeout 和clearTimeout
    关于border边框重叠颜色设置问题
    YbtOj练习:二分5 飞离地球
    YbtOj练习:二分4 分割矩阵
    YbtOj练习:二分3 攻击法坛
    YbtOj练习:贪心3 最优密码
    YbtOj练习:二分2 最小时间
  • 原文地址:https://www.cnblogs.com/mtime2004/p/9794418.html
Copyright © 2011-2022 走看看