member(servlet, service, dao, vo, xml, jsp)

조수경·2021년 12월 3일

HTML

목록 보기
95/96

MemberServlet

package kr.or.ddit.member.controller;

import java.io.IOException;
import java.util.List;

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;

import kr.or.ddit.member.service.IMemberService;
import kr.or.ddit.member.service.MemberServiceImpl;
import kr.or.ddit.member.vo.MemberVO;

/**
 * Servlet implementation class MemberServlet
 */
@WebServlet("/MemberServlet")
public class MemberServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public MemberServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//0. 클라이언트 요청시 전송되는 데이터를 받는다
		  
		  //1. service 객체를 얻는다
		IMemberService service =
				MemberServiceImpl.getMemberService();	
				
		  //2.  service 메소드 호출 - 결과 : List<MemberVO>
		List<MemberVO> list = service.selectAll();  
		
		
		  //3.수행결과를 request에 저장
		request.setAttribute("sdfsdf", list);
		
		  //4. jsp.viewpage에 위임하여 출력한다 - jsonobject 배열로 응답 데이터를 생성한다
		  //jsp로 forward
	    RequestDispatcher disp = request.getRequestDispatcher("1201/member.jsp");
	    disp.forward(request, response);
	    
	    
	    
	}

}

IMemberDao

package kr.or.ddit.member.dao;

import java.util.List;
import kr.or.ddit.member.vo.MemberVO;

public interface IMemberDao {
   
   //메서드 선언 
   public List<MemberVO> selectAll();
}

MemberDaoImpl

package kr.or.ddit.member.dao;

import java.sql.SQLException;
import java.util.List;

import com.ibatis.sqlmap.client.SqlMapClient;

import kr.or.ddit.ibatis.config.SqlMapClientFactory;
import kr.or.ddit.member.vo.MemberVO;

//mapper수행 - SqlMapClient객체 필요
//자신의 객체를 생성하고 리턴하는 메서드
public class MemberDaoImpl implements IMemberDao{

   private SqlMapClient smc;
   private static IMemberDao dao;
   
   private MemberDaoImpl() {
      smc= SqlMapClientFactory.getSqlMapClient();
   }

   public static IMemberDao getMemberDao() {
      if(dao==null) dao = new MemberDaoImpl();
      return dao;
   }
   
   @Override
   public List<MemberVO> selectAll() {
      List<MemberVO> list = null;
      
      try {
         list = smc.queryForList("mymember.getAllMember");
      } catch (SQLException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
      
      return list;
   }



}

IMemberService

package kr.or.ddit.member.service;

import java.util.List;

import kr.or.ddit.member.vo.MemberVO;

public interface IMemberService {

	//메소드 선언
	public List<MemberVO> selectAll();
	
	
}

MemberServiceImpl

package kr.or.ddit.member.service;

import java.util.List;

import kr.or.ddit.member.dao.IMemberDao;
import kr.or.ddit.member.dao.MemberDaoImpl;
import kr.or.ddit.member.vo.MemberVO;

public class MemberServiceImpl implements IMemberService{

	private IMemberDao dao;
	private static IMemberService service;
	
	private MemberServiceImpl(){
		dao = MemberDaoImpl.getMemberDao();
	}
	
	public static IMemberService getMemberService() {
		if(service==null)service = new MemberServiceImpl();
		
		return service;
		
	}
	
	public List<MemberVO> selectAll(){
		List<MemberVO> list = null;
		list = dao.selectAll();
		return list;
		
		//return dao.selectAll();
	}
	
	
}

MemberVO

package kr.or.ddit.member.vo;


/*
 * DB테이블에 있는 각 컬럼들을 기준으로 데이터를 객체화할 클래스이다.
 * 
 * DB테이블의 '컬럼명'이 이 VO클래스의 '멤버변수'가 된다.
 * 
 * DB테이블의 컬럼과 클래스의 멤버변수를 매핑해서 사용한다.(서로 맞춰 데이터를 넣어줌)
 * 
 */


public class MemberVO {
	 private String mem_id;
	 private String mem_name;
	 private String mem_pass;
	 private String mem_tel;
	 private String mem_addr;
	 
