쿠릉쿠릉 쾅쾅
쿠릉쿠릉 쾅쾅
쿠릉쿠릉 쾅쾅
250x250
전체 방문자
오늘
어제
  • 분류 전체보기
    • HTML CSS
    • 잡담
    • 프로그래밍 꿀팁 사이트
    • 코딩 도서
    • [자바]
      • 디자인 패턴
      • 자바의 정석 - 3판
      • 자바
      • 자바 문법
    • git
    • [TDD]
    • 개발 서적 독후감
      • 클린 코더
      • 토비 스프링3
      • 객체지향의 사실과 오해
      • 모던 자바 인 액션
      • 엘레강트 오브젝트
    • CS
      • 운영체제
      • HTTP
    • [SQL]
      • SQL 기초
      • 혼자공부하는SQL
    • [ Spring ]
      • REST API
      • Spring Toy
      • Spring 에러
      • Spring
      • Spring 입문
      • Spring 핵심 원리
      • SpringMVC 1편
      • SpringMVC 2편
      • Spring Boot를 이용한 RESTful We..
      • Batch
    • [JPA]
      • JPA
      • JPA 에러
      • JPA 프로그래밍 - 기본편
      • 스프링 부트와 JPA 활용 1 - 웹 애플리케이..
      • 실전! 스프링 부트와 JPA 활용2 - API 개..
      • 실전! 스프링 데이터 JPA
      • 실전! Querydsl
    • 인텔리제이
    • [DB]
      • DB
      • H2
    • Gradle
    • 면접
    • [알고리즘]
      • 알고리즘
      • 자료구조
      • 자바 알고리즘 공부
    • [프로젝트]
    • 쿠릉식 객체지향 사고
    • 리눅스

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자료구조
  • java
  • Git
  • MVC
  • 백준
  • querydsl
  • 스프링
  • Spring
  • springboot
  • 알고리즘
  • http
  • REST API
  • SQL
  • JPA
  • 스프링부트
  • 자바
  • GitHub
  • 함수형인터페이스
  • 깃허브
  • 재귀

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
쿠릉쿠릉 쾅쾅

쿠릉쿠릉 쾅쾅

[ Spring ]/Spring

[Spring] HttpServletRequest 객체

2022. 2. 6. 18:52
728x90

 

 

 

HttpServletRequest

  • 아이디, 비밀번호 등 데이터를 controller에 보내면 HttpServletRequest 객체 안에 데이터가 들어간다.
  • 서블릿에서 보내온 요청에 대해서 정보취득을 위해서 HttpServletRequest 객체를 사용한다.
  • 요청 URL에 대한 정보를 얻기 위해 많이 사용된다.
  • 생명 주기 : 클라이언트가 웹서버 접속 시 생성되고, 응답 메시지를 전송 후 소멸한다.

 

 

🔍 예시

http://127.0.0.1:8080/contextpath/servlcetpath/index.jsp?seq=1&type=NOTICE

 

 

✔ getRequestURL() 메서드

  • 퀴리를 제외한 프로토콜 + 도메인 + 포트번호 + 컨텍스트 경로 + 서블릿 경로를 구할 수 있다.
http://127.0.0.1:8080/contextpath/servlcetpath/index.jsp

 

 

✔ getRequestURI() 메서드

  • 요청 URL 중 포트번호와 쿼리 사이의 부분을 얻어온다.
  • 즉, 컨텍스트 경로 + 서블릿 경로를 얻어온다.
  • 일반적으로 URL과 URI는 동일한 개념으로 사용하지만 여기서는 다른 개념으로 사용된다.
/contextpath/servlcetpath/index.jsp

 

✔ getContextPath() 메서드

  • 컨텍스트경로(context path)를 얻어온다.
/contextpath

 

 

✔ getServletPath() 메서드

  • 서블릿경로(servlet path)를 얻어옵니다.
/servlcetpath/index.jsp

 

 

✔ getQueryString()

  • 쿼리(query)를 얻어온다.
seq=1&type=NOTICE

 

 

✔ getServerName()

  • 도메인(domain)을 얻어온다.
127.0.0.1

 

 

✔ getServerPort()

  • 포트(port)를 얻어온다.
8080

 

 

 

 

Model

  • HttpServletRequest 객체를 통해 데이터를 받아오고, Model 객체를 이용해서 View로 값을 넘긴다.

 

예제

@Controller
public class HomeController{

	@RequestMapping("/admin/login")
    public String login(HttpServletRequest httpServletRequest, Model model){
    	String id = httpServletRequest.getParameter("id");
        model.addAttribute("id", id);
        return "admin/login";
    }
}

 

 

🔍 @RequestParam

  • HttpServletRequest의 getParameter() 메서드 말고 @RequestParam을 이용해서 데이터를 받아올 수 있다.

 

예제

@Controller
public class HomeController{
	@RequestMapping("/admin/login")
    public String login(@RequestParam("id") String id, Model model){}
}
  • name, value : parameter 이름 (둘 중 아무거나 사용해도 된다.)
  • required : 해당 parameter가 필수인지 여부 (기본값은 true)
  • defaultValue : 해당 parameter의 기본값
  • 주의
    • required 값을 true로 해놓고 해당 parameter를 사용하지 않고 요청을 보내면 에러가 발생한다.

 

💡 annotation을 사용하지 않는 방식

@Controller
public class HomeController{
	@RequestMapping("/admin/login")
    public String login(String id){}
}
  • @RequestParam 애노테이션을 사용하지 않고도 데이터를 바로 받을 수 있다.
  • 이 경우 required가 false이고 변수명과 동일한 parameter만 받을 수 있고, defaultValue를 설정할 수 없다.

 

💡 parameter가 많은 경우 → Map 사용할 것

@Controller
public class HomeController{
	@RequestMapping("/admin/login")
    public String login(@RequestParam Map<String, String> params){
    	String data = params.get('testparam');
    }
}

 

 

 


👀 참고자료

  • https://hihoyeho.tistory.com/entry/HttpServletRequest-%ED%95%A8%EC%88%98%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%EC%9A%94%EC%B2%AD-URL-%EC%B7%A8%EB%93%9D
  • https://velog.io/@heeboventure/HttpServletRequest-RequestParam

 

 

728x90

'[ Spring ] > Spring' 카테고리의 다른 글

[Spring] Validator 등록하기 (검증 객체 생성)  (0) 2022.03.17
[Spring] JUnit  (0) 2022.02.14
[Spring] 빈(Bean) 스코프(scope)  (0) 2022.01.31
[Spring] 빈(Bean) 생명주기 콜백 시작  (0) 2022.01.29
[Spring] 조회한 빈(Bean)을 List, Map에 담기  (0) 2022.01.24
    '[ Spring ]/Spring' 카테고리의 다른 글
    • [Spring] Validator 등록하기 (검증 객체 생성)
    • [Spring] JUnit
    • [Spring] 빈(Bean) 스코프(scope)
    • [Spring] 빈(Bean) 생명주기 콜백 시작
    쿠릉쿠릉 쾅쾅
    쿠릉쿠릉 쾅쾅
    깃허브 주소 : https://github.com/kureung

    티스토리툴바