반응형

Request와 Response 객체의 이해

 

 

 

request와 response

 

WAS는 웹브라우저를 통해 요청(request)을 받으면 요청정보와 응답을 위한 정보를 HttpServletRequest와 HttpServletResponse 객체에 저장하여 해당 서블릿에 전달합니다. 

해당 서블릿은 doGet(), doPost()등과 같은 메서드의 인자로 전달된 HttpServletRequest객체로부터 요청정보를 확인한 후 HttpServletResponse 객체를 활용하여 응답처리를 하게 됩니다. 

 

 

HttpServletRequest

  • 요청 정보를 서블릿에게 전달하기 위한 객체
  • 헤더정보, 파라미터, URL등의 정보를 확인할 수 있는 메서드를 가지고 있음 (ex, getParameter(), getRequestURL())
  • Body의 Stream을 읽어 들이는 메소드를 가지고 있음.

 

HttpServletResponse

  • 요청을 보낸 클라이언트에게 응답 정보를 보내기 위한 객체
  • 해당 서블릿은 HttpServletResponse 객체를 통해 응답정보를 전송함

 

 

 

 

Request와 Response 예제

 

헤더정보, 파라미터, URL등 request에 담긴 정보를 읽어들여 응답하는 예제

 

@WebServlet("/InformServlet")
public class InformServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    
    public InformServlet() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<head></head>");
		out.println("<body>");
		
		// 헤더정보를 확인하는 부분
		Enumeration<String> headerNames = request.getHeaderNames();
		while(headerNames.hasMoreElements()) {
			String headerName = headerNames.nextElement();
			String headerValue = request.getHeader(headerName);
			out.println(headerName + ":" + headerValue + "<br>");
		}
		
		// 파라미터값을 읽어들이는 부분
		String name = request.getParameter("name");
		String age = request.getParameter("age");
		out.println("<br>");
		out.println("name: " + name + "<br>");
		out.println("age: " + age + "<br>");
		
		// 기타 여러가지 정보를 읽어들이는 부분 (uri, url 등)
		String uri = request.getRequestURI();
		StringBuffer url = request.getRequestURL();
		String contentPath = request.getContextPath();
		String remoteAddr = request.getRemoteAddr();
		out.println("<br>");				
		out.println("uri : " + uri + "<br>");
		out.println("url : " + url + "<br>");
		out.println("contentPath : " + contentPath + "<br>");
		out.println("remoteAddr : " + remoteAddr + "<br>");
		
		out.println("</body>");
		out.println("</html>");
	}
}

 

 

1) 요청시 url에 parameter가 없으면 해당 parameter 값이 null로 표시됨

 

 

2) 요청시 url에 parameter 값을 넣어주면 제대로 값이 출력되는것을 확인 할 수 있다. (get방식일 경우)

 

 

 

 

반응형

'IT 개발 > JSP' 카테고리의 다른 글

서블릿 생명주기 (Servlet LifeCycle)  (0) 2021.03.17
Servlet 기초 실습 예제  (0) 2021.03.10
자바 웹 프로젝트 만들기  (0) 2021.03.06

+ Recent posts