[WEB]

[JSP/Servlet] Servlet Request, Response(HttpServlet) 개념/예제

ddgoori 2020. 6. 7. 17:02

[JSP/Servlet]  Servlet Request,  Response

사용자의 요청(Request)과 Web-Server의 응답(Response을 담당하는 객체에 대해 학습

 

사용자: Request(요청)를 난리고

웹서버: Response(응답)을 한다.

 

데이터를 주고, 데이터를 받기 원하는 과정이 요청임

자바는 요청도 객체로 만들어서 전달됨 이때 이 객체를 Request 객체라고 한다.

 

서버에서는 데이터에 부합하게 가공해서 사용자에게 적절하게 응답함

이러한 응답을 Response라고하고, 이를 적절하게 만든 것을 Reponse 객체라고 한다.

 

 

HttpServlet 

- 추상 클래스라고 함

- 많은 기능을 구현하기 위해 위에 인터페이스, 클래스 등 다 만들어 놓음

- 그래서 개발자는 HttpServlet만 상속받으면 많은 기능을 사용할 수가 있다.

 

예제)

 

1. 프로젝트 만들기 - Dynamic ~~~~~

2. Servlet은 SRC 폴더에 만듬

dp

3. Servlet 만들어주기

 

 

 

4. Servlet 만들 때, URL Mapping 이름 정해주기 

 

5. 서블릿으로 만들었기 때문에 웹서버와 통신하기 위해서 가장 중요한 HttpServlet을 자동적으로 상속해준다.

아래와 같이 서블릿 소스코드가 만들어진다.

내가 만들어준 클래스가 웹컨테이너에서 서브릿으로의 역할을 할 수 있게 됨!

 

package com.servlet;

import java.io.IOException;
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 TestServletClass
 */
@WebServlet("/tsc")
public class TestServletClass extends HttpServlet {
	private static final long serialVersionUID = 1L;
       

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

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

}

 

 

HttpServletRequest

- 사용자가 서버쪽으로 데이터를 요청할 때, 요청에 대한 기능과 속성들을 가지고 있는 객체다!

 

- 사용자의 요청에 의해서 응답을 하는 메소드들임

- 파라미터 2개를 가지고 있는데, 이게 요청과 응답에 대한 객체임

 

요청방식이 GET 방식일 때

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

 

요청방식이 POST 방식일 때

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

 

- 사용자가 어떤 것을 요청했는지 알아 볼때는 아래와 같이 Request. 을 통해 메소드를 이용하여 알아볼 수 있음

 

반대로 response도 그런식으로 .으로 알아볼 수 있음

- 사용자한테 응답해주는 작업을 할 때는 response객체를 이용하면 된다.

 

 

- HttpServeletRequest 대표 메소드들은 아래와 같다. 

//요청에 대한 정보를 가지고 있는 객체

request.getCookies();
//쿠키정보 얻기

request.getSession();
//세션 정보 가져오기

request.getAttribute(null);
//레퀴스트이 속성 값 가져오기

request.setAttribute(null, null);
//속성 값을 추가할 수 있음

request.getParameter(null);

request.getParameterNames();

request.getParameterValues(null);
//로그인이나 회원가입 같이 폼에다가 어떠한 양식에 데이터를 입력하고 submit버튼 누르면 입력됨
//각 폼에 대한 이름이 있음, 거기에 대한 파라미터 이름과 값을 가져올 때 필요함


 

 

HttpServletResponse

- 요청은 사용자가 웹 어플리케이션에 뭔가 요청을 할 때 생기는 객체로서, 사용자가 입력한 속성들을 이용가능한데

- 응답은 반대임! 서버에서 만든 데이터를 사용자에게 넘겨줄 때 사용하는 객체가 response임

- 데이터를 처음에 전달하는 쪽이 Request (사용자가 무조건 주고, 서블릿은 받는 것)

-Response는 사용자가 응답을 하는 것. 응답에 관한 객체