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+"님 안녕하세요.");
}
}
'Spring' 카테고리의 다른 글
[Spring] 요청 URL 경로 출력하기(feat. Filter) (0) | 2022.07.14 |
---|---|
[Spring] DispatcherServlet 구현하기 (0) | 2022.07.05 |
[Spring] WebDataBinder로 데이터 타입 변환, 검증하기 (0) | 2022.06.22 |
[Spring] 예외 처리( @ExceptionHander, @ResponseStatus) (0) | 2022.06.20 |
[Spring]spring 개발환경 설정하기(windows) (0) | 2022.06.07 |
댓글