Spring(1)

DeadWhale·2022년 5월 15일
0

Spring

목록 보기
1/25
post-thumbnail

오늘 강의 키 포인트 request로 얻어올수 있는 객체들 정보를 배우고
AWS에 배포하고 public IPv4 를 이용해 접근해봤다
request response는 이미 학원에서 사용/접근해봐서
별 감흥이 없었는데
실제로 가상웹으로 배포된 걸 ( 문자한줄이긴 하지만 ㅋㅋ)
확인해보니 뭔가 신기한 느낌이였다 ㅋㅋㅋ

Request 객체 구조

Request객체

"request.getCharacterEncoding()="+request.getCharacterEncoding()); // 요청 내용의 인코딩
"request.getContentLength()="+request.getContentLength());  // 요청 내용의 길이. 알수 없을 때는 -1
"request.getContentType()="+request.getContentType()); // 요청 내용의 타입. 알 수 없을 때는 null

"request.getMethod()="+request.getMethod());      // 요청 방법
"request.getProtocol()="+request.getProtocol());  // 프로토콜의 종류와 버젼 HTTP/1.1
"request.getScheme()="+request.getScheme());      // 프로토콜

"request.getServerName()="+request.getServerName()); // 서버 이름 또는 ip주소
"request.getServerPort()="+request.getServerPort()); // 서버 포트
"request.getRequestURL()="+request.getRequestURL()); // 요청 URL
"request.getRequestURI()="+request.getRequestURI()); // 요청 URI

"request.getContextPath()="+request.getContextPath()); // context path
"request.getServletPath()="+request.getServletPath()); // servlet path
"request.getQueryString()="+request.getQueryString()); // 쿼리 스트링

"request.getLocalName()="+request.getLocalName()); // 로컬 이름
"request.getLocalPort()="+request.getLocalPort()); // 로컬 포트

"request.getRemoteAddr()="+request.getRemoteAddr()); // 원격 ip주소
"request.getRemoteHost()="+request.getRemoteHost()); // 원격 호스트 또는 ip주소
"request.getRemotePort()="+request.getRemotePort()); // 원격 포트


년,월,일을 입력받아서 요일을 확인해주는 프로그램

@Controller
public class YoilTeller {
	
    	@RequestMapping("/getYoil")
  		//웹에서 접근할 주소 ( 프로젝트명/getYoil )로 접근하게 된다.
  	
public static void main(HttpServletRequest request, HttpServletResponse response)throws Exception{
//1.입력  웹 사이트에서 Parameter를 얻어온다 , 
// 이 때 얻어오는 파라미터값은 네임속성으로 얻어온다
 		String year = request.getParameter("year");
		String month = request.getParameter("month");
		String day = request.getParameter("day");

//parameter를 String을 받아서 정수로 인트로 변환하는 과정이 필요하다.
		int yyyy=Integer.parseInt(year);
		int mm=Integer.parseInt(month);
		int dd=Integer.parseInt(day);

//2.실제 메소드 수행 과정
//  캘린터를 이용해 어느 요일인지 Cal변수에 세팅한다.
		Calendar cal = Calendar.getInstance();
		cal.set(yyyy, mm-1, dd); //캘린더 변수에 요일 대입.

		int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); 
        // Cal에서 값을 추출 1:일 2:월 3:화로 반환 
		char yoil = " 일월화수목금토".charAt(dayOfWeek); 
        //요일에 맞는 날자 확인
        //dayOfWeek에 숫자형태로 요일값이 들어와있어서 
        //요일명을 위치에 맞는 배열 번호로 뽑느다
        //이 때 배열은 0 부터 시작이니깐 한칸 띄우고 시작한다.
        //나는 Switch -Case를 사용할까 했는데 이게 더 깔끔하고 신기하게 처리한것 같다.

		//콘솔출력
		System.out.println(year+"년"+month+"월"+day+"일은");
		System.out.println(yoil);
        //syso 으로 콘솔로 값을 출력하는 경우.


		response.setContentType("text/html");
		response.setCharacterEncoding("utf-8");	
        //웹공식이 iso어쩌구여서 3바이트 한글을 해석을 못한다 
        //페이지 타입이랑 Ecoding을 뭘로 할지 명시해줘야 한다.
        
		PrintWriter out =  response.getWriter(); 
        //브라우저로 출력할 스트림얻기
        //근대 jsp로 forward 하거나 Redira
        
		out.println(year+"년"+month+"월"+day+"일은");
		out.println(yoil);
        //단순 문자열 출력(원래 이러면 안된다)
	}
}

AWS

아 사진을 올릴려했는데 AWS 해킹 관련해서
사진 노출을 줄이라는 글을 여럿 봐서 조심해야겟다

인스턴스에서 tomcat으로 wapapp을 자동으로 배포해주는데 신기하다.

0개의 댓글