스프링 1

정태규·2022년 10월 31일
1

controller와 RequestMapping

내가 다루고자 하는 클래스위에 controller를 작성하고 메서드위에 RequestMapping을 작성한다.

@Controller
public class TwoDice {
	@RequestMapping("/rollDice")
	public void main(){}

main 메서드에 static을 붙히지 않는 이유는, static 메서드는 static 변수는 cv만 사용할수 있고, iv는 사용할 수 없기 때문이다.

HttpServletResponse

브라우저에 정보를 나타내기 위해서는 HttpServletResponse 클래스의 객체가 필요하다.

@Controller
public class A{
	@RequestMapping("/a") //주소창에 맨뒤에 /a 입력하면 아래 메서드가 동작한다.
    public void main(HttpServletResponse response) throw IOException //예외처리 필요{
    response.setContentType("text/html"); // html 타입의 text를 입력
    response.setCharacterEncoding("utf-8"); //utf-8 타입으로 encoding
    PrintWriter out = response.getWriter(); //getWriter() 함수로 글자를 읽어드린후 out 참조변수를 통해 응답을 내보낸다.
    
    out.println("<html>");
		out.println("<head>");
		out.println("</head>");
		out.println("<body>");
		out.println("<img src = '이미지 주소'>");// 이미지 출력
		out.println("</body>");
		out.println("</html>");
    }
}

동적리소스와 정적리소스

동적리소스

  • 리소스의 내용이 변하는것
  • ex)프로그램,스트리밍...

정적리소스

  • 이미지,.js,.css,*.html...

클라이언트,서버

클라이언트: 서비스를 요청하는 애플리케이션
서버: 서비스를 제공하는 애플리케이션

서버의 종류

  • 어떤 서비스를 제공하느냐??
  • ex)email, file, web(문서읽기, 동영상보기 등등)....

포트

  • 만약 한대의 pc에 여러가지 서비스의 서버가 있다면, IP만으로는 어떤 서버를 요청하는지 구별하기가 힘들다. 따라서 IP뒤에 포트번호를 붙혀줌으로써(ex)111.22.33.44:22) 내가 요청하는 서버를 정확하게 구별할 수 있다.
  • 웹서버는 기본이 80 이고 생략가능
  • 0~1023은 예약되어 있어서 못쓴다. 그이후로 65535까지 사용가능

웹 에플리케이션 서버(WAS): 웹 애플리케이션을 서비스하는 서버

  • 서버에 프로그램을 설치해놓고, 클라이언트가 프로그램을 사용할 수 있게 해준다.

Tomcat의 내부구조

  • 브라우저로(http://www.gongbu.co.kr/event/list...)요청을 한다.
    톰캣 포트 설정이 8080으로 되어있다면, 8080포트에 thread pool이 기다리고 있다.(thread pool은 요청이 들어오면 미리 만들어있는 thread pool중 한가한 thread 하나가 맡아서 처리한다. )
    톰캣서버에는 service가 있다. service(connector engine 포함)에는 connector가 있는데 브라우저에서 어떤 프로토콜을 요청했는지에 따라서 처리할 connector의 종류가 달라진다. (설명하자면, connector에는 HTTP1.1,HTTP2,AJP가 있고, 데이터 통신에 필요한 두개체가 데이터의 교환을 위한 규칙을 protocol이라고 한다. )
    connector는 요청을 Engine한테 전달한다. Engine에는 host(도메인,www.gongbu.co.kr)가 있다. host는 여러개가 가능하다.
    host에는 context가 있다. context는 web APP이고 프로그램(STS 프로젝트) 하나하나를 말한다. host에는 context가 여러개가 있을 수 있다.
    context에는 서블릿이 여러개가 있다.(서블릿은 작은 서버프로그램이다.)
    서블릿은 controller의 main method를 호출한다.

0개의 댓글