[Servlet] Response

※tip) 타이핑 없이 Servlet 클래스 생성

1) 생성 시, 'Servlet' 선택 


2-1) 클래스 명, 패키지 설정

 

-'Next' 클릭


2-2) 다음으로 넘어감


2-3)inherited abstract methods, service 를 제외한 다른 체크 박스 체크 해제

※service 가 있다면 대부분의 기능의 사용이 가능


3)클래스 자동 완성



java 환경에서 html 스크립트 전송하기


step1) 응답 형식 지정(응답해줄 내용의 형식, 인코딩 방식)-> head 부분 확인

response : 응답 정보를 담고 있는 객체 - 전송하는 메시지의 head 부분은 해석, 구분, 작성 등 인식이 가능하나, body는 인식 불가 

PrintWriter : 응답 내용을 작성할 때, 필요한 객체
        
response.setContentType("문서형식; charset = 인코딩 방식");
-> 문서 형식은 text/html, 인코딩 방식은 utf-8 사용

step2) PrintWriter 객체 생성(response 는 스스로 작성이 불가)
response 객체 내부에는 웹 페이지의 정보가 담겨 있음
printWriter 객체를 이용하여 웹 페이지와의 출력 스트림을 연결

step3) 응답 내용 작성-html 태그 영향 받음
PrintWriter 객체에 의해서만 html 스크립트의 작성 및 전송이 가능

※실습 스크립트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package ex0502;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 * Servlet implementation class ex02response
 */
@WebServlet("/ex02response"// 클래스 파일 이름 그대로 URLMapping 
public class ex02response extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    /**
     * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
     */
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        
        //1. 응답 형식 지정(응답해줄 내용의 형식, 인코딩 방식)-> head 부분 확인
        //response.setContentType("문서형식; charset = 인코딩 방식");
        response.setContentType("text/html; charset = utf-8");
        
        //2. printWriter 객체 생성(response 는 스스로 작성이 불가)
        // 출력 스트림 : response 내부의 내용을 작성하게 도움 
        PrintWriter out = response.getWriter();
        //response 를 이용하여 출력 스트림 연결
        
        //3. 응답 내용 작성-html 태그 영향 받음
        
        out.print("<html>");
        
            out.print("<head></head>");
 
            out.print("<body>");
        
                out.print("<h1>hello</h1>");
        
            out.print("</body>");
        
        out.print("</html>");
        
    }
 
}
cs
-> 'hello' 문자열(h1 적용) 출력 됨


※참고 사항

request : '요청'에 대한 정보를 담고 있는 객체

response : '응답'에 대한 정보를 담고 있는 객체


응답 메시지 작성 과정(간략하게)

response.setContentType("text/html; charset=utf-8"); 

-> 응답 값의 형식 지정 :html 태그 형식 사용, utf-8 형식으로 읽음


PrintWriter out = response.getWriter();

->응답을 위한 출력 객체 생성(별도의 출력 객체 생성이 요구됨)


out.print();

->응답 메시지 작성 시작


댓글