프로그램의 실행결과를 톰캣이 아닌 브라우저에 출력할 것이다.
년월일을 말하면 요일을 출력할 것이다.
새로운 클래스를 만든다.
package com.fastcampus.ch2;
import java.util.Calendar;
public class YoilTeller {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 1. 입력
String year = args[0];
String month =args[1];
String day = args[2];
int yyyy = Integer.parseInt(year); //문자열이니 숫자로 변경
int mm = Integer.parseInt(month);
int dd = Integer.parseInt(day);
// 2. 작업
Calendar cal = Calendar.getInstance(); //날짜 셋팅
cal.set(yyyy, mm-1, dd);
int dayOfweek = cal.get(Calendar.DAY_OF_WEEK); //1:일요일, 2:월요일 ...
char yoil = " 일월화수목금토".charAt(dayOfweek); //다시 문자열로 변경
// 3. 출력
System.out.println(year + "년" + month + "월" + day + "일은");
System.out.println(yoil + "요일입니다");
}
}
매개변수로 받아야해서 콘솔에서 실행해야 한다.
cd classes
java com.fastcampus.ch2.YoilTeller 2024 10 29
입력하면 요일이 출력됨
package com.fastcampus.ch2;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
@Controller
public class RequestInfo {
@RequestMapping("/requestInfo")
public void main(HttpServletRequest request) {
System.out.println("request.getCharacterEncoding()="+request.getCharacterEncoding()); // 요청 내용의 인코딩
System.out.println("request.getContentLength()="+request.getContentLength()); // 요청 내용의 길이. 알수 없을 때는 -1
System.out.println("request.getContentType()="+request.getContentType()); // 요청 내용의 타입. 알 수 없을 때는 null
System.out.println("request.getMethod()="+request.getMethod()); // 요청 방법
System.out.println("request.getProtocol()="+request.getProtocol()); // 프로토콜의 종류와 버젼 HTTP/1.1
System.out.println("request.getScheme()="+request.getScheme()); // 프로토콜
System.out.println("request.getServerName()="+request.getServerName()); // 서버 이름 또는 ip주소
System.out.println("request.getServerPort()="+request.getServerPort()); // 서버 포트
System.out.println("request.getRequestURL()="+request.getRequestURL()); // 요청 URL
System.out.println("request.getRequestURI()="+request.getRequestURI()); // 요청 URI
System.out.println("request.getContextPath()="+request.getContextPath()); // context path
System.out.println("request.getServletPath()="+request.getServletPath()); // servlet path
System.out.println("request.getQueryString()="+request.getQueryString()); // 쿼리 스트링
System.out.println("request.getLocalName()="+request.getLocalName()); // 로컬 이름
System.out.println("request.getLocalPort()="+request.getLocalPort()); // 로컬 포트
System.out.println("request.getRemoteAddr()="+request.getRemoteAddr()); // 원격 ip주소
System.out.println("request.getRemoteHost()="+request.getRemoteHost()); // 원격 호스트 또는 ip주소
System.out.println("request.getRemotePort()="+request.getRemotePort()); // 원격 포트
}
}
서버를 실행해서 url에 검색했다.
Main클래스의 이름을 PrivateMethodCall로 변경
다시 YoilTeller 클래스에 들어가서 원격으로 request받기 위해 코드 수정
package com.fastcampus.ch2;
import java.util.Calendar;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class YoilTeller {
@RequestMapping("/getYoil")
public void main(HttpServletRequest request) {
// TODO Auto-generated method stub
// 1. 입력
String year = request.getParameter("year");
String month =request.getParameter("month");
String day = request.getParameter("day");
int yyyy = Integer.parseInt(year); //문자열이니 숫자로 변경
int mm = Integer.parseInt(month);
int dd = Integer.parseInt(day);
// 2. 작업
Calendar cal = Calendar.getInstance(); //날짜 셋팅
cal.set(yyyy, mm-1, dd);
int dayOfweek = cal.get(Calendar.DAY_OF_WEEK); //1:일요일, 2:월요일 ...
char yoil = " 일월화수목금토".charAt(dayOfweek); //다시 문자열로 변
// 3. 출력
System.out.println(year + "년" + month + "월" + day + "일은");
System.out.println(yoil + "요일입니다");
}
}
브라우저에 결과 나오기 위해 리스폰스 객체를 매개변수로 추가 해야한다.
또한 println으로 출력된 것을 브라우저로 맞춰서 변환 + 예외처리
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 {
// TODO Auto-generated method stub
// 1. 입력
String year = request.getParameter("year");
String month =request.getParameter("month");
String day = request.getParameter("day");
int yyyy = Integer.parseInt(year); //문자열이니 숫자로 변경
int mm = Integer.parseInt(month);
int dd = Integer.parseInt(day);
// 2. 작업
Calendar cal = Calendar.getInstance(); //날짜 셋팅
cal.set(yyyy, mm-1, dd);
int dayOfweek = cal.get(Calendar.DAY_OF_WEEK); //1:일요일, 2:월요일 ...
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 + "요일입니다");
}
}
utf-8로 인코딩 방식을 알려줌으로서 한글 깨짐 방지
다시 url 에 입력
'Java > 패스트캠퍼스 자바' 카테고리의 다른 글
[패스트캠퍼스] Http요청과 응답 - 이론 (1) | 2024.10.30 |
---|---|
[패스트캠퍼스]server.xml, web.xml (1) | 2024.10.30 |
[패스트캠퍼스] AWS 배포하기 (0) | 2024.10.29 |
[패스트캠퍼스] Spring reflect API (0) | 2024.10.28 |
[패스트캠퍼스] Spring MVC project 복사하여 새로 만들기 (0) | 2024.10.28 |