본문 바로가기
Spring

[Spring] HttpServletResquest, HttpServletResponse

by eunoo 2022. 7. 3.

1. HttpServletRequest

브라우저에서 요청을 보내면 서버에선 HttpServletRequest 객체를 생성하고 이를 통해 요청 정보를 얻을 수 있다.

 

-  HttpServeltRequest의 메서드  -

@Controller
Class RequestInfo{
	@RequestMapping("/requestInfo")
    public void main(HttpServletRequest request){
    	//요청 내용의 인코딩
        System.out.println("request.getCharacterEncoding()="+request.getCharacterEncoding());//UTF-8
        // 요청 내용의 길이. 알수 없을 때는 -1
        System.out.println("request.getContentLength()="+request.getContentLength());//-1
        //// 요청 내용의 타입. 알 수 없을 때는 null
        System.out.println("request.getContentType()="+request.getContentType());//null
        
	//요청 메서드
        System.out.println("request.getMethod()="+request.getMethod());//GET
        // 프로토콜의 종류와 버전
        System.out.println("request.getProtocol()="+request.getProtocol());//HTTP/1.1
        //프로토콜
        System.out.println("request.getScheme()="+request.getScheme());//http
        
        //서버 이름 또는 ip주소
        System.out.println("request.getServerName()="+request.getServerName());//localhost
        //포트
        System.out.println("request.getServerPort()="+request.getServerPort());//8080
         //요청 URL
        System.out.println("request.getRequestURL()="+request.getRequestURL());// http://localhost:8080/ch2/requestInfo
         //요청 URI
        System.out.println("request.getRequestURI()="+request.getRequestURI());// /ch2/requestInfo
        
        System.out.println("request.getContextPath()="+request.getContextPath());//  /ch2
        System.out.println("request.getServletPath()="+request.getServletPath());//  /requestInfo
        System.out.println("request.getQueryString()="+request.getQueryString());// name=eun&age=20

		//로컬 이름
        System.out.println("request.getLocalName()="+request.getLocalName());//localhost
        //로컬 포트
        System.out.println("request.getLocalPort()="+request.getLocalPort());//8080
		
        // 원격 ip주소
        System.out.println("request.getRemoteAddr()="+request.getRemoteAddr());
        // 원격 호스트 또는 ip주소
        System.out.println("request.getRemoteHost()="+request.getRemoteHost());
        // 원격 포트
        System.out.println("request.getRemotePort()="+request.getRemotePort());  
        
    
    }
}

추가로 응답 객체는 HttpServletResponse로 얻을 수 있다.

다음은 요청 객체에서 파라미터를 얻고, 응답 객체에게 넘겨주어 화면에 출력하도록 한 코드이다.

package com.hyocoding.ch1;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class Prac {
	@RequestMapping("/prac")
	public void prac(HttpServletRequest request, HttpServletResponse response) throws IOException {
		String name = request.getParameter("name");
		
		//응답 객체의 타입과 인코딩 설정
		response.setContentType("text/html");
		response.setCharacterEncoding("utf-8");

		//response 객체에서 출력 스트림 얻기.
		PrintWriter out = response.getWriter();
		out.println(name+"님 안녕하세요.");
	
	}

}

 

 

댓글