request 獲取請求頭


/********************************************************servlet頁面****************************************************************/

package request;

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Enumeration;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;

import bean.User;

import com.sun.org.apache.regexp.internal.REUtil;
//獲取請求頭
//獲取請求數據的時候一般都要先檢查,再使用
public class RequestDemo2 extends HttpServlet {
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //獲取客戶端超鏈接或表單提交過來的數據
        //1,直接獲取
        String value = request.getParameter("username");
        //先判斷value的值是否符合要求,再使用
        if(value!=null && !value.trim().equals(""))
            System.out.println(value);
        
        System.out.println("--------------");
        //通過提交數據的名稱獲得值
        //2,先得到所有名稱,再根據名稱獲得值
        Enumeration e = request.getParameterNames();
        while (e.hasMoreElements()) {
            String name = (String) e.nextElement();
            value = request.getParameter(name);
            System.out.println(name +" = "+value);
        }
        
        System.out.println("--------------");
        
        //3,獲取指定名稱的所有值
        String[] values = request.getParameterValues("username");
        //這樣寫程序健壯性不夠,如果客戶機表單沒有填寫數據就提交,此時values就為空
        //執行下面的語句就會報空指針異常
//        for(String v:values){
//            System.out.println(v);
//        }
        //這樣寫,才不會報措
        for(int i=0;values!=null && i<values.length;i++){
            System.out.println(values[i]);
        }
        
        //4
        Map map = request.getParameterMap();
        User user = new User();
        try {
            BeanUtils.populate(user, map);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        System.out.println(user);
    }

    //獲取頭相關的數據
    private void test1(HttpServletRequest request) {
        //獲取頭信息
        //1
        String headValue = request.getHeader("Accept-Encoding");
        System.out.println(headValue);
        
        System.out.println("-----------------------");
        //2
        Enumeration e = request.getHeaders("Accept-Encoding");
        while(e.hasMoreElements()){
            String value = (String) e.nextElement();
            System.out.println(value);
        }
        System.out.println("-----------------");
        //3
        e = request.getHeaderNames();
        while (e.hasMoreElements()) {
            String name = (String) e.nextElement();
            String value = request.getHeader("name");
            System.out.println(value);
            
        }
    }

    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}
/********************************************************html頁面**********************************************************************************/

<!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>提交數據</title>
</head>
<body>
    <!-- 超鏈接給服務端帶數據 -->
    <a href="/requestandresponse/RequestDemo2?username=xxxxxx">點點</a>
    <!-- 表單給服務器帶數據 -->
    <form action="/requestandresponse/RequestDemo2" method="post">
        用戶名:<input type="text" name="username"/>
        <input type="submit" value="提交">
    </form>
</body>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM