일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- SQL
- 레노버 아이디어패드 슬림3
- 티모장인
- 레노버 슬림3
- 오라클
- 코딩초보자
- 레노버 노트북
- 탑마이장인
- 가성비 노트북
- 데이터베이스 UPDATE
- 데이터베이스 DELETE
- 데이터베이스 집합연산자
- 개발자준비
- 오라클UPDATE
- 오라클 DELETE
- 자바입문
- 데이터베이스
- 코딩입문
- lenovo ideapad 3
- 데이터베이스 예제
- 자바초보
- 데이터베이스 JOIN
- 데이터베이스기초
- 라이젠노트북
- 슬림3
- 데이터베이스 기초
- 사무용 노트북
- 코딩일기
- IdeaPad 3 15ABA7
- 코린이
- Today
- Total
스퐁지송 개발노트
JSP 스파게티코드 -> MVC1 -> MVC2 본문
index
<body>
<h1>스파게티 코드</h1>
<form method="get" action="spa.jsp">
숫자 : <input type="text" name="num">
<input type="submit" value="전송">
</form>
<h1>mvc 모델1</h1>
<form method="get" action="mvc1.jsp">
숫자 : <input type="text" name="num">
<input type="submit" value="전송">
</form>
<h1>mvc 모델2</h1>
<form method="get" action="mvc2">
숫자 : <input type="text" name="num">
<input type="submit" value="전송">
</form>
</body>
스파게티코드
<body>
<%
int num = Integer.parseInt(request.getParameter("num"));
if(num%2==0){
%>
<h1>짝수입니다.</h1>
<%
}else{
%>
<h1>홀수입니다.</h1>
<%
}
%>
</body>
mvc1
: 하나의 jsp안에 자바코드와 html코드가 있음
controller : 자바파일(서블릿)
veiw : html(jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% /* Controller */
int num = Integer.parseInt(request.getParameter("num"));
String result; //model역할
if(num % 2 == 0){
result = "짝수";
}else{
result = "홀수";
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--View -->
<h1><%=result%></h1>
</body>
</html>
mvc2
: 자바코드는 서블릿(Mvc.java) = controller
html코드는 jsp(mvc2.jsp) = View
result변수 : model
Mvc.java (서블릿) = controller
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int num = Integer.parseInt(request.getParameter("num"));
String result;
if(num % 2==0) {
result = "짝수";
}else {
result = "홀수";
}
//본 서블릿 페이지에서 추가된 result값을 추가해서 보내주는 장치임
request.setAttribute("result", result);
//아래 코드만 하면 안되는 이유 : 이 페이지 전 페이지에서 전달받은 request값을 그대로
//다음 페이지로 보내준다
//값을 지정된 페이지로 전달하는 변수 생성
RequestDispatcher dispatcher = request.getRequestDispatcher("mvc2.jsp");
//forward 내장객체 속성으로 다음페이지로만 값 전달
dispatcher.forward(request, response);
}
jsp(mvc2.jsp) html코드 = View
<body>
<!--전달받은 값 출력 -->
<h1><%=request.getParameter("result")%></h1>
<!--result의 값도 같이 받은 것 -->
<h1><%=request.getAttribute("result")%></h1>
</body>
index.jsp
: 값을 입력하고 요청
num이라는 곳에 무언의 값이 저장되고 요청됨
요청받는 페이지(서블릿)
Mvc.java
index에서 요청한 num값을 사용할 수 있음
전달 받은 num값으로 홀/짝 여부를 판별
그리고 결과를 출력하는 페이지로 판별된 결과값을 보내줘야함
redirect방식 => 단순 페이지 이동 (값 전달 x), 따라서
forward 방식 이용 => 값 전달 가능
dispatcher.forward(request, response); => index에서 요청받은 값만 전달
result를 보내주지 않아서 mvc2.jsp에서 사용못함
따라서,
request.setAttribute("result", result); 를 사용 => request부분에 result값을 추가
dispatcher.forward(request, response); => 추가 후 전달 함(request에 result값 추가됨)
mvc2.jsp는 실제 결과값을 출력하는 페이지
mvc1 : 하나의 jsp안에 자바코드와 html코드가 있음
mvc2 : 자바코드는 서블릿(Mvc.java) = controller
html코드는 jsp(mvc2.jsp) = View
result변수 : model