쓰레기통/[Web MVC 1] 모델1 - 모델2 진행과정

6. Jsp (동적웹을 좀더 쉽게)

고인돌개발자 2021. 5. 4. 22:07

학습목표 : Jsp 가 어떻게 Servlet 을 대체했는지 살펴봅니다..
               (아마 저처럼 고인물들에게는 잠시 쉬어가는 타임..)

 

* 초창기 Servlet 의 개념은 앞 시간에 보았듯이, java 프로그램 안에 html 을 넣는 방식이었다면, 

  Jsp 는 이와는 반대로  html 안에 java 프로그램를 넣은 개념으로 이해하면 쉬울듯..

 (물론, 이게 다는 아이지만, 이해하기는 편합니다.)

 

1. index.html 변경 (jsp 테스트를 위해 추가)

<table>
	<tr><th>Model1 - Servlet</th></tr>
	<tr><td> - <a href="/join.html">회원가입</a></td></tr>
	<tr><td> - <a href="/model1/servlet/member_list">회원List</a></td></tr>
</table>

<!-- 아래 부분 추가 -->
<table>
	<tr><th>Model1 - Jsp</th></tr>
	<tr><td> - <a href="/jsp/join.html">회원가입</a></td></tr>
	<tr><td> - <a href="/jsp/member_list.jsp">회원List</a></td></tr>
</table>

2. WebContent 에 jsp 폴더를 만들고 아래 3개의 파일을 생성합니다.

<jsp 위치 추가>

 

3. jsp > join.html 작성 (기존 join.html 에서 action 부분만 아래와 같이 수정)

<!--  값을 입력하기 귀찮아서 그냥 value 에 입력 -->
<form action="/jsp/member_regist.jsp" method="post">
	username : <input type="text" name="input_name" value="Kim" />
		 age : <input type="text" name="input_age" value="30" />
  	  Mobile : <input type="text" name="input_mobile" value="010-1234-5678" />	 
<button type="submit">전송</button>
</form>

 

4. member_regist.jsp (회원저장 jsp) , VO, Repository 는 사용하지 않음

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>

<%

/* 생각해보니  신기하게도 jsp 는 그 자체로 , HttpServlet 을 상속받나 봐요.. */

String  userName  = request.getParameter("input_name"); 
int     userAge   = Integer.parseInt(request.getParameter("input_age")); 
String userMobile = request.getParameter("input_mobile");


%>

<html>
<head>
<meta charset="UTF-8">
<title>새로운 회원을 맞이하세</title>
</head>
<body>

환영합니다. <p>

이름 : <%=userName %><br>
나이 : <%=userName %><br>
모바일 : <%=userMobile %>

</body>
</html>

5. member_list.jsp (Jsp 에서도 서블릿과 동일한 내용으로 처리 가능)

<%@page import="com.study.comm.vo.Members"%>
<%@page import="com.study.comm.repository.Repository_member"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ page import="com.study.comm.*, java.util.*" %>
        
<!DOCTYPE html>

<%

	/* Repository_member 객체를 얻어온다 , Members 에 있는 값을 가져와야 함. */
	Repository_member repository_member = new Repository_member();
	
	// 리스트에 멤버변수를 담는다.
	List<Members> list = repository_member.getList();


%>

<html>
<head>
<meta charset="UTF-8">
<title>새로운 회원을 맞이하세</title>
</head>
<body>
<a href="/index.html">[Go Home]</a>
<p>
환영합니다. <p>
<table>
		 <tr>		
		 <th>Name</th>
		 <th>Age</th>
		 <th>Mobile</th>
		 </tr>	
<%  for (Members members : list) { %>
		<tr>
		<td><%=members.getStrName() %></td>
		<td><%=members.getIntAge() %></td>
		<td><%=members.getStrMobile() %></td>
		</tr>
<% } %>
</table>

</body>
</html>

 

마치며..

여기 과정은 실상 내 개인적으로는 아직도 여전히 모델1에 머물러 있는 고인물인 내가 주로 사용하는 방식임.

jsp 로 front, back 을 다 하는게 복잡하긴 하지만, 난 여전히 여기가 익숙하네요..