Step it up now

서블릿/ 기초 본문

개인공부/servlet, JSP

서블릿/ 기초

케잉 2023. 12. 2. 15:28
  • 클래스명, service()
//WAS는 클래스명에 관심이 없다
//약속된 인터페이스, 추상 클래스를 참조함-> HttpServlet
public class Nana extends HttpServlet
{
//JAVA에서 main() 사용하는 것과 반대로
//추상 클래스를 통해 구현하는 약속된 sesrvice 함수 사용
	public void service(HttpServletRequest request
			, HttpServletResponse response)
			throws IOException, ServletException
	{
		System.out.println("hello Servlet");
	}
}

 

  • WEB-INF

톰캣의  홈디렉토리의 WEB-INF 폴더
클라이언트에 의해 요청될 수 없음/ 접근 불가/ 서버쪽에서만 사용가능 

 

  • 사용자 요청과 서블릿 실행 

대신 GET방식으로 요청한다

서버에서는 URL과 매핑된 서블릿 코드를 보내준다

 

 

 

 

 

매핑정보를 톰캣에 설정한다   

사용자가 요청시에는 hello로 요청  (http://localhost/hello)
사용자가 요청시에는 hello로 요청한다  

요청받은 웹서버는 파일 찾아보고 없으면 WAS에게 넘김
WAS인 톰캣은 hello에 해당되는 서블릿코드를 찾아 실행해준다 (WAS가 매핑정보 실행 )

 

 

서블릿코드가 실행되면 localhost: 웹페이지에는 아무것도 안나온다
실행은 했지만 사용자에게 돌려주는 출력을 안했기 때문
클라이언트에게 출력할 수 있는 도구가 필요함 

 

public void service(HttpServletRequest request
					, HttpServletResponse response)

//출력할때 보통 stream 사용 
OutputStream os = response.getOutputStream();
//stream을 편하게 쓸 수 있는 문자출력 객체
// 출력 버퍼 채워져야 보내지는데  true 쓰면 기다리지 말고 바로 프린트단위로 출력하라는 것
PrintStream out = new PrintStream(os, true);
out.println("Hello Servlet");

 

 

PrintStream out = new PrintStream(os, true); 사용하지 않고 

문자를 출력하기에 

PrintWriter out = response.getWriter(); 사용한다 

 

OutputStream os = response.getOutputStream();
//문자를 쓰는데 - 다국어라면?  PrintWriter 사용한다
PrintWriter out = response.getWriter();
out.println("Hello Servlet");

 

 

 

 

출처: https://www.youtube.com/watch?v=jp7vtbLin-s&list=PLq8wAnVUcTFVOtENMsujSgtv2TOsMy8zd&index=8&ab_channel=%EB%89%B4%EB%A0%89%EC%B2%98

 

 

'개인공부 > servlet, JSP' 카테고리의 다른 글

POJO-1  (0) 2023.12.15
서버 작동 구조  (0) 2023.12.02