zoukankan      html  css  js  c++  java
  • JavaWeb学习总结(十五)Jsp中提交的表单的get和post的两种方式

    两者的比较:

    Get方式:

      将请求的参数名和值转换成字符串,并附加在原来的URL之后,不安全

      传输的数据量较小,一般不能大于2KB;

    post方式:

      数量较大;

      请求的参数和值放在HTML的请求头中,安全性较高。

    实例1:

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <form id="form1" action="reuset1.jsp" method="post" >
    用户名:<br/>
    <input type="text" name="username">
    <hr/>
    性别:<br/>
    男:<input type="radio" name="gender" value="男">
    女:<input type="radio" name="gender" value="女">
    <hr/>
    喜欢的颜色:<br/>
    红色:<input type="checkbox" name="color" value="红色">
    绿色:<input type="checkbox" name="color" value="绿色">
    蓝色:<input type="checkbox" name="color" value="蓝色">
    <hr/>
    来自的国家:<br/>
    <select name="country">
    	<option value="中国"> 中国</option>
    	<option value="美国">美国</option>
    	<option value="俄罗斯">俄罗斯</option>
    </select>
    <hr/>
    <input type="submit" value="提交">
    <input type="reset" value="重置">
    </form>
    </body>
    </html>

     显示如下:

    处理表单

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <%
    request.setCharacterEncoding("utf-8");
    String name = request.getParameter("username");
    String[] color = request.getParameterValues("color");
    %>
    姓名:<%=name %>
    <hr/>
    喜欢的颜色:<%for(String c : color)
    {out.println(c + "");}%>
    </body>
    </html>
    

      结果

    GET的中文乱码:

    注意获取get的方式中文参数,比较复杂,需要借助于URLDecoder类进行转码,或者重新编码或解码。

    使用重新编码的方式:

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <%
    String rawName = request.getParameter("username");
    //将字符串使用ISO-8859-1分解成字节数组
    byte[] rawBytes = rawName.getBytes("ISO-8859-1");
    //将字节数组重新解码成字符串
    String username = new String(rawBytes,"UTF-8");
    %>
    原始查询字符串:<%=rawName %><hr/>
    重新编码解码的字符串:<%=username %>
    </body>
    </html>
    

      结果:

     使用URLDecoder类的方式:

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <%
    String rawQueryStr = request.getQueryString();
    out.println("原始查询字符串:" + rawQueryStr + "<hr/>");
    //使用URLDecoder解码字符串
    String queryStr = java.net.URLDecoder.decode(rawQueryStr,"UTF-8");
    out.println("解码后的字符串:" + queryStr + "<hr/>");
    //以&分解查询字符串
    String[] paramPairs = queryStr.split("&");
    for (String paramPair : paramPairs){
        out.println("请求参数的键值对为:" + paramPair + "<br/>");
        String[] nameValue = paramPair.split("=");
        out.println(nameValue[0] + "参数值是: " + nameValue[1] + "<hr/>");
    }
    %>
    </body>
    </html>
    

      

    结果:

      

  • 相关阅读:
    ffmpeg.c函数结构简单分析(画图)
    FFMPEG之协议(文件)操作----AVIOContext, URLContext, URLProtocol
    FFmpeg源代码结构图
    解密FFmpeg播放状态控制内幕
    转 A10/A20 Bootloader加载过程分析
    [置顶] 编译linux内核时出现"mkimage" command not found
    Thumb指令集与ARM指令集的区别
    gsoap创建webservice服务简单教程
    ubuntu11.10(TQ210)下移植boa服务器
    500 Internal Error Wamp 服务器错误处理
  • 原文地址:https://www.cnblogs.com/zydev/p/6790871.html
Copyright © 2011-2022 走看看