[Spring] 컨트롤러에 데이터를 보내서 처리하는 방법

2023. 2. 15. 11:58·Backend/Spring
728x90
  1. HttpServletRequest사용
  2. @RequestParam
  3. 커맨드객체를 이용해서 많은 데이터를 처리
  4. @PathVariable 사용

HttpServletRequest사용

- url : http://localhost/test01/board/confirmId?id=abcd&pw=1234

- get으로 보낸 값을 request를 이용하여 받아서 model로 뷰에 보내줌

 

- confirmId.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
ID : ${id} <br/>
PW : ${pw}
</body>
</html>

- HomeController.java 추가

@RequestMapping("/board/confirmId") // 요청경로
	public String confirmId(HttpServletRequest httpServletRequest ,Model model) {
		// httpServletRequest : 요청을 받을 때 사용
		// model : 뷰페이지로 넘길 때 사용
		
		String id = httpServletRequest.getParameter("id");
		String pw = httpServletRequest.getParameter("pw");
		model.addAttribute("id", id);
		model.addAttribute("pw", pw);
		
		return "board/confirmId"; // 뷰페이지 이동
	}


@RequestParam 사용

 

- checkId.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
ID : ${identify} <br/>
PW : ${password}
</body>
</html>

 

- HomeController.java 추가

@RequestMapping("/board/checkId") // 요청경로	
	public String checkId(@RequestParam("id") String id, @RequestParam("pw") String pw, Model model) {
		model.addAttribute("identify", id);
		model.addAttribute("password", pw);
		return "board/checkId"; // 뷰페이지 이동
	}

 

HttpServletRequest는 get으로 값 넘기지 않을때는 값 없이 출력이 되지만

@RequestParam 같은 경우는 오류 발생

 

커맨드객체를 이용해서 많은 데이터를 처리

- join.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
이름 : ${member.name} <br/>
아이디 : ${member.id} <br/>
비밀번호 : ${member.pw} <br/>
메일 : ${member.email} <br/>
</body>
</html>

- Member.class

package com.all.test.member;

public class Member {
	private String name;
	private String id;
	private String pw;
	private String email;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPw() {
		return pw;
	}
	public void setPw(String pw) {
		this.pw = pw;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	

}

@PathVariable 사용

url경로에 값을 넣는 방식 → get방식을 쓰지 않고 경로처럼 값을 넣음

- studentView.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
student : ${studentId} <br/>

</body>
</html>

- HomeController.java 추가

// @PathVariable 사용
	@RequestMapping("/student/{studentId}") // 요청경로	
	public String studentView(@PathVariable String studentId, Model model) { // 커맨드 객체를 매개변수로 줌
		model.addAttribute("studentId", studentId);
		return "student/studentView";
	}

위 코드를 아래로 줄일 수 있음 (결과 동일)

@RequestMapping("/member/join") // 요청경로	
	public String join(Member member) { // 커맨드 객체를 매개변수로 줌
		return "member/join";
	}

728x90

'Backend > Spring' 카테고리의 다른 글

[Spring] MVC 게시판(1) DB 생성 및 연결  (0) 2023.02.17
[Spring] 서버측에서 유효성 검사  (0) 2023.02.17
[Spring] 다운로드부터 프로젝트 생성까지 (이클립스 2021-09, jdk11)  (0) 2023.02.13
[스프링] 필요한 Project Dependencies 추가  (0) 2022.01.27
[Spring] Web server failed to start. Port 8080 was already in use  (0) 2022.01.27
'Backend/Spring' 카테고리의 다른 글
  • [Spring] MVC 게시판(1) DB 생성 및 연결
  • [Spring] 서버측에서 유효성 검사
  • [Spring] 다운로드부터 프로젝트 생성까지 (이클립스 2021-09, jdk11)
  • [스프링] 필요한 Project Dependencies 추가
min_sol
min_sol
  • min_sol
    비글개발연구소🐾
    min_sol
  • 전체
    오늘
    어제
    • 분류 전체보기 (291)
      • Programming (132)
        • Algorithm (56)
        • JAVA (40)
        • GIS (5)
        • PyQt (10)
        • C# (11)
        • Mobile (6)
        • AI (4)
      • Backend (41)
        • Spring (19)
        • JSP (11)
        • Network (5)
      • Frontend (30)
        • Nexacro (1)
        • React (11)
        • Vue (13)
        • Next.js (4)
      • Database (11)
        • PostgreSQL (1)
        • Oracle (8)
        • Elasticsearch (1)
      • DevOps (10)
        • Linux (7)
        • Mac (1)
        • AWS (1)
      • Tools (32)
        • IntelliJ (1)
        • VSCode (1)
        • GitHub (10)
        • RPA (20)
      • Security (9)
      • etc (22)
        • ERROR (5)
        • 세미나 | 교육 (11)
        • 자격증 (1)
        • 일상 (2)
        • 2021 (2)
  • 인기 글

  • 태그

    vue.js
    PyQt
    Java
    spring
    명품자바에센셜
    알고리즘
    생능출판
    jsp
    계산기
    자동화
    VUE
    백준
    RPA
    자바
    이클립스
    연습문제
    스윙
    자료구조
    코딩테스트
    PyQt5
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
min_sol
[Spring] 컨트롤러에 데이터를 보내서 처리하는 방법
상단으로

티스토리툴바