JAVA

Servlet 비즈니스 로직 처리

정숙씨의 쏠쏠한 코딩 2021. 7. 27. 23:27
  • 서블릿의 비즈니스 로직 처리 방법
    • 서블릿 비즈니스 처리 작업
      • 서블릿이 클라이언트로부터 요청 작업을 받을시 그 요청에 대해 작업을 수행하는 것을 의미
        • 비즈니스 작업 예
          • 웹 사이트 회원 등록 요청 처리 작업
          • 웹 사이트 로그인 요청 처리 작업
          • 쇼핑몰 상품 주문 처리작업
    • DAO, VO 클래스를 통한 회원 정보 조회 로직
      • MemberDAO
        • package sec01.ex01;

          import java.sql.*;
          import java.util.ArrayList;
          import java.util.List;

          public class MemberDAO {
          private PreparedStatement pstmt;
          private Connection con;

          public List<MemberVO> listMembers()
          {
          List<MemberVO> list = new ArrayList<MemberVO>();

          try
          {
          connDB();
          /*t_member 테이블 조회*/
          String query = "select * from t_member";
          System.out.println(query);
          /*prepareStatement 객체 사용하여 쿼리 조회*/
          pstmt = con.prepareStatement(query);
          ResultSet rs = pstmt.executeQuery();

          while (rs.next())
          {
          /*쿼리 실행 후 조회된 수량 많큼 각 컬럼 데이터를 뽑아옴.*/
          String id = rs.getString("user_id");
          String pwd = rs.getString("pwd");
          String name = rs.getString("name");
          String email = rs.getString("email");
          Date joinDate = rs.getDate("joinDate");

          /*MemberVO Setter에 파라미터로 데이터 전달*/
          MemberVO vo = new MemberVO();
          vo.setUser_id(id);
          vo.setPwd(pwd);
          vo.setName(name);
          vo.setEmail(email);
          vo.setJoinDate(joinDate);
          list.add(vo);
          }
          rs.close();
          }
          catch (Exception e)
          {
          e.printStackTrace();
          }
          finally {
          if(pstmt != null)
          {
          try{
          pstmt.close();
          }catch (Exception ex)
          {
          ex.printStackTrace();
          }
          }
          if (con != null)
          {
          try{
          con.close();
          }catch (Exception ex)
          {
          ex.printStackTrace();
          }
          }
          }
          return list; // 레코드 수량 만큼 List 배열에 retrun
          }

          private void connDB() // maria db 연결 method
          {
          String Driver = "org.mariadb.jdbc.Driver";
          String url = "";
          String user = "";
          String pwd = "";
          try {
          Class.forName(Driver);
          System.out.println("Driver loding complete");
          con = DriverManager.getConnection(url, user, pwd);
          System.out.println("Connection success");
          }catch (Exception e)
          {
          e.printStackTrace();
          }
          }
          }
        • Member VO
          • package sec01.ex01;

            import java.sql.Date;

            public class MemberVO
            {
            private String user_id;
            private String pwd;
            private String name;
            private String email;
            private Date joinDate;
            /*ArrayList 사용 하기 위한 getter setter 생성*/
            public MemberVO()
            {
            System.out.println("MemberVO method call");
            }
            public String getUser_id()
            {
            return user_id;
            }
            public void setUser_id(String user_id)
            {
            this.user_id = user_id;
            }
            public String getPwd()
            {
            return pwd;
            }

            public void setPwd(String pwd) {
            this.pwd = pwd;
            }

            public String getName()
            {
            return name;
            }

            public void setName(String name) {
            this.name = name;
            }
            public String getEmail()
            {
            return email;
            }

            public void setEmail(String email) {
            this.email = email;
            }

            public Date getJoinDate() {
            return joinDate;
            }

            public void setJoinDate(Date joinDate) {
            this.joinDate = joinDate;
            }
            }
        • MemberServlet
          • package sec01.ex01;

            import javax.servlet.*;
            import javax.servlet.http.*;
            import javax.servlet.annotation.*;
            import java.io.IOException;
            import java.io.PrintWriter;
            import java.sql.Date;
            import java.util.List;

            @WebServlet(value = "/member")
            public class MemberServlet extends HttpServlet {
            @Override
            protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            response.setContentType("text/html; charset=utf-8");
            PrintWriter out = response.getWriter();
            MemberDAO dao = new MemberDAO();
            List<MemberVO> list = dao.listMembers();

            out.print("<html><body>");
            out.print("<table border=1><tr align = 'center' bgcolor='ligthgreen'>");
            out.print("<td>아이디</td><td>비밀번호</td><td>이름</td><td>이메일</td><td>가입일</td></tr>");
            /*list 배열 크기 만큼 for문 실행 */
            for(int i =0; i<list.size(); i++)
            {
            MemberVO membervo = list.get(i); //MemberVO에 저장된 데이터를 list 배열 통해 가져옴.
            String id = membervo.getUser_id();
            String pwd = membervo.getPwd();
            String name = membervo.getName();
            String email = membervo.getEmail();
            Date joinDate = membervo.getJoinDate();

            out.print(
            "<tr><td>"
            + id + "</td><td>"
            + pwd + "</td><td>"
            + name + "</td><td>"
            + email + "</td><td>"
            + joinDate
            +"</td></tr>");
            }
            out.print("</table></body></html>");
            }

            @Override
            protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

            }
            }