[SpringWebMVC] - MVC 서블릿, 파라메터 처리, 모델 요청, 리퀘스트로 데이터 전달

정택부·2022년 12월 8일
0

SpringWebMVC1

목록 보기
3/9

1. 컨트롤러 서블릿에서 요청 주소를 체크해서 포워드(request를 유지) 한다.

[HomeController.java]

package controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("*.mvc")
public class HomeController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	// Get요청이 들어오면 여기서 처리된다!!
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 요청한 주소를 가져오기
		String url = request.getRequestURI();
//		System.out.println(url); // 결과 : /ServletMVC/main.mvc

		// View로 사용할 JSP
		String viewName = null;

		// console창에 출력
		if (url.contains("main.mvc")) {
			System.out.println("main 요청");
		} else if (url.contains("test1.mvc")) {
			System.out.println("test1 요청");
		} else if (url.contains("test2.mvc")) {
			System.out.println("test2 요청");
		}
		
		
		if (url.contains("main.mvc")) {
			viewName = "main.jsp";
		} else if (url.contains("test1.mvc")) {
			viewName = "test1.jsp";
		} else if (url.contains("test2.mvc")) {
			viewName = "test2.jsp";
		}

		RequestDispatcher dispatcher = request.getRequestDispatcher(viewName);
		dispatcher.forward(request, response);
	}

}


2. main.jsp 에 파라메타를 추가해서 보내는 a태그 만들기
[main.jsp]

<body>
	<h1>main.mvc</h1>
	<a href="test1.mvc?data1=100&data2=200">test1</a><br/>
	<a href="test2.mvc?data1=100&data2=200">test2</a><br/>
</body>

화면 View



3. 컨트롤러에서 파라메터를 처리하기
[HomeController.java]

		/*기존코드*/
        
		} else if (url.contains("test1.mvc")) {
			// 파라미터 데이터 추출
			String str1 = request.getParameter("data1");
			String str2 = request.getParameter("data2");
			
			// 파라미터 값을 숫자로 변환
			int number1 = Integer.parseInt(str1);
			int number2 = Integer.parseInt(str2);
			
			int result = number1 + number2;
			
			request.setAttribute("result", result); // request객체에 데이터 담기

			viewName = "test1.jsp";
		}
     
        /*기존코드*/

[test1.jsp]

<body>
	<h1>test1.mvc</h1>
	<h3>result : ${result}</h3>
</body>

결과



4. 컨트롤러에서 모델에 파라메터 처리 요청하기


[Test2Service.java]

package model;

import javax.servlet.http.HttpServletRequest;

public class Test2Service {
	
	public static int minus(HttpServletRequest request) {
		// 파라미터 데이터 추출
		String str1 = request.getParameter("data1");
		String str2 = request.getParameter("data2");
		
		//파라미터값을 숫자로 변환
		int number1 = Integer.parseInt(str1);
		int number2 = Integer.parseInt(str2);
		
		int result = number1 - number2;
		
		return result;
	}
}

[HomeController.java]

		} else if (url.contains("test2.mvc")) {
			
			// 모델 요청
			int result = Test2Service.minus(request);
			
			request.setAttribute("result", result);
			
			viewName = "test2.jsp";
		}

[test2.jsp]

<body>
	<h1>test2.mvc</h1>
	<h3>result : ${result}</h3>
</body>

결과

model에 있는 Test2Service.java에 있는 minus(request) 불러와 int값을 result에 넣어 출력하게 했음!!

profile
경험치 쌓는 중

0개의 댓글