http 요청 및 Request 상용 방법

16185 단어 고전 백 엔 드
http 요청
HTTP 요청 메 시 지 는 3 부분 으로 구성 되 어 있 습 니 다 (요청 행 + 요청 헤더 + 요청 체).
http请求与Request常用方法_第1张图片
① 요청 방법 으로 GET 와 POST 는 가장 흔히 볼 수 있 는 HTTP 방법 으로 DELETE, HEAD, OPTIONS, PUT, TRACE 도 포함한다.그러나 현재 대부분의 브 라 우 저 는 GET 와 POST 만 지원 합 니 다. Spring 3.0 은 HiddenHttpMethodFilter 를 제공 합 니 다. " method" 의 폼 매개 변 수 를 통 해 이러한 특수 한 HTTP 방법 을 지정 할 수 있 습 니 다 (실제로 POST 를 통 해 폼 을 제출 합 니 다).서버 에서 HiddenHttpMethodFilter 를 설정 하면 Spring 은method 매개 변수 가 지정 한 값 은 해당 하 는 HTTP 방법 을 모 의 하면 이러한 HTTP 방법 으로 처리 방법 을 매 핑 할 수 있 습 니 다.  ② 요청 에 대응 하 는 URL 주 소 를 위해 메시지 헤더 의 Host 속성 과 완전한 요청 URL 을 구성 합 니 다. ③ 프로 토 콜 이름과 버 전 번호 입 니 다.  ④ HTTP 의 메시지 헤더 로 메시지 헤더 에는 몇 가지 속성 이 포함 되 어 있 으 며 형식 은 '속성 명: 속성 값' 이 고 서버 는 이에 따라 클 라 이언 트 의 정 보 를 얻 습 니 다.  ⑤ 신문 체 입 니 다. 한 페이지 폼 의 구성 요소 값 을 param 1 = value 1 & param 2 = value 2 의 키 값 을 통 해 포맷 문자열 로 인 코딩 합 니 다. 여러 요청 매개 변수의 데 이 터 를 불 러 옵 니 다.신문 체 는 요청 파 라 메 터 를 전달 할 수 있 을 뿐만 아니 라 요청 URL 도 '/ chapter 15 / user. html? param 1 = value 1 & param 2 = value 2' 와 유사 한 방식 으로 요청 파 라 메 터 를 전달 할 수 있다.  위의 요청 메시지 와 대조 하여 우 리 는 그것 을 한층 더 분해 하면 너 는 더욱 상세 한 구조 도 를 볼 수 있다.  --------------------- 본 고 는 따뜻 한 과거의 CSDN 블 로그 에서 왔 습 니 다. 전문 주 소 는 클릭 하 십시오.https://blog.csdn.net/u010256388/article/details/68491509?utm_source=copy
http请求与Request常用方法_第2张图片
응답 메시지 구조  HTTP 응답 메시지 도 세 부분 으로 구성 되 어 있 습 니 다 (응답 줄 + 응답 헤더 + 응답 체). 
http请求与Request常用方法_第3张图片
① 메시지 프로 토 콜 및 버 전;  ② 상태 코드 및 상태 설명;  ③ 메시지 헤더 에 응답 하 는 것 도 여러 속성 으로 구성 된다.  ④ 신문 문체, 즉 우리 가 진정 으로 원 하 는 '건어물' 에 호응 한다. 
요청 맵
http请求与Request常用方法_第4张图片
http 요청 정 보 는 6 부분 정 보 를 포함 합 니 다:
① GET 또는 POST 와 같은 요청 방법 은 제출 방식 을 나타 낸다.
② URL, 요청 한 주소 정보;
③ 협의 및 버 전;
④ 요청 헤더 정보 (쿠키 정보 포함);
⑤ 차 를 갈 아타 기 (CRLF);
⑥ 요청 내용 영역 (즉, 요청 한 내용 이나 데이터), 예 를 들 어 폼 제출 시의 매개 변수 데이터, URL 요청 매개 변수 (? abc = 123? 뒤의) 등.
여기에서 우 리 는 ①, ②, ④, ⑥ 가 변 적 인 것 을 볼 수 있 기 때문에 우 리 는 이러한 정 보 를 프로세서 에 요청 하 는 기능 처리 방법 에 대한 매 핑 을 할 수 있 기 때문에 요청 한 매 핑 은 다음 과 같은 몇 가지 로 나 눌 수 있다.
URL 경로 맵: URL 맵 을 사용 하여 프로세서 에 요청 하 는 기능 처리 방법;
요청 방법 맵 한정: 예 를 들 어 한정 기능 처리 방법 은 GET 요청 만 처리 합 니 다.
요청 매개 변수 맵 한정: 예 를 들 어 "abc" 요청 매개 변수 만 포함 하 는 요청 을 한정 합 니 다.
요청 헤드 맵 한정: 예 를 들 어 "Accept = application / json" 의 요청 만 처리 합 니 다.
2. 요청
  HttpServletRequest 대상 은 클 라 이언 트 의 요청 을 대표 합 니 다. 클 라 이언 트 가 HTTP 프로 토 콜 을 통 해 서버 에 접근 할 때 HTTP 요청 헤더 의 모든 정 보 는 이 대상 에 봉 인 됩 니 다. 이 대상 이 제공 하 는 방법 을 통 해 클 라 이언 트 가 요청 한 모든 정 보 를 얻 을 수 있 습 니 다.
