Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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
Tags
more
Archives
Today
Total
관리 메뉴

WON.dev

MemberController.java 본문

JSP/AJAX.2

MemberController.java

GAWON 2023. 6. 23. 10:19
package org.joonzis.controller;

import java.io.IOException;
import java.io.PrintWriter;
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 javax.servlet.http.HttpSession;

import org.joonzis.dto.MemberDTO;
import org.joonzis.service.MemberService;
import org.joonzis.service.MemberServiceImpl;


@WebServlet("/MemberController")
public class MemberController extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public MemberController() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html; charset=utf-8");
		
		String cmd = request.getParameter("cmd");
		
		MemberService service = new MemberServiceImpl();
		List<MemberDTO> list = service.getMemberList();
		
		PrintWriter out = response.getWriter();	// response가 다시 index.jsp로 리턴
		String result = "";
		StringBuffer sb = new StringBuffer();
		
		switch(cmd) {
			case "csv":
				for(MemberDTO dto : list) {
					sb.append(dto.getmIdx() + ",");
					sb.append(dto.getmId() + ",");
					sb.append(dto.getmName() + ",");
					sb.append(dto.getmEmail() + ",");
					sb.append(dto.getmPhone() + ",");
					sb.append(dto.getmAddr() + "/");
				}
				result = sb.toString().substring(0, sb.toString().length()-1);
			break;
			
			case "xmlTag":
				sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
				sb.append("<!DOCTYPE members>");
				sb.append("<members>");
				for(MemberDTO dto : list) {
					sb.append("<member>");
					sb.append("<idx>" + dto.getmIdx() + "</idx>");
					sb.append("<id>" + dto.getmId() + "</id>");
					sb.append("<pw>" + dto.getmPw() + "</pw>");
					sb.append("<name>" + dto.getmName() + "</name>");
					sb.append("<email>" + dto.getmEmail() + "</email>");
					sb.append("<phone>" + dto.getmPhone() + "</phone>");
					sb.append("<addr>" + dto.getmAddr() + "</addr>");
					sb.append("</member>");
				}
				sb.append("</members>");
				result = sb.toString();
				break;
				
			case "xmlProp":
				sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
				sb.append("<!DOCTYPE members>");
				sb.append("<members>");
				for(MemberDTO dto : list) {
					sb.append("<member ");
					sb.append(" idx='"+dto.getmIdx()+"'");
					sb.append(" id='"+dto.getmId()+"'");
					sb.append(" pw='"+dto.getmPw()+"'");
					sb.append(" name='"+dto.getmName()+"'");
					sb.append(" email='"+dto.getmEmail()+"'");
					sb.append(" phone='"+dto.getmPhone()+"'");
					sb.append(" addr='"+dto.getmAddr()+"'");
					sb.append(" />");
				}
				sb.append("</members>");
				result = sb.toString();
				
				break;
				
			case "json":
				// [{"idx":1", "id":"admin"....},{"idx":2", "id":"user01"....},{},{},{}]
				
				sb.append("[");
				for(MemberDTO dto : list) {
					sb.append("{");
					sb.append("\"idx\":" + dto.getmIdx() + ",");
					sb.append("\"id\":\"" + dto.getmId() + "\",");
					sb.append("\"pw\":\"" + dto.getmPw() + "\",");
					sb.append("\"name\":\"" + dto.getmName() + "\",");
					sb.append("\"email\":\"" + dto.getmEmail() + "\",");
					sb.append("\"phone\":\"" + dto.getmPhone() + "\",");
					sb.append("\"addr\":\"" + dto.getmAddr() + "\"");
					sb.append("},");
				}
				result = sb.toString().substring(0, sb.toString().length()-1) + "]";
				System.out.println(result);
				break;
		}
		out.println(result);	// out(response) -> 요청이 들어온 곳으로 result 전송
		
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

'JSP > AJAX.2' 카테고리의 다른 글

sqlmap.xml  (0) 2023.06.23
DBService.java  (0) 2023.06.23
MemberDTO.java  (0) 2023.06.23
MemberDaoImpl.java  (0) 2023.06.23
MemberDao.java  (0) 2023.06.23