• ServletRequest的一些知识点


    浏览器向服务器的请求(浏览器将数据发送给服务器时,数据存放的地方)
     请求方式:GET和POST
    * GET:发送的数据,追加在请求的URL之上
    * POST:发送的数据在HTTP请求体中
     浏览器发送数据
    * 表单form,
    * method属性:指定的请求方式
    * action属性:接收数据的程序路径
     服务器获得浏览器发送的数据
    * 获得单个数据
    * request.getParameter("username");
    * 获得一组数据
    * request.getParameterValues("love");
    * 处理中文乱码
    * request.setCharacterEncoding("UTF-8");
    * 注意:
    * 此方法只对POST请求有效,GET需要单独处理
    * 需要放置在获得数据之前,建议放在第一个行

     获得一个数组内的数据

    public class GetDataRequestServlet2 extends HttpServlet {
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            this.doPost(request, response);
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            
            //获得表单提交的所有的数据
            //获得用户名信息
            String username = request.getParameter("username");
            System.out.println("name: " + username);
            //获得用户密码
            String password = request.getParameter("userpassword");
            System.out.println("pwd: " + password);
            //获得性别
            String sex = request.getParameter("sex");
            System.out.println("sex: " + sex);
            
            //获得爱好,存在多个选择
    //        String love = request.getParameter("love");
    //        System.out.println("love : " + love);
            String[] loves = request.getParameterValues("love");
            //System.out.println(loves);  //[Ljava.lang.String;@9260ee
            String loveStr = Arrays.toString(loves);
            System.out.println(loveStr);
            
            
            String error = request.getParameter("error");
            System.out.println("error : " + error);
            
    
        }
    
    }r

    request 处理中文

     1 public class GetCNDataRequestServlet extends HttpServlet {
     2 
     3     public void doGet(HttpServletRequest request, HttpServletResponse response)
     4             throws ServletException, IOException {
     5         //确定请求编码
     6         //request.setCharacterEncoding("UTF-8");
     7         System.out.println("get");
     8         
     9         //get请求处理提交数据中的 中文
    10         String username = request.getParameter("username");
    11         System.out.println(username);
    12         //解码操作
    13         String u = URLDecoder.decode(username, "GBK");
    14         System.out.println(u);
    15         
    16         String str = new String(username.getBytes("ISO-8859-1"),"UTF-8");
    17         System.out.println("**** " + str);
    18         
    19         //获得用户get请求提交的数据
    20         String query = request.getQueryString();
    21         System.out.println(query);
    22         //解码
    23         String q = URLDecoder.decode(query, "UTF-8");
    24         System.out.println(q);
    25         
    26         //提交后url中的内容:getCNDataRequestServlet?username=%E4%B8%AD%E6%96%87
    27     }
    28 
    29     public void doPost(HttpServletRequest request, HttpServletResponse response)
    30             throws ServletException, IOException {
    31         //需要通知tomcat,用户提交的数据的字符集UTF-8
    32         request.setCharacterEncoding("UTF-8");
    33         
    34         System.out.println("post");
    35         String username = request.getParameter("username");
    36         System.out.println(username);
    37 
    38     }
    39 
    40 }

     request处理中文就不要用get方式处理,因为很麻烦!!

  • 相关阅读:
    使用ExcelMapper制作用于打印的矩阵
    八皇后问题-回溯法解
    HashMap-1.8 你看得懂的原理分析
    一生之敌
    必学十大经典排序算法,看这篇就够了(附完整代码/动图/优质文章)
    事务的四种隔离级别
    数据库的三范式
    ConcurrentHashMap底层实现原理和源码分析
    leetcode-160-相交链表(simple)
    JAVA中priorityqueue详解
  • 原文地址:https://www.cnblogs.com/xuyatao/p/6633086.html
Copyright © 2020-2023  润新知