2-3 HTTP 요청과 응답 - 실습

서현우·2022년 5월 22일
0

복습

목록 보기
2/34

브라우저에서 URL로 요청하면
톰캣에서 HttpServletRequest객체를 만들고, 요청 내용을 담음.
톰캣이 request객체를 맵핑된 메서드의 매개변수로 넘겨줌.
메서드에서 request객체를 사용가능하게 됨.
request객체로 요청한 정보를 알 수 있게 됨.

HttpServletRequest의 메서드

getRequestURL() - scheme + serverName + port + URI
getScheme() - http
getServerName() - 52.78.79.190
getServerPot() - 8080

getRequestURI() - contextPath + servletPath
getContextPath() - ch2
getServletPath() - requestInfo
getQueryString()

쿼리스트링 :
값을 전달할 때 사용. ?year=2021&month=10&day=1
문자열로 받음.
name=value형태.(year=2021)
request.getParameter("year")형태로 사용.

HttpServletResponse객체로 브라우저에 응답해서 보여줄 수 있음.

package com.fastcampus.ch2;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

//년월일을 입력하면 요일 알려주는 프로그램.
@Controller
public class YoilTeller {
	@RequestMapping("getYoil")
	public void main(HttpServletRequest request, HttpServletResponse response) throws IOException {
		//1.입력
		String year = request.getParameter("year");
		String month = request.getParameter("month");
		String day = request.getParameter("day");
		
		//2.작업
		int yyyy = Integer.parseInt(year);
		int mm = Integer.parseInt(month);
		int dd = Integer.parseInt(day);
		
		Calendar cal = Calendar.getInstance();
		cal.set(yyyy, mm-1, dd);
		
		int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
		char yoil = " 일월화수목금토".charAt(dayOfWeek);
		
		//3.출력
		//브라우저에 출력하기
		response.setContentType("text/html"); //타입 알려주기
		response.setCharacterEncoding("utf-8"); //인코딩 알려주기
		
		PrintWriter out = response.getWriter(); //response에서 출력스트림을 얻는다.
		out.println(year+"년 "+month+"월 "+day+"일은 ");
		out.println(yoil+"요일입니다.");		
	}
}
profile
안녕하세요!!

0개의 댓글