03.response

이현주·2023년 9월 17일
0

Servlet

목록 보기
4/10

1.요청 인코딩

request.setCharacterEncoding("UTF-8");

2.요청 파라미터 가져오기

String gender = request.getParameter("gender");
String domain = request.getParameter("domain");
String content = request.getParameter("content");
String region = request.getParameter("region");
    

3.응답 데이터의 타입과 인코딩 설정

응답 (Response)

  1. 서버가 클라이언트에게 데이터를 보내는 것을 의미한다.
  2. HttpServletResponse클래스가 응답을 처리한다.
  3. 응답 데이터의 타입(MINE TYPE)을 결정하고 응답한다.
    1)text/html :태그를 만들어서 반환하는 경우
    2) application/xml :xml을 반환하는 경우
    3) application/json :JSON을 반환하는경우
 response.setContentType("text/html;charset=UTF-8");

4.응답 스트립 생성

IOException 예외처리가 필요하지만 doGet() 메소드는 IOException 처리를 이미 하고 있다.

//(문자 기반 출력 스트림 Writer 생성)
PrintWriter out =response.getWriter();

5.응답하기

    out.println("<!DOCTYPE html>");
    out.println("<html lang=\"ko\">");
    out.println("<head>");
    out.println("<meta charset=\"UTF-8\">");
    out.println("<title>페이지제목</title>");
    out.println("<style>");
    out.println(".wrap {");
    out.println("  background-color: #a0a0a0;");
    out.println("}");
    out.println("</style>");
    out.println("</head>");
    out.println("<body>");
    out.println("<div class=\"wrap\">");
    out.println("<h1>요청 파라미터</h1>");
    out.println("<ul>");
    out.println("<li>성별: " + gender + "</li>");
    out.println("<li>도메인: " + domain + "</li>");
    out.println("<li><pre>" + content + "</pre></li>");
    out.println("<li>지역: " + region + "</li>");
    out.println("</ul>");
    out.println("</div>");
    out.println("</body>");
    out.println("</html>");
    out.flush();
    out.close();
    
  }

[ResponseServlet.java]

package ex03_response;

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 ResponseServlet
 */
@WebServlet("/response")
public class ResponseServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ResponseServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//1.요청 인코딩
		request.setCharacterEncoding("UTF-8");
		
		//2.요청 파라미터
		String gender = request.getParameter("gender");
    String domain = request.getParameter("domain");
    String content = request.getParameter("content");
    String region = request.getParameter("region");
    
    
    /*
     * 응답 (Response)
     * 1. 서버가 클라이언트에게 데이터를 보내는 것을 의미한다.
     * 2. HttpServletResponse클래스가 응답을 처리한다.
     * 3. 응답 데이터의 타입(MINE TYPE)을 결정하고 응답한다.
     * 	1) text/html				:태그를 만들어서 반환하는 경우
     * 	2) application/xml	:xml을 반환하는 경우
     * 	3) application/json :JSON을 반환하는경우
     */
    
    //3.응답 데이터의 타입과 인코딩 설정
    response.setContentType("text/html;charset=UTF-8");
    
    //4. 응답 스트림 생성(문자 기반 출력 스트림 Writer 생성)
    //		IOException 예외처리가 필요하지만 doGet() 메소드는 IOException 처리를 이미 하고 있다.
    PrintWriter out =response.getWriter();
    
    
	
    // 5. 응답하기 (온전한 웹 페이지)
    out.println("<!DOCTYPE html>");
    out.println("<html lang=\"ko\">");
    out.println("<head>");
    out.println("<meta charset=\"UTF-8\">");
    out.println("<title>페이지제목</title>");
    out.println("<style>");
    out.println(".wrap {");
    out.println("  background-color: #a0a0a0;");
    out.println("}");
    out.println("</style>");
    out.println("</head>");
    out.println("<body>");
    out.println("<div class=\"wrap\">");
    out.println("<h1>요청 파라미터</h1>");
    out.println("<ul>");
    out.println("<li>성별: " + gender + "</li>");
    out.println("<li>도메인: " + domain + "</li>");
    out.println("<li><pre>" + content + "</pre></li>");
    out.println("<li>지역: " + region + "</li>");
    out.println("</ul>");
    out.println("</div>");
    out.println("</body>");
    out.println("</html>");
    out.flush();
    out.close();
    
  }

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

[NewFile.html]

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

  <div>
    <form method="post" action="/servlet/response">
      <div>
        <input type="radio" name="gender" value="man" id="man">
        <label for="man">남자</label>
        <input type="radio" name="gender" value="woman" id="woman">
        <label for="woman">여자</label>
        <input type="radio" name="gender" value="none" id="none" checked>
        <label for="none">선택안함</label>
      </div>
      <div>
        <input type="text" list="domain" name="domain">
        <datalist id="domain">
          <option value="naver.com" />
          <option value="kakao.com" />
          <option value="gmail.com" />
        </datalist>
      </div>
      <div>
        <textarea rows="5" cols="50" name="content"></textarea>
      </div>
      <div>
        <input type="hidden" name="region" value="seoul">
        <button type="submit">전송하기</button>
      </div>
    </form>
  </div>

</body>
</html>

티스토리

profile
졸려요

0개의 댓글