* 본 글은 [뉴렉처]의 Servlet&JSP 프로그래밍 강의를 듣고 정리한 글입니다.
2020 Servlet&JSP 프로그래밍
www.youtube.com
Servlet 문자열 출력
기존 자바 프로그램과 서블릿 프로그램에서 달라지는 부분
- 자바 웹 프로그래밍에서 웹이 담당하는 것은 UI(사용자 입출력)
- 입력과 출력을 담당하는 부분이 웹으로 바뀜
- 웹: 클라이언트로부터 입력을 받고, 서버에서 클라이언트로 원격으로 출력 결과를 보여줌
- UI에는 콘솔 UI, 윈도우 UI도 있음
서블릿 코드 작성: OutputStream과 PrintStream을 이용한 출력
- service( )메소드는 인자가 2개 - request 객체, response 객체
- response 객체가 뭘 갖고 있나 확인하기 위해 response.get 하면 많은 도구가 나옴
- 입출력(파일, 콘솔 등)을 할 땐 Stream을 사용
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class Nana extends HttpServlet
{
public void service(HttpServletRequest request
, HttpServletResponse response)
throws IOException, ServletException
{
OutputStream os = response.getOutputStream();
PrintStream out = new PrintStream(os, true);
out.println(”Hello Servlet!”);
}
}
- OutputStream os = response.getOutputStream();
- 출력하기 위해 OutputStream 사용
- PrintStream out = new PrintStream(os, true);
- 문자열을 출력하기 편하도록 OutputStream 객체를 이용해 PrintStream으로 매핑
- 네트워크로 출력되는 Stream은 출력 버퍼 8KB가 채워져야 출력함
- 버퍼를 꽉 채우지 못하면 출력되지 않고 기다림
- true: 버퍼를 채우지 못했어도 기다리지 말고 print 단위로 출력하라는 옵션
- out.println(”Hello Servlet!”);
- out: PrintStream의 객체 > System.out처럼 println, printf 등을 사용할 수 있음
- 서버 쪽 콘솔이 아니라, 원격에 있는 클라이언트에 전달됨
다시 수정한 서블릿 코드를 컴파일 및 실행
- 파일을 수정할 때마다 아래의 복잡한 과정을 반복해야 함 > IDE를 사용하면 해결됨
- 1) cmd에서 수정한 Nana.java를 컴파일
- 명령어: javac -cp C:\DEV\apache-tomcat-9.0.75\lib\servlet-api.jar Nana.java
- 2) 새로 컴파일된 Nana.class를 Tomcat 홈 디렉토리>webapps>ROOT>WEB-INF>classes로 이동
- 3) 설정을 변경했기 때문에 톰캣 서버를 재실행(bin>startup.bat 파일 재실행)
- 4) 브라우저에 localhost:8090/hello를 입력하면 Hello Servlet!이 출력됨
서블릿 코드 작성: response을 이용한 출력
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class Nana extends HttpServlet
{
public void service(HttpServletRequest request
, HttpServletResponse response)
throws IOException, ServletException
{
//OutputStream os = response.getOutputStream();
//PrintStream out = new PrintStream(os, true);
PrintWriter out = response.getWriter();
out.println(”Hello Servlet!”);
}
}
- 문자열을 출력할 때는 OutputStream을 직접 쓰지 않고 PrintStream을 사용
- PrintSteram을 기본적으로 제공해주는 getter메소드가 있음: getWriter( )
- Java에는 Stream 계열과 Writer 계열이 있음
- Writer는 문자열을 다룸 > 다국어 코드를 다룰 수 있음
'☕ Java 웹 프로그래밍 > Servlet & JSP' 카테고리의 다른 글
[Servlet&JSP] 서블릿 프로젝트의 web.xml에서 발생하는 오류 해결 (0) | 2023.05.23 |
---|---|
[Servlet&JSP] 웹 개발을 위한 이클립스 IDE 설치하기 (0) | 2023.05.23 |
[Servlet&JSP] 서블릿 객체 생성과 실행 (0) | 2023.05.23 |
[Servlet&JSP] 서블릿 프로그램 만들기 (0) | 2023.05.23 |
[Servlet&JSP] Context 추가하기 (0) | 2023.05.23 |