개인공부/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");