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(); //클라이언트가 요청한 전체주소 //: http://localhost:9090/study/0222/test3_ok.jsp String uri = request.getRequestURI(); //URI : cp부터 나머지 주소 //: /study/0222/test3_ok.jsp String path = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath(); //path //http://localhost:9090/study String referer = request.getHeader("Referer"); if(referer==null) referer=""; //클라이언트의 이전 주소 //: http://localhost:9090/study/0222/test3.jsp 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
여부 (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 http://localhost:8080/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 - http://localhost:8080/study/jsp/test.jsp?name="hong" 에서의 출력 결과 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□ 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")+"
"); // utf-8로 전송된 한글은 깨짐 } %>
■ 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 |