zoukankan      html  css  js  c++  java
  • jsp>Request对象 小强斋

    1、中文处理的两种方法

    1、对所有的数据进行再编码:ISO8859-1 编码,String类中的getBytes("ISO8859-1") ;

    public byte[] getBytes("encoding"),再将 byte 数组重新变为字符串

    String name = new String(request.getParameter("uname").getBytes("ISO8859-1"))

    2、设置统一字符编码:request.setCharacterEncoding("GBK") ;
    public void setCharacterEncoding(String env)  throws UnsupportedEncodingException
    GBK > GB2312    GBK是中文编码、GB2312 是简体中文编码

    <%@ page contentType="text/html;charset=gbk"%>
    < html>
    < body>
    < %
    // 接收内容
    /*
    String name = request.getParameter("uname") ;
    byte[] b = name.getBytes("ISO8859-1") ;
    name = new String(b) ;
    */
    // String name = new String(request.getParameter("uname").getBytes("ISO8859-1")) ;
    
    
    request.setCharacterEncoding("GBK") ;
    String name = request.getParameter("uname") ;
    %>
    < h1>输入内容为:<%=name%></h1>
    < /body>
    < /html>
    2、如果传递的内容是数组(复选框的情况下、多个下拉列表项)使用 request 的以下方法取得数据:
    public String[] getParameterValues(String name)
    demo03.html
    <html>
    < body>
    < form action="demo04.jsp" method="post">
      用户名:<input type="text" name="uname"><br>
      兴趣:
      <input type="checkbox" name="inst" value="篮球">篮球
      <input type="checkbox" name="inst" value="游泳">游泳
      <input type="checkbox" name="inst" value="唱歌">唱歌
      <input type="checkbox" name="inst" value="跳舞">跳舞
      <input type="checkbox" name="inst" value="看书">看书
      <br>
      <input type="submit" value="提交">
    < /form>
    < /body>
    < /html>
    demo04.jsp
    <%@ page contentType="text/html;charset=gbk"%>
    < html>
    < body>
    < %
    // 接收内容
    request.setCharacterEncoding("GBK") ;
    String name = request.getParameter("uname") ;
    String inst[] = request.getParameterValues("inst") ;
    %>
    < h1>用户名为:<%=name%></h1>
    < h1>兴趣为:
    < %
    for(int i=0;i<inst.length;i++)
    {
    %>
      <%=inst[i]%>、
    < %
    }
    %>
    < /h1>
    < /body>
    < /html>
    3、在开发中较为常用的表单控件:隐藏域将内容隐藏起来,使用户不能修改,之后随表单一起提交到服务器上显示
    <input type="hidden" name="uname" value="mldn">
    4、地址重写
    http://localhost/test/basic/04/demo06.jsp?uname=Hello
    通过地址重写,可以将内容传递到服务器端 —— 服务器端只认HTTP 协议,而不管接收的内容是以何种形式传送过来的
    如果传递多个参数呢?
    <a href="demo06.jsp?uname=MLDN&upass=LiXingHua">demo06.jsp</a>
    5、getParameterNames  取得客户端所有请求的参数
    public Enumeration getParameterNames()
    Enumeration:枚举
    demo7.html
    <html>
    < body>
    < form action="demo08.jsp" method="post">
      用户名:<input type="text" name="uname"><br>
      密码:<input type="password" name="upass"><br>
      兴趣:
      <input type="checkbox" name="**inst" value="篮球">篮球
      <input type="checkbox" name="**inst" value="游泳">游泳
      <input type="checkbox" name="**inst" value="唱歌">唱歌
      <input type="checkbox" name="**inst" value="跳舞">跳舞
      <input type="checkbox" name="**inst" value="看书">看书
      <br>
      <input type="submit" value="提交">
    < /form>
    < /body>
    < /html>
    demo08.jsp 体会下面代码的优点,不用考虑请求参数的个数
    <%@ page contentType="text/html;charset=gbk"%>
    < %@ page import="java.util.*"%>
    < html>
    < body>
    < %
    // 接收内容
    request.setCharacterEncoding("GBK") ;
    Enumeration enu = request.getParameterNames() ;
    %>
    < %
    while(enu.hasMoreElements())
    {
      String name = (String)enu.nextElement() ;
      if(name.startsWith("**"))
      {
       String temp[] = request.getParameterValues(name) ;
    %>
       <h1><%=name%> -->
    < %
       for(int i=0;i<temp.length;i++)
       {
    %>
        <%=temp[i]%>、
    < %
       }
    %>
       </h1>
    < %
      }
      else
      {
    %>
       <h1><%=name%> --> <%=request.getParameter(name)%></h1>
    < %
      }
    }
    %>
    < /h1>
    < /body>
    < /html>
    6、功能:取得客户端 IP 地址
    public String getRemoteAddr()
    总结:只要是客户端信息,在服务器端都可以通过 request 对象取得
  • 相关阅读:
    ubuntu 14.04 下试用Sublime Text 3
    闲来无事,温习一下快速排序法
    学艺不精,又被shell的管道给坑了
    ssh登录失败处理步骤
    linux文件权限整理
    使用ssh远程执行命令批量导出数据库到本地
    leetcode-easy-design-384 Shuffle an Array
    leetcode-easy-dynamic-198 House Robber-NO
    leetcode-easy-dynamic-53 Maximum Subarray
    leetcode-easy-dynamic-121 Best Time to Buy and Sell Stock
  • 原文地址:https://www.cnblogs.com/xiaoqiangzhaitai/p/5637590.html
Copyright © 2011-2022 走看看