본문 바로가기

코딩 학원(국비지원)

49일차 코딩학원

반응형

1. Tomcat(톰캣)? 뭐하는 프로그램인가? 

자바기반의 서블릿 웹 컨테이너. 웹서버다. JSP/Spring으로 웹사이트를 구축한다면 톰캣은 반드시 사용한다. 

 

2. 서블릿? 서블릿이 뭐지?

Server + let(작은 프로그램) . 

서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 class 

 

3. xml? 

 

4. ModelAndView 사용. 

package com.earth.apple;

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

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
/*
 * 년, 월, 일 입력하면 해당 요일을 알려주는 프로그램을 작성하시오. 
 * 
 * 1) URL을 입력해서 호출을 하면 톰캣이 HttpServletRequest 객체를 만든다 
 * 2) 브라우저에서 요청한 정보를 HttpServletRequest 객체에 담아서 자동으로 
 * 	  main()메서드의 매개변수로 넘겨줌 
 */
@Controller			//1. 원격 호출가능한 프로그램으로 등록 
public class DayOfTheWeek4 {
	
	@RequestMapping("/getdaymv")		//2.url과 메서드를 연결 
	public ModelAndView main(int year, int month, int day, Model model) {
		
		//1. 유효성 검사
//		if(!isValid(year, month, day))
//			return "DayOfweekError";	//   /WEB-INF/views/dayOfweekError.jsp
		
		//2. 요일 계산 
		char dayOfTheWeek = getDayOfWeek(year, month, day);
		
		ModelAndView mv = new ModelAndView();
		
		//3. Model에 작업 결과 저장
		mv.addObject("year", year);
		mv.addObject("month", month);
		mv.addObject("day", day);
		mv.addObject("dayOfTheWeek", dayOfTheWeek);
		
		//4. 작업한 결과를 보여줄 뷰의 이름을 지정
		mv.setViewName("dayOfWeek");
		
		//5.ModelAndView를 반환
		return mv;
	}
		
	private char getDayOfWeek(int year, int month, int day) {
		Calendar cal = Calendar.getInstance();
		cal.set(year, month-1, day);		//날짜 setting 
		
		int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
		
		/*
		 * " 일월화수목금토".chatAt(1) => 일
		 * " 일월화수목금토".chatAt(2) => 월 
		 * 
		 */
		char dayOfTheWeek = " 일월화수목금토".charAt(dayOfWeek);
		return dayOfTheWeek;
	}
	
	private boolean isValid(int year, int month, int day) {
		if (year == -1 || month == -1 || day == -1)
			return false;
		return (month >=1 && month <=12) && (day >=1 && day <=31); 
	}
}

 

5. javaEE : 스프링 라이브러리를 안 쓴다면 이걸 써도 무방하다. 

6. 낯선 느낌은 내 몸이 저항하는 것이다. 

 

7. 상속 개념이 많이 쓰인다. 다른 클래스에서 가져와서 쓰는 경우가 많네. 

9. Server Runtime을 넣어줌. 

10. 서블릿 요청

package com.earth.saturn;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//@WebServlet(urlPatterns = {"/hello"}, loadOnStartup = 1) 
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("[HelloServlet] service() 호출");
	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		super.destroy();
	}

	@Override
	public void init() throws ServletException {
		// TODO Auto-generated method stub
		super.init();
	}
	
}

 

11. 잘 모르겠으면 호출-반응정도만이라도 이해하자. 

 

12. 왔다갔다 하니까 헷깔리고 이해가 안되는 부분이 많음. Spring 강의들어야겠다. 

 

 13. JSP는 Javaserverpage의 약자다. 서블릿과 JSP의 차이점?

 

    서블릿                                                                              JSP
    ----------------------------------------------------------------------------------
    자바 코드안에서 전체 html            html 코드안에서 필요한 부분만
    페이지를 생성                               자바 코드를 스크립트 형태로 추가함
    
    변수 선언 및 초기화는 반드시        내장 객체로 제공하여 즉시 사용할 수 있음
    선행되어야함                    

    컨트롤러(Contorller)를 만들 때        처리된 결과를 보여주는 뷰(View)를 만들 때 사용
    사용함            

 

14. webapp가 루트라고 하는데.... 루트 노드? 그것과 비슷한 건가? 

 

15. let 릿이 붙으면 작은 단위가됨. 

 

16. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8     스프링 강의 하루에 하나씩 듣자. 인프런 무료강의. 

 

17. 스프링 공부하는 느낌 : 거대하고 깊은 바다에 표류하는 돛단배가 되었다. 

반응형

'코딩 학원(국비지원)' 카테고리의 다른 글

51일차 코딩학원  (0) 2023.03.31
50일차 코딩학원  (0) 2023.03.30
48일차 코딩학원  (0) 2023.03.28
47일차 코딩학원  (1) 2023.03.27
46일차 코딩학원  (0) 2023.03.27