[JSP] Sevlet (Request / Response)

Gabriela·2023년 9월 14일
0

JSP

목록 보기
4/20

요청 (Request)


Request 활용


doGet 으로 파라미터가 오는 경우

  • 요청을 UTF-8인코딩한다.
    request.setCharacterEncoding("UTF-8");
  • 요청 파라미터를 받는다.
    • 요청 파라미터는 모두 String 타입이다.
    • 요청 파라미터가 없으면 null 값으로 처리된다.
      .getParameter("파라미터");
  • 요청 파라미터의 타입을 조정한다.
  • 타입을 조정할 때 Exception이 발생하지 않도록 요청 파라미터에 [null 처리 + 빈 문자열 처리]가 필요하다.
  • 자바에서 컨텍스트패스 불러오는 방법
    .getContextPath()
  • get 방식에서 이벤트 사용 시 location으로 요청
    • location.href = url;
      • <a>태그와 같은 역할을 하는 자바스크립트 코드

Null 처리 방법

  • 고전 null 처리
int age = 0;
	if(strAge != null ) {
	age = Integer.parseInt(strAge);		  
}

Optional 클래스

  • 값의 null 여부를 검사해서 NullPointerException 방지처리가 가능하다.
    • of() 메소드 : null이 아닌 명시된 값을 가지는 Optional 객체를 반환
    • ofNullable() 메소드 : 데이터 값에 null이 올 수 있는 경우에 사용
    • orElse() 메소드 : 저장된 값이 있으면 그 값을 반환, 값이 존재하지 않으면 인수로 전달된 값을 반환

null 처리를 위한 Optional 클래스 처리

  • (Optional 클래스 : Java 클래스)
Optional<String> opt = Optional.ofNullable(strAge);
int age = Integer.parseInt(opt.orElse("0"));  // opt로 감싼 strAge가 null이면 "0"을 꺼낸다.
  	}
  • null 처리 + 빈 문자열 처리
int age = 0;
if (strAge != null && !strAge.isEmpty()) {
	age = Integer.parseInt(strAge);
}

(String은 상관 없지만 타입변환을 해줄땐 null처리 필수!)


doPost 로 파라미터가 오는 경우

  • 요청을 UTF-8로 인코딩한다.
    request.setCharacterEncoding("UTF-8");
  • 동일한 요청 파라미터2개 이상 전달되는 경우 getParameterValues() 메소드를 이용해서 요청 파라미터들을 배열로 받는다.

value

  • 무슨 태그건 사용자가 입력한 값value 속성이 된다.
  • 사용자가 입력하지 않을시 value 속성을 지정해줘야 한다.
    • 그렇지 않으면 빈 문자열이 전송된다.
  • checkboxvalue가 없을 시 전달되는 디폴트 값이 on이 된다.
    • 눌렀다 안 눌렀다의 동작만 사용하는 경우 on사용 가능
    • 체크하지 않으면 null(전송 자체가 안 된다. 백에서 인식 불가)
    • null체크도 가능(on이 넘어왔는지 안 넘어왔는지 확인)

👉Request 예제-서버 깃허브(클릭)

👉Request 예제-클라이언트 깃허브(클릭)


응답 (Response)


  • 서버가 클라이언트에게 데이터를 보내는 것을 의미한다.
  • HttpServletResponse 클래스가 응답을 처리한다.
  • 응답 데이터의 타입(MIME TYPE)을 결정하고 응답한다.
    • text/html : 태그를 만들어서 반환하는 경우
    • application/xml : XML을 반환하는 경우
    • application/json : JSON을 반환하는 경우

Response 활용

  • 응답 데이터 타입 설정인코딩 설정
    • response.setContentType("text/html; charset=UTF-8");
  • ContentType에서 세미콜론(;)으로 구분해서 응답 데이터 타입과 인코딩 설정을 동시에 할 수 있다.
  • 응답 스트림 생성
    • PrintWriter out = response.getWriter();
      • 문자 기반 출력 스트림인 Writer 생성
  • IOException 예외 처리가 필요하지만 doGet() 메소드는 IOException처리를 이미 하고 있다.
  • 응답하기
    • 자바로 태그 만들기
    • 예시) out.println("<!DOCTYPE html>");

👉Response 예제-서버 깃허브(클릭)

👉Response 예제-클라이언트 깃허브(클릭)



profile
개발이 세상에서 제일 재밌어요

0개의 댓글