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에 넣어 출력하게 했음!!