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);
}
}