	 //VO클래스에 별도의 생성자를 만들었을 때는 반드시
	 // 기본 생성자도 같이 만들어야 한다.
	 

	
	public void setMem_id(String mem_id) {
		this.mem_id = mem_id;
	}
	
	public String getMem_id() {
		return mem_id;
	}

	public String getMem_name() {
		return mem_name;
	}
	public void setMem_name(String mem_name) {
		this.mem_name = mem_name;
	}
	public String getMem_pass() {
		return mem_pass;
	}
	public void setMem_pass(String mem_pass) {
		this.mem_pass = mem_pass;
	}
	public String getMem_tel() {
		return mem_tel;
	}
	public void setMem_tel(String mem_tel) {
		this.mem_tel = mem_tel;
	}
	public String getMem_addr() {
		return mem_addr;
	}
	public void setMem_addr(String mem_addr) {
		this.mem_addr = mem_addr;
	}
	 
	 
}

member.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel = "stylesheet" href = "../css/mystyle.css" type="text/css">
<script src="../js/jquery-3.6.0.min.js"></script>
<style>
  td{
  width: 150px;
  height: 50px; 
  text-align : center;
  }
  
  #addr{
   width : 250px;
  }
  
</style>
<script>
 $(function(){ 
	
	 $('#member').on('click', function(){
		 
		 $.ajax({
			 url : '/jqpro/MemberServlet',
			 type : 'get',
			 success : function(res){
				 
				    str = "<table border='1'>";
					str += "<tr class='title'><td>아이디</td>";
					str += "<td>이름</td>";
					str += "<td id='addr'>주소</td>";
					str += "<td>전화번호</td></tr>";
				 $.each(res, function(i, v){
					    str += "<tr><td>" + v.id + "</td>";
						str += "<td>" + v.name + "</td>";
						str += "<td>" + v.addr + "</td>";
						str += "<td>" + v.tel + "</td></tr>";
					 
				 })
				    str += "</table>";
					
					$('#result1').html(str);
					$('.title').css('background', 'lightgreen');
			 },
			 error : function(xhr){
				 alert("상태 : " + xhr.status);
				 //500(콘솔에러), 404(url이름에러), 200(제이슨형식이잘못된것)
			 },
			 dataType : 'json'
			 
		 })
	 })
	 $('#lprod').on('click', function(){
		 
		 $.ajax({
			 url : '/jqpro/LprodServlet',
			 type : 'get',
			 success : function(res){
				 
				    str = "<table border='1'>";
					str += "<tr class='title'><td>아이디</td>";
					str += "<td>gu</td>";
					str += "<td>nm</td></tr>";
				 $.each(res, function(i,v){
					    str += "<tr><td>" + v.id + "</td>";
						str += "<td>" + v.gu + "</td>";
						str += "<td>" + v.nm + "</td></tr>";
					 
				 })
				    str += "</table>";
					
					$('#result2').html(str);
					$('.title').css('background', 'lightgreen');
			 },
			 error : function(xhr){
				 alert("상태 : " + xhr.status);
				 //500(콘솔에러), 404(url이름에러), 200(제이슨형식이잘못된것)
			 },
			 dataType : 'json'
			 
		 })
	 })
 })
</script>

</head>
<body>

<div class = "box">

   <br>
  <button id = "member" type = "button">MemberList</button>
  <div id = "result1"></div>
</div>

<div class = "box">

   <br>
  <button id = "lprod" type = "button">LprodList</button>
  <div id = "result2"></div>
</div>

</body>
</html>

member.jsp

<%@page import="kr.or.ddit.member.vo.MemberVO"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>


<%
//서블릿에서 저장된 결과데이터 가져오기
 List<MemberVO> list = (List<MemberVO>)request.getAttribute("sdfsdf");

%>

[
  <% 
   for(int i=0; i<list.size(); i++){
	   MemberVO vo = list.get(i);
	   if(i>0) out.print(",");
	
	   %>
	   
	   {
	     "id" : "<%= vo.getMem_id() %>",
	     "name" : "<%= vo.getMem_name() %>",
	     "addr" : "<%= vo.getMem_addr() %>",
	     "tel" : "<%= vo.getMem_tel() %>"
	   }
	   
	   <%
   }
  %>

]
profile
신입 개발자 입니다!!!

0개의 댓글