학습목표 : 초창기(원시) Servlet 을 통한 동적 웹을 살펴본다.
1. Servlet 정의?
(위키백과 참조-ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%EC%84%9C%EB%B8%94%EB%A6%BF
자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램
혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다.
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 |