클 라 이언 트 정보 획득
getRequestURL 방법 은 클 라 이언 트 가 요청 할 때의 전체 URL 을 되 돌려 줍 니 다.getRequestURI 방법 은 요청 줄 의 자원 이름 부분 을 되 돌려 줍 니 다.getQueryString 방법 은 요청 줄 의 인자 부분 을 되 돌려 줍 니 다.getPathInfo 방법 은 요청 URL 의 추가 경로 정 보 를 되 돌려 줍 니 다.추가 경로 정 보 는 URL 에 있 는 Servlet 의 경 로 를 요청 한 후 매개 변 수 를 조회 하기 전의 내용 으로 '/' 로 시작 합 니 다.getRemoteAddr 방법 은 요청 한 클 라 이언 트 의 IP 주 소 를 되 돌려 줍 니 다.getRemoteHost 방법 은 요청 한 클 라 이언 트 의 전체 호스트 이름 을 되 돌려 줍 니 다.getRemotePort 방법 은 클 라 이언 트 가 사용 하 는 네트워크 포트 번 호 를 되 돌려 줍 니 다.getLocalAddr 방법 은 WEB 서버 의 IP 주 소 를 되 돌려 줍 니 다.getLocalName 방법 은 WEB 서버 의 호스트 이름 을 되 돌려 줍 니 다.
클 라 이언 트 요청 헤드 획득
getHeader (string name) 방법: String  getHeaders (String name) 방법: 열거  getHeaderNames () 방법
클 라 이언 트 요청 파라미터 획득 (클 라 이언 트 가 제출 한 데이터)
  • getParameter (String) 방법 (상용)
  • getParameterValues (String name) 방법 (상용)
  • getParameterNames () 방법 (자주 사용 되 지 않 음)
  • getParameterMap () 방법 (프레임 을 작성 할 때 자주 사용)
  • 서버 에서 getParameter 방법 과 getParameterValues 방법 으로 폼 인 자 를 받 습 니 다.
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.security.Principal;
    import java.util.Enumeration;
    import java.util.Locale;
    import java.util.Map;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletInputStream;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    
    
    /**
     *       HttpServletRequest  ,              request
     * @version $Revision: 9961 $
     */
    public class Request {
    	/**
    	 *     
    	 */
    	public enum In {
    		/** */
    		RECORD {
    			/** {@inheritDoc} */
    			public String toString() {
    				return "record";
    			}
    		}
    	}
    
    	/**
    	 *   Request  
    	 *
    	 * @return Request    
    	 */
    	public static HttpServletRequest getInst() {
    		return (HttpServletRequest) AppMgr.threadVar("request");
    	}
    
    	/**
    	 * TODO$
    	 *
    	 * @param request
    	 *            void
    	 */
    	public static void setInst(HttpServletRequest request) {
    		AppMgr.setThreadVar("request", request);
    	}
    
    	/**
    	 *       
    	 *
    	 * @return     
    	 */
    	public static User curUser() {
    		try {
    			return (User) getSession(true).getAttribute(User.KEY_SESSION_USER);
    		} catch (Exception e) {
    			//      guest  
    			IBean guest = new Bean();
    			guest.set("USER_CODE", "guest");
    			guest.set("USER_NAME", "guest");
    			return new User(guest);
    		}
    	}
    
    	/**
    	 *          HTTP  (  :GET、POST、PUT)。
    	 *
    	 * @return     
    	 */
    	public static String getMethod() {
    		return getInst().getMethod();
    	}
    
    	/**
    	 *     URL     。           ,          。   :
    	 *   URL http://localhost:8080/web/main/list.do?id=1,   /web/main/list.do
    	 *
    	 * @return URI
    	 */
    	public static String getRequestURI() {
    		return getInst().getRequestURI();
    	}
    
    	/**
    	 *      URL。    (  http https)   ,         。
    	 *
    	 * @return   URL StringBuffer
    	 */
    	public static StringBuffer getRequestURL() {
    		return getInst().getRequestURL();
    	}
    
    	/**
    	 *   web      ,     ,   ""。   :
    	 * web     web,  URL http://localhost:8080/web/main/list.do?id=1,   /web
    	 *
    	 * @return Context Path
    	 */
    	public static String getContextPath() {
    		return getInst().getContextPath();
    	}
    
    	/**
    	 *   servlet  。   :
    	 * web     web,  URL http://localhost:8080/web/main/list.do?
    	 * id=1,   /main/list.do
    	 *
    	 * @return Servlet Path
    	 */
    	public static String getServletPath() {
    		return getInst().getServletPath();
    	}
    
    	/**
    	 *     URL   Servlet           。   :
    	 *   URL http://localhost:8080/web/main/list/product1/,
    	 *   Servlet url-pattern /main/list/*    /product1/
    	 *
    	 * @return Path Info
    	 */
    	public static String getPathInfo() {
    		return getInst().getPathInfo();
    	}
    
    	/**
    	 *            URL Servlet            ,             。
    	 *
    	 * @return path
    	 */
    	public static String getPathTranslated() {
    		return getInst().getPathTranslated();
    	}
    
    	/**
    	 *     URL         。
    	 *
    	 * @return      
    	 */
    	public static String getQueryString() {
    		return getInst().getQueryString();
    	}
    
    	/**
    	 *           。            ,      null。
    	 *
    	 * @param name
    	 *                
    	 * @return    
    	 */
    	public static String getHeader(String name) {
    		return getInst().getHeader(name);
    	}
    
    	/**
    	 *             。
    	 *
    	 * @param name
    	 *               
    	 * @return       Enumeration  
    	 */
    	public static Enumeration getHeaders(String name) {
    		return getInst().getHeaders(name);
    	}
    
    	/**
    	 *           。
    	 *
    	 * @return         Enumeration  
    	 */
    	public static Enumeration getHeaderNames() {
    		return getInst().getHeaderNames();
    	}
    
    	/**
    	 *            ,           。
    	 *
    	 * @param name
    	 *               
    	 * @return         
    	 */
    	public static int getIntHeader(String name) {
    		return getInst().getIntHeader(name);
    	}
    
    	/**
    	 *            ,          1970-1-1 (GMT)            。
    	 *
    	 * @param name
    	 *               
    	 * @return          
    	 */
    	public static long getDateHeader(String name) {
    		return getInst().getDateHeader(name);
    	}
    
    	/**
    	 *     Cookie  ,               Cookie。          Cookie,       。
    	 *
    	 * @return Cookie  
    	 */
    	public static Cookie[] getCookies() {
    		return getInst().getCookies();
    	}
    
    	/**
    	 *        Session
    	 *
    	 * @param create
    	 *                 Session ,     Session,     null
    	 * @return Session
    	 */
    	public static HttpSession getSession(boolean create) {
    		return getInst().getSession(create);
    	}
    
    	/**
    	 *        Session
    	 *
    	 * @return Session
    	 */
    	public static HttpSession getSession() {
    		return getInst().getSession();
    	}
    
    	/**
    	 *        Session Id
    	 *
    	 * @return Session Id
    	 */
    	public static String getRequestedSessionId() {
    		return getInst().getRequestedSessionId();
    	}
    
    	/**
    	 *        Session    。
    	 *
    	 * @return boolean ,    
    	 */
    	public static boolean isRequestedSessionIdValid() {
    		return getInst().isRequestedSessionIdValid();
    	}
    
    	/**
    	 *      Session Id           cookie   。
    	 *
    	 * @return boolean ,   cookie  
    	 */
    	public static boolean isRequestedSessionIdFromCookie() {
    		return getInst().isRequestedSessionIdFromCookie();
    	}
    
    	/**
    	 *        Session Id       URL       ,      ,     。
    	 *
    	 * @return boolean ,Session Id    URL
    	 */
    	public static boolean isRequestedSessionIdFromURL() {
    		return getInst().isRequestedSessionIdFromURL();
    	}
    
    	/**
    	 *              。
    	 *
    	 * @return  BASIC_AUTH, FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH(suitable
    	 *         for == comparison)                ,    null
    	 */
    	public static String getAuthType() {
    		return getInst().getAuthType();
    	}
    
    	/**
    	 *             。              ,      null。
    	 *
    	 * @return    
    	 */
    	public static String getRemoteUser() {
    		return getInst().getRemoteUser();
    	}
    
    	/**
    	 *                 。
    	 *
    	 * @param role
    	 *                
    	 * @return         
    	 */
    	public static boolean isUserInRole(String role) {
    		return getInst().isUserInRole(role);
    	}
    
    	/**
    	 *     java.security.Principal  ,            。         ,   null。
    	 *
    	 * @return Principal  
    	 */
    	public static Principal getUserPrincipal() {
    		return getInst().getUserPrincipal();
    	}
    
    	/**
    	 *            ,      /    .    。      HTTP1.0   ,     HTTP/1.0。
    	 *
    	 * @return     
    	 */
    	public static String getProtocol() {
    		return getInst().getProtocol();
    	}
    
    	/**
    	 *     URL    Scheme。   : http、https  ftp 。
    	 *
    	 * @return Scheme  
    	 */
    	public static String getScheme() {
    		return getInst().getScheme();
    	}
    
    	/**
    	 *               。
    	 *
    	 * @return    
    	 */
    	public static String getServerName() {
    		return getInst().getServerName();
    	}
    
    	/**
    	 *           。
    	 *
    	 * @return    
    	 */
    	public static int getServerPort() {
    		return getInst().getServerPort();
    	}
    
    	/**
    	 *       IP  。
    	 *
    	 * @return IP  
    	 */
    	public static String getRemoteAddr() {
    		return getInst().getRemoteAddr();
    	}
    
    	/**
    	 *           。            ,      IP  。
    	 *
    	 * @return     
    	 */
    	public static String getRemoteHost() {
    		return getInst().getRemoteHost();
    	}
    
    	/**
    	 *          。
    	 *
    	 * @return    
    	 */
    	public static int getRemotePort() {
    		return getInst().getRemotePort();
    	}
    
    	/**
    	 *     IP。
    	 *
    	 * @return IP  
    	 */
    	public static String getLocalAddr() {
    		return getInst().getLocalAddr();
    	}
    
    	/**
    	 *        。
    	 *
    	 * @return    
    	 */
    	public static String getLocalName() {
    		return getInst().getLocalName();
    	}
    
    	/**
    	 *        
    	 *
    	 * @return    
    	 */
    	public static int getLocalPort() {
    		return getInst().getLocalPort();
    	}
    
    	/**
    	 *            。                    。
    	 *
    	 * @param env
    	 *                  
    	 * @throws UnsupportedEncodingException
    	 *                      
    	 */
    	public static void setCharacterEncoding(String env)
    			throws UnsupportedEncodingException {
    		getInst().setCharacterEncoding(env);
    	}
    
    	/**
    	 *           ,           null。
    	 *
    	 * @param name
    	 *                
    	 * @return    
    	 */
    	public static String getParameter(String name) {
    		return getInst().getParameter(name);
    	}
    
    	/**
    	 *           (String  ),           null。
    	 *
    	 * @param name
    	 *                
    	 * @return      
    	 */
    	public static String[] getParameterValues(String name) {
    		return getInst().getParameterValues(name);
    	}
    
    	/**
    	 *           。
    	 *
    	 * @return         Enumeration  
    	 */
    	public static Enumeration getParameterNames() {
    		return getInst().getParameterNames();
    	}
    
    	/**
    	 *        Map  
    	 *
    	 * @return Map  
    	 */
    	public static Map getParameterMap() {
    		return getInst().getParameterMap();
    	}
    
    	/**
    	 *        。
    	 *
    	 * @return      ServletInputStream
    	 * @throws IOException
    	 *             IO  
    	 */
    	public static ServletInputStream getInputStream() throws IOException {
    		return getInst().getInputStream();
    	}
    
    	/**
    	 *        BufferedReader。
    	 *
    	 * @return BufferedReader
    	 * @throws IOException
    	 *             IO  
    	 * @throws IllegalStateException
    	 *                          getInputStream    
    	 */
    	public static BufferedReader getReader() throws IOException,
    			IllegalStateException {
    		return getInst().getReader();
    	}
    
    	/**
    	 *          。
    	 *
    	 * @return     
    	 */
    	public static String getCharacterEncoding() {
    		return getInst().getCharacterEncoding();
    	}
    
    	/**
    	 *        ,         -1。
    	 *
    	 * @return     
    	 */
    	public static int getContentLength() {
    		return getInst().getContentLength();
    	}
    
    	/**
    	 *      MIME  ,        null。
    	 *
    	 * @return MIME  
    	 */
    	public static String getContentType() {
    		return getInst().getContentType();
    	}
    
    	/**
    	 *   Locale  。
    	 *
    	 * @return Locale  
    	 */
    	public static Locale getLocale() {
    		return getInst().getLocale();
    	}
    
    	/**
    	 *   Locale    。
    	 *
    	 * @return     Locale   Enumeration
    	 */
    	public static Enumeration getLocales() {
    		return getInst().getLocales();
    	}
    
    	/**
    	 *            , https
    	 *
    	 * @return boolean 
    	 */
    	public static boolean isSecure() {
    		return getInst().isSecure();
    	}
    
    	/**
    	 *         (Object),       null。
    	 *
    	 * @param name
    	 *               
    	 * @return    
    	 */
    	public static Object getAttribute(String name) {
    		return getInst().getAttribute(name);
    	}
    
    	/**
    	 *       
    	 *
    	 * @param name
    	 *                
    	 * @param o
    	 *               
    	 */
    	public static void setAttribute(String name, Object o) {
    		getInst().setAttribute(name, o);
    	}
    
    	/**
    	 *     request        。
    	 *
    	 * @return Enumeration  ,     request    。
    	 */
    	public static Enumeration getAttributeNames() {
    		return getInst().getAttributeNames();
    	}
    
    	/**
    	 *     request  。
    	 *
    	 * @param name
    	 *                
    	 */
    	public static void removeAttribute(String name) {
    		getInst().removeAttribute(name);
    	}
    
    	/**
    	 *          RequestDispatcher  ,         null。
    	 *
    	 * @param path
    	 *              
    	 * @return RequestDispatcher  
    	 */
    	public static RequestDispatcher getRequestDispatcher(String path) {
    		return getInst().getRequestDispatcher(path);
    	}
    
    	/**
    	 *   DATA      
    	 *
    	 * @param name
    	 *            DATA      
    	 * @return    
    	 */
    	public static String getParamBean(String name) {
    		String rtnVal = "";
    		IBean paramBean = (IBean) AppMgr.threadVar("paramBean");
    		if (paramBean != null) {
    			rtnVal = String.valueOf(paramBean.get(name));
    		}
    		return rtnVal != null && rtnVal.length() > 0 ? rtnVal : getInst()
    				.getParameter(name);
    	}
    
    	public static String getWebAddress() {
    		StringBuffer webAddress = new StringBuffer(getInst().getScheme());
    		webAddress.append("://").append(getInst().getServerName());
    		if (80!=getInst().getServerPort()) {
    			webAddress.append(":").append(getInst().getServerPort());
    		}
    		webAddress.append(getInst().getContextPath());
    		return webAddress.toString()+"/";
    	}
    }
    

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    좋은 웹페이지 즐겨찾기