HttpServletRequest request方法詳解

//一、獲取請求參數
        //獲取參數的單個值,若有多個則只返回第一個
        String parameter1 = request.getParameter("demo");
        //獲取參數數組,
        String[] parameter2 = request.getParameterValues("demo");
        //獲取全部參數名值對的java.util.Map<String,String[]>
        Map<String, String[]> parameterMap = request.getParameterMap();
        //獲取全部可用參數的名字的枚舉
        Enumeration<String> parameterNames = request.getParameterNames();
        
//        java.lang.NullPointerException
//        第一次調用請求對象的getParameter、getParameterValues、getParameterMap、getParameterNames方法時
//        Web容器將判斷該請求是否包含post變量,若是包含它將讀取請求的InputStream並解析這些變量,InputStream只能被讀取一次
//        若是在調用了一個含有post請求的getInputStream或getReader以後,再次嘗試獲取請求參數時則會觸發一個java.lang.NullPointerException
//        反之若是在獲取了一個含有post變量的請求參數以後再調用getInputStream或getReader也會觸發java.lang.NullPointerException
//        任什麼時候候在使用含有post變量的請求時,最好使用參數方法,不要使用getInputStream或getReader
        
        
        
        //二、肯定與請求內容相關的信息
        //獲取請求的MIME(多用途互聯網郵件擴展)內容類型
        String contentType = request.getContentType();
        //獲取請求正文的長度
        int contentLength = request.getContentLength();
        long contentLengthLong = request.getContentLengthLong();//內容長度的超過2GB的請求
        //獲取請求內容的字符編碼
        String characterEncoding = request.getCharacterEncoding();
        
        //三、讀取請求內容,不要在同一個請求上同時使用下面兩種方法,會觸發java.lang.NullPointerException
        //適用於請求參數時二進制格式的
        ServletInputStream inputStream = request.getInputStream();
        //適用於請求參數是字符編碼的
        //BufferedReader reader = request.getReader();
        
        
        //四、獲取請求特有信息
        //返回客戶端完整的URL   http://localhost:8080/dyf-pms/helloServlet.action
        StringBuffer requestURL = request.getRequestURL();
        
        //返回服務器路徑部分           /dyf-pms/helloServlet.action
        String requestURI = request.getRequestURI();
        
        //返回用於匹配Servlet映射的URL部分     /helloServlet.action
        String servletPath = request.getServletPath();
        
        //返回指定名字的請求頭數據
        String header = request.getHeader("host");
        
        //返回請求中全部頭數據的名字的枚舉,遍歷全部可用頭數據的好方式
        Enumeration<String> headerNames = request.getHeaderNames();
        
        //若是指定的一個 頭數據不能轉化爲整數,則拋出異常NumbereFormatException
        int intHeader = request.getIntHeader("");
        //返回一個Unix時間戳(毫秒),若是頭數據不能轉化爲日期,則拋出異常IllegalArgumentException
        long dateHeader = request.getDateHeader("");
        
        //設置中文字符編碼
        response.setHeader("Content-type", "text/html;charset=UTF-8");
        response.setCharacterEncoding("utf-8");
        response.getWriter().write("湘爺你好");
相關文章
相關標籤/搜索