48일차 2023-05-15

2023. 5. 15. 20:00JSP

JSP

 

 

Client(브라우저)에서 Server(톰캣)으로 요청할때 request라는 객체를 서버에서 생성(이 request객체는 응답을 할때 소멸됨)

 

Request 객체란?

- 가장 많이 사용되는 개체로 웹브라우저의 요청과 관련이 잇는 개체.
  (즉 클라이언트가 전송한 요청 정보를 제공하는 개체)

- request개체가 제공하는 기능 :
가)클라이언트와 관련된 정보
나)서버와 관련된 정보
다)클라이언트가 전송한 요청 파라미터 및 헤더정보
라)클라이언트가 전송한 쿠키정보등

 

Request의 주요 메서드:

가)클라이언트와 서버의 환경정보에 관련된 메서드

  • String getMethod():요청방식(GET, POST, PUT)방식
  • String getRequestURL():요청한 URL을 return(전체 URL )
  • String getRequestURI():요청한 URI를 return(도메인 부분을 제외)
  • String getProtocol():요청에 사용된 프로토콜을 return
  • String getServerName():요청을 받은 서버의 이름을 return(도메인명)
  • int getServerPort():서버의 포트번호를 return
  • String getRemoteAddr():사용자 컴퓨터의 IP Address를 return
    (WIN7인경우 url에 localhost루프백 주소 사용시 IPV6주소 리턴 . 127.0.0.1이나 혹은 아이피 주소로 테스트)
    HttpSession getSession(): request와 연관된 session개체를 반환 없으면 새롭게 생성
  • *서브릿에서는 request개체의 getSession으로 HttpSession개체를 얻어옴. 하지만, jsp에서는 session이라는 기본 내장개체를 제공하기때문에 사용할 일은 거의 없음(선언부에서는 <%! %>기본 내장 개체 사용못함)
  • String getContextPath(): 웹 어플리케이션의 컨텍스트의 경로 return 
    (*html에서 절대경로 이용시 getContextPath()사용)

 

나)클라이언트에서 보낸 파라미터 와 값에 관련된 메서드

  • String getParameter(String name):이름이 name인 파라미터의 값 반환, 존재하지 않을 경우 null return
  • String[] getParameterValues(String name): 이름이 name인 모든 파라미터의 값을 배열로 반환, 존재하지 않을 경우 null return
  • Enumeration getParameterNames(): 웹 브라우저가 전송한 파라미터의 이름
    예]
    Enumeration paramNames = request.getParameterNames();
    while(paramNames.hasMoreElements()){
                  String name= (String)paramNames.nextElement();}

    다)HTTP헤더와 관련된 정보

  • String getHeader(String name):name에 해당하는 헤더의 값을 return
  • Enumeration getHeaderNames():모든 헤더의 이름을 return

    예]

    Enumeration headernames = request.getHeaderNames();

    while(headernames.hasMoreElements()){

        String name = (String)headernames.nextElement();
        String value= request.getHeader(name);
        out.println(name+":"+value);
    }

 

RequestForHeader.jsp

 

결과)

Chrome에서 실행하여서 파이어폭스도 엣지도 아니다라는 결과 출력

f12(개발자모드)에서  Network에서 새로고침(F5)한번 실행, RequestForHeader.jsp를 클릭

 

위와 같은 Network 에서 보이는 헤더를 뽑아올 수 있다.

 

 

RequestForServerNClient.jsp

 

 

 

 

결과) 서버로 전송 누를시 HTTP메소드:POST로 변경되서 출력

 

 

 

 

RequestForParameter.jsp

결과) 홍길동, 남자 정치, 경제, 스포츠 선택 시

확인 버튼 누르기 전
확인 버튼 누른 후
a태그를 이용한 링크 GET누를 시 하드코딩한 값 출력 그리고 url이 다 보임

위 결과 값에서 url보면 ?가 나옴 그게 쿼리 스트링을 사용하였다는 것 ?가 쿼리 스트링

 

Request.ForExampleIndex.jsp

 

결과)

Request.ForExampleComplete.jsp

결과) 이걸 실행하면 alert('잘못된 접근입니다') 출력

 

ResponseForForContent.jsp

결과)

요청 보내기 클릭 시

ResponseForHeader.jsp

결과)

ResponseForRedirectIndex.jsp

결과)

ResponseForRedirectProcess.jsp

결과)출력하는 건 없고 그냥 코드 처리하는 page임

 

ResponseForRedirectMyPage.jsp

결과)  못받아옴

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'JSP' 카테고리의 다른 글

51일차 2023-05-18  (0) 2023.05.18
50일차 2023-05-17  (0) 2023.05.17
49일차 2023-05-16  (0) 2023.05.16
47일차 2023-05-12  (0) 2023.05.12
46일차 2023-05-11  (0) 2023.05.11