Url Mapping(web.xml)

김유정·2023년 11월 27일
1

서블릿-퀴즈

목록 보기
1/11
post-thumbnail
post-custom-banner

web.xml URL Mapping 후에 서블릿을 이용하여 출력하였다.
response.setContentType("text/plain") 순수한 글자를 출력한다.

quiz01) 오늘 날짜

  1. extends로 HttpServlet을 상속 받는다.
    그냥 만들면 서블릿이라는 걸 모른다.
  2. 상속받은 메소드를 @Override해서 재구현한다.
    doGet을 사용한다.
    여기서 doGet 마음대로 만든 메소드가 아니고, 부모의 타입이다.
  3. HttpServletRequest request와 HttpServletResponse response
    순서대로 받는다. 여기서 요청과 응답의 순서가 바뀌면 안된다.
    하지만 @Override를 통해서 에러를 알아챌 수 있다.
  4. 브라우저에 출력하는 것을 PrintWriter out 이라고 하며 관례적으로
    PrintWriter out = response.getWriter(); 이라고 써준다.
    응답값과 관계가 있다는 뜻, 빨간 줄이 뜨면 예외처리, 위로 던진다.(throws IOException)
  5. 그 다음 작성되는 out.println 은 자바의 System.out.println과 같다.
  6. 맵핑을 위해서 web.xml이 필요하다.
    아래는 web.xml이다.

<servlet>
  	<servlet-name>UrlMappingQuiz01</servlet-name>
  	<servlet-class>com.test.lesson01.UrlMappingQuiz01</servlet-class>
  </servlet>
  1. servlet name 과 같을 때 (위, 아래를 맵핑시키겠다)
  2. servlet class 를 수행시키겠다.
  • package명.class name명 입력
  • 연결이 잘되었는지 확인하기 위해 ctrl하고 com.~을 마우스 위에 올려본다.
  <servlet-mapping>
  	<servlet-name>UrlMappingQuiz01</servlet-name>
  	<url-pattern>/lesson01/quiz01</url-pattern> 
  </servlet-mapping>
  1. servlet-name 과 같을 때 (위, 아래를 맵핑시키겠다)
  2. url-pattern 주소로 들어왔을 때
  • 주소 앞에 꼭 슬래시 / 를 붙여준다. 안 붙이면 무한 404가 뜬다.
  • 에러가 발생시 console탭에서 Caused by를 찾아서 원인을 찾는다.
  • console탭에서 빨간색 글씨가 왼쪽에서 한 탭씩 떨어져 있다면 문제가 있는 것

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));
		
	}
}
profile
열심히 하자
post-custom-banner

0개의 댓글