본문 바로가기
JAVA/Spring

[JAVA] Spring 데이터 주고 받기

by soy미니 2021. 9. 16.

 

1. index.jsp 작성하기

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ page import="java.util.*, java.text.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<head>
<title>메인 페이지</title>
</head>
<body>
	<%=new Date()%>
	<h2>Hello World</h2>
	<a href="t1">링크1</a>
	<a href="t2">링크2</a>
	<a href="t3">링크3</a>
	<a href="t4?name=코끼리">링크4</a>
	<a href="t5?name=코끼리&age=24">링크5</a>
	<a href="t6?name=독수리&age=27">링크6</a>
	<a href="t7">링크7</a>
	<a href="t8?name=소나무&age=40">링크8</a>
	<br />
</body>
  • url 파라미터로 데이터 보내기

 

2. Tiger.java 파일 작성

package Pack01;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
class Tiger {
	@RequestMapping("/t1")
	public String method01() {
		System.out.println("함수 콜1"); 
		return null;
	}
	
	@RequestMapping("/t3")
	public String method02() {
		System.out.println("함수 콜2"); 
		return "TigerView";
	}
	
	@ResponseBody
	@RequestMapping("/t2")
	public String method03() {
		System.out.println("함수 콜3"); 
		return "Tiger Call";
	}
	
	
	@RequestMapping("/t4")
	public String method04(
			@RequestParam(value="name") String name) {
		System.out.println("함수 콜4"+name); 
		return "TigerView";
	}
	
    // 데이터를 받는 방법 1
	@RequestMapping("/t5")
	public String method05(
			@RequestParam(value="name") String name,
			@RequestParam(value="age") int age
			) {
		System.out.println("함수 콜5"+name+age); 
		return "TigerView";
	}
	
    // 데이터를 받는 방법 2
	@RequestMapping("/t6")
	public String method06(
			HttpServletRequest request
			) {
		String name = request.getParameter("name");
		String age = request.getParameter("age");
		System.out.println("함수 콜6"+name+age); 
		return "TigerView";
	}

    // 데이터를 보내는 방법
	@RequestMapping("/t7")
	public String method07(Model model) {
		model.addAttribute("name","앵무새");
		model.addAttribute("age",100);
		System.out.println("함수 콜7"); 
		return "TigerView";
	}
}
  • 데이터 받는 방법 : @RequestParam, HttpServletRequest request.getParameter();
  • 데이터 보내는 방법 : Model model.addAttribute();

 

3. TigerView.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>
	<h1>호랑이</h1>
	<h1>${name}</h1>
	<h1>${age}</h1>
    
<%-- 	
    <%
	String name = (String)request.getAttribute("name");
	int age = (int)request.getAttribute("age");
	%>
	
	<%= name %>
	<%= age %> 
--%>
    
</body>
</html>
  • getAttribute 에서 Object로 리턴해주기 때문에 타입 변환을 따로 해줘야 한다.

 

4. 웹 페이지 확인

 


 

번외) Controller 안 거치고 바로 경로 설정하는 방법

  • dispatcher-servlet.xml 에 아래 코드 추가
<mvc:view-controller path="/t11" view-name="DogView" />
  • index.jsp 에 t11 링크 추가
<a href="t11">링크11</a>
  • DogView.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>
	<h1>여기는 강아지</h1>
</body>
</html>
  • 링크11 누르면 Controller 안 거치고 바로 DogView.jsp 로 이동한다.

 

댓글