학습목표 : 초창기(원시) Servlet 을 통한 동적 웹을 살펴본다.
1. Servlet 정의? 
(위키백과 참조-ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%EC%84%9C%EB%B8%94%EB%A6%BF
    자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 
    혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 
자바 서블릿 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 서블릿은 여기로 연결됩니다. 다른 뜻에 대해서는 서블렛 문서를 참조하십시오. 자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서
ko.wikipedia.org
2. ServletJoin.java 
   (이클립스에서 servlet 으로 실행, 입력된 회원정보를 저장하고 화면에 보여줌, 이때 앞에 과정에서 만든 VO, Repository 사용 )
package com.study.model1.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.study.comm.repository.Repository_member;
import com.study.comm.vo.Members;
/**
 * Servlet implementation class ServletJoin
 */
@WebServlet("/model1/servlet/new_member")
public class ServletJoin extends HttpServlet {
	
	private static final long serialVersionUID = 1L;
	
	/* Repository_member 객체를 얻어온다 */
	private Repository_member repository_member = new Repository_member();
    
    public ServletJoin() {
        super();    
    }
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		System.out.println("doGet Start position");		
		
		/* get Request value, jsp 의 request 받는것과 동일하다. */
		String  userName  = request.getParameter("input_name"); 
		int     userAge   = Integer.parseInt(request.getParameter("input_age")); 
		String userMobile = request.getParameter("input_mobile");
		
		System.out.println("request value = "+ userName +"/" + Integer.toString(userAge) + "/" + userMobile);
		
		/* Members 변수는 생성자를 통해 한방에 넣는다. */
		Members members = new Members(userName, userAge, userMobile);
		
		/* 값을 List 에 저장하여 아래에 뿌려줄때 사용 */
		repository_member.setSave(members); 
		
		/* 아래가 바로 초창기 Servlet 의 위엄... */
		response.setContentType("text/html");
		response.setCharacterEncoding("utf-8");
		PrintWriter w = response.getWriter();
		
		w.write("<html>\n" +
		"<head>\n" +
		" <meta charset=\"UTF-8\">\n" +
		"</head>\n" +
		"<body>\n" +
		"NewMember\n" +
		"<ul>\n" +
		" <li>Name   ="+members.getStrName()  +"</li>\n" +
		" <li>Age    ="+members.getIntAge()   +"</li>\n" +
		" <li>Mobile ="+members.getStrMobile()+"</li>\n" +
		"</ul>\n" +
		"<a href=\"/index.html\">Go Home</a>\n" +
		"</body>\n" +
		"</html>");
		
	}
	/**
	 * 모든 처리를 doGet 에서 처리하도록 하기 위해 아래 doPost 에서 받은 request, response 값을 doPost 로 던져준다.
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}
3. ServletList.java
   (이클립스에서 servlet 으로 실행, 입력된 회원정보를 가져온다.이때 앞에 과정에서 만든 VO, Repository 사용 )
package com.study.model1.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.study.comm.repository.Repository_member;
import com.study.comm.vo.Members;
/**
 * Servlet implementation class ServletList
 */
@WebServlet("/model1/servlet/member_list")
public class ServletList extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	/* Repository_member 객체를 얻어온다 , Members 에 있는 값을 가져와야 함. */
	private Repository_member repository_member = new Repository_member();
       
    public ServletList() {
        super();    
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {	
		response.getWriter().append("Served at: ").append(request.getContextPath());
		
		/*
		 *  Member 의 값을 받을 List 생성,, 여러개를 받기 위해 List 객체를 사용
		 *  아래 같은 구문이 솔직히 나에겐 어려움.. 
		 *  이해하자면, Members 객체를 인자로 하는 List 객체는  repository_member 가 갖고 있는 List 를 생성한다.
		 *  */
		List<Members> list = repository_member.getList();
		
		System.out.println("list.size => "+ list.size());
		
		
		/* 아래가 바로 초창기 Servlet 의 위엄... */
		response.setContentType("text/html");
		response.setCharacterEncoding("utf-8");
		PrintWriter w = response.getWriter();
		
		w.write("<html>");
		w.write("<head>");
		w.write(" <meta charset=\"UTF-8\">");
		w.write(" <title>Title</title>");
		w.write("</head>");
		w.write("<body>");
		
		w.write("<table>");
		w.write(" <tr>");		
		w.write(" <th>Name</th>");
		w.write(" <th>Age</th>");
		w.write(" <th>Mobile</th>");
		w.write(" </tr>");		
		
		/* 예전에는 int i=0; i<list.size(); i++ , 이렇게도 사용했지만, 아랫처럼 사용도 가능, 신박함 
		 * lst 에 있는 값을 객체로 반환함. 
		 * */
		for (Members members : list) {
			w.write(" <tr>");
			w.write(" <td>" + members.getStrName() + "</td>");
			w.write(" <td>" + members.getIntAge()+ "</td>");
			w.write(" <td>" + members.getStrMobile() + "</td>");
			w.write(" </tr>");
			}
			
		w.write("</table>");
		w.write("</body>");
	    w.write("</html>");
		
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {	
		doGet(request, response);
	}
}
4. 여기까지 이클립스 프로젝트 구조..

5. Tomcat 을 구동하여, 회원가입, 회원List 실행.
여기까지 성공하면, 다음 단계로...Go Go ~~
'쓰레기통 > [Web MVC 1] 모델1 - 모델2 진행과정' 카테고리의 다른 글
| 7. 원시 Model2, MVC 출현 (2 - view 생성까지) (0) | 2021.05.04 | 
|---|---|
| 7. 원시 Model2, MVC 출현 (1 - view 생성까지) (0) | 2021.04.22 | 
| 4. 선행작업, member 와 repository (0) | 2021.04.22 | 
| 2. 태초에 웹이 있었다 (0) | 2021.04.22 | 
| 1. 준비단계 , 실습방안 (0) | 2021.04.22 |