web.xml URL Mapping 후에 서블릿을 이용하여 출력하였다.
response.setContentType("text/plain") 순수한 글자를 출력한다.
quiz01) 오늘 날짜
- extends로 HttpServlet을 상속 받는다.
그냥 만들면 서블릿이라는 걸 모른다.- 상속받은 메소드를 @Override해서 재구현한다.
doGet을 사용한다.
여기서 doGet 마음대로 만든 메소드가 아니고, 부모의 타입이다.- HttpServletRequest request와 HttpServletResponse response
순서대로 받는다. 여기서 요청과 응답의 순서가 바뀌면 안된다.
하지만 @Override를 통해서 에러를 알아챌 수 있다.- 브라우저에 출력하는 것을 PrintWriter out 이라고 하며 관례적으로
PrintWriter out = response.getWriter();
이라고 써준다.
응답값과 관계가 있다는 뜻, 빨간 줄이 뜨면 예외처리, 위로 던진다.(throws IOException)- 그 다음 작성되는 out.println 은 자바의 System.out.println과 같다.
- 맵핑을 위해서 web.xml이 필요하다.
아래는 web.xml이다.
<servlet>
<servlet-name>UrlMappingQuiz01</servlet-name>
<servlet-class>com.test.lesson01.UrlMappingQuiz01</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UrlMappingQuiz01</servlet-name>
<url-pattern>/lesson01/quiz01</url-pattern>
</servlet-mapping>
package com.test.lesson01;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UrlMappingQuiz01 extends HttpServlet{
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{
// 한글 깨짐 방지- response header
response.setContentType("text/plain");
response.setCharacterEncoding("utf-8");
//PrintWriter out = response.getWriter();
//out.print("오늘의 날짜는 ");
Date now = new Date();
//out.println(now);
// "오늘의 날짜는 2021년 5월 20일")
//한번에 출력하는 게 더 간단하다!
SimpleDateFormat sdf = new SimpleDateFormat("오늘의 날짜는 yyyy년 M월 dd일");
PrintWriter out = response.getWriter();
out.println(sdf.format(now));
}
}
quiz02) 현재 시간
package com.test.lesson01;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UrlMappingQuiz02 extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
// 한글 깨짐 방지- response header
response.setContentType("text/plain");
response.setCharacterEncoding("utf-8");
//out.print("현재 시간은 ");
Date now = new Date();
//out.println(now);
//한줄로 간단하게!
SimpleDateFormat sdf = new SimpleDateFormat("현재 시간은 HH시 mm분 ss초 입니다.");
PrintWriter out = response.getWriter(); //예외처리 위로 던지기
out.println(sdf.format(now));
}
}