1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | String method = request.getMethod(); //: method 확인(get|post) //: GET String ip = request.getRemoteAddr(); //: 클라이언트 아이피주소 //: 127.0.0.1 String cp = request.getContextPath(); //: ContextPath(문맥경로) //: /study String url = request.getRequestURL().toString(); //클라이언트가 요청한 전체주소 String uri = request.getRequestURI(); //URI : cp부터 나머지 주소 //: /study/0222/test3_ok.jsp String path = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath(); //path String referer = request.getHeader( "Referer" ); if(referer== null ) referer= "" ; //클라이언트의 이전 주소 String lang = request.getHeader( "Accept-Language" ); //언어정보 : ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4 String bw = request.getHeader( "User-Agent" ); //브라우저, 운영체제정보 //Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | 여부 ( true / false 값) Secure Channel : <%= request.isSecure() %> □ 요청에 대한 URI, 컨텍스트 경로, 서블릿 경로, GET/POST 등의 메소드 // User -Agent : 유저 에이전트는 브라우저 명 알기 // Referer : 래퍼러는 전페이지 주소를 얻으며 전페이지가 없으면 null String method = request.getMethod(); StringBuffer url = request.getRequestURL(); String uri = request.getRequestURI(); /* // Tomcat 5.5 이후 forward 된 jsp 에서 getRequestURI() 메소드나 getRequestURL() //메소드의 값이 이상해진 경우 예를 들어 서블릿 에서 uri : cp/bbs/list.ation jsp 위치(포워딩 jsp) : /WEB-INF/views/bbs/list.jsp 인경우 포워딩된 jsp에서 위 메소드를 사용하면 /cp/WEB-INF/views/bbs/list.jsp http://localhost:8080/cp/WEB-INF/views/bbs/list.jsp 로 jsp가 존재하는 경로가 표시된다. 하지만 서블릿에서 위 메소드를 사용하면 /cp/bbs/list.ation 만약 포워딩된 jsp에서 브라우저 주소를 가져오기 위해서는 다음 방법을 이용한다. String url=request.getAttribute( "javax.servlet.forward.request_uri" ); - 기타 속성 javax.servlet. forward .request_uri javax.servlet. forward .context_path javax.servlet. forward .servlet_path javax.servlet. forward .path_info javax.servlet. forward .query_string javax.servlet. forward .request_uri -> /study/jsp/test.jsp javax.servlet. forward .servlet_path -> /jsp/test.jsp javax.servlet. forward .context_path -> /studt javax.servlet. forward .path_info -> null javax.servlet. forward .query_string -> name = "hong" */ String cp = request.getContextPath(); String path =request.getScheme() + "://" +request.getServerName()+ ":" +request.getServerPort()+cp; String useBrowser = request.getHeader( "User-Agent" ); String fileType = request.getHeader( "Accept" ); String referer = request.getHeader( "Referer" ); if(referer== null ) referer= "" ; □ include 된 페이지 uri가져올 경우 <%= request.getAttribute( "javax.servlet.include.request_uri" ) %> 기타 include 된 페이지 정보 구하기 request.getAttribute( "javax.servlet.include.query_string" ) request.getAttribute( "javax.servlet.include.path_info" ) request.getAttribute( "javax.servlet.include.servlet_path" ) request.getAttribute( "javax.servlet.include.context_path" ) request.getAttribute( "javax.servlet.include.request_uri" ) □ 세션 ID에 대한 정보 Session ID : <%= request.getRequestedSessionId() %> Session ID from Cookie : <%= request.isRequestedSessionIdFromCookie() %> Session ID from URL : <%= request.isRequestedSessionIdFromURL() %> Session ID is still valid : <%= request.isRequestedSessionIdValid() %> □ Header 정보 보는 방법 <% Enumeration eHeader = request.getHeaderNames(); while(eHeader.hasMoreElements()) { String hName = (String)eHeader.nextElement(); String hValue = request.getHeader(hName); out .println(hName + " : " + hValue); } %> □ Request 객체를 통해서 쿠키 정보 보는 방법 <% Cookie cookies[] = request.getCookies(); for ( int i=0 ; i<cookies.length ;= "" i++)= "" {= "" string= "" name = "cookies[i].getName();" value= "cookies[i].getValue();" out .println( name = "" += "" "=" " :=" " value);=" " }=" " %=" "> □ HTML 폼을 통해 넘어온 데이터를 받는 부분 <% Enumeration eParam = request.getParameterNames(); while(eParam.hasMoreElements()) { String pName = (String)eParam.nextElement(); String pValue = request.getParameter(pName); out.println(pName + " : " + pValue); } %> □ attribute를 가져오는 부분 <% Enumeration eAttr = request.getAttributeNames(); while(eAttr.hasMoreElements()) { String aName = (String)eAttr.nextElement(); String aValue = (String)request.getAttribute(aName); out.println(aName + " : " + aValue); } %> □ [[request로 넘어오는 데이타들]], form 에서 enctype=" multipart/form-data " 인경우 만 사용 가능 <% DataInputStream dis = new DataInputStream(request.getInputStream()); String str; while((str = dis.readLine()) != null){ out.println(new String(str.getBytes(" ISO-8859-1 "), " euc-kr ")+" <br>"); // utf-8로 전송된 한글은 깨짐 } %> </cookies.length> |
■ request header 정보
□ Accept : 브라우저나 기타 클라이언트가 다룰 수 있는 MIME 형식들을 지정하는 것이다.
□ Accept-Charset : 브라우저가 사용할 수 있는 문자셋(ISO-8859-1)을 의미한다.
□ Accept-Encoding : 클라이언트가 원하는 인코딩 방식들을 의미한다. 문서를 네트웍 너머로 보내기에 적합한 형태로
변환하는것 을 의미한다.
□ Accept-Language : 클라이언트가 원하는 기본 언어를 의미한다.
□ Authorization : 헤더는 패스워드로 보호된 웹 페이지에 접근하려 하는 클라이언트가 자신의 신원 정보를 보내는 용도로 쓰인다.
□ Cache-Control : 프록시 서버에서의 캐시 설정을 의미한다.
□ Connection : 클라이언트가 영속적 HTTP 연결을 처리할 수 있는지의 여부를 뜻한다.
□ Content-Length : post만 해당하는 것으로, post 데이터에 담긴 데이터의 크기를 의미한다.
□ Content-type : 주로 응답에서 쓰이지만, 클라이언트가 post나 put을 이용해서 어떤 문서를 첨부했다면 클라이언트 요청 안에
포함되기도 한다.
□ Cookie : 서버가 브라우저에게 보냈던 쿠키를 다시 서버로 돌려 보낼 때 쓰인다.
□ Expect : 클라이언트가 바라는 서버의 행동이 어떤 것인지를 의미하는 헤더로 별로 쓰이지는 않는다.
□ From : HTTP 요청에 대해 책임이 있는 사람의 전자 우편주소이다.
□ Host : URL안에 호스트와 포트 번호로 브라우저는 반드시 이 헤더를 포함해야함. 브라우저가 원하는 구체적인 자원을 정확하게
돌려주기 위한 용도로 쓰임.
□ If-Match : put요청에 해당하는 헤더
□ If-Modified-Since : 어떤 페이지의 최종 수정일시가 특정항 일시 이후인 경우만 그 페이지를 돌려 받기 원하는 경우 이헤더에
그 일시를 헤더에 설정해서 요청한다.
□ If-None-Match : If-Match와 반대
□ If-Range : 다운로드 관리자의 이어받기 기능에서 주로 이용된다. 어떤 하나의 문서의 일부분만을 가지고 있을 때 수정 일시를
지정해서 그 일시 이후에 변한 것이 없으면 이미 가지고 있는 부분 이외의 것만 받게하고 아니면 문서 전체를 받는 용도로 쓰인다.
□ If-Unmodified-Since : If-Modified-Since 반대
□ Pragma : 헤더 값이 no-catch이면 프록시 서버 또는 하나의 프로시로서 작동하는 서블릿은 캐시에 복사본이 있다고 해도
서버에서 처리한 response를 전달한다.
□ Procy-Authorization
□ Range : If-Range 와 비슷하다.
□ Referer : 이전 url정보를 얻을 때 사용하지만, 너무 믿으면 곤란하다.
□ Upgrade : 클라이언트가 서버에게 HTTP1.1 이상의 어떠한 프로토콜을 지정하는 용도로 쓰인다.
□ User-Agent : 브라우저의 소프트웨어 종류와 버전을 의미한다.
□ Via : 요청이 거쳐간 중간 사이트들을 의미한다 주로 게이트웨이나 프록시 서버가 설정한다.
□ Warning : 클라이언트가 캐싱이나 내용 변환 관련 에러게 대해 경고 할 때 쓰이는 헤더로 자주 쓰이지 않는다.
'JSP > Jsp 내장객체' 카테고리의 다른 글
JSP 내장객체의 스코프 (0) | 2013.08.16 |
---|---|
HTML 문서에서 인자로 사용 (0) | 2013.08.16 |
EL 개요 (0) | 2013.08.16 |
Session (0) | 2013.07.29 |
JSP 개요 (0) | 2013.07.29 |