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;
}
}
- package sec01.ex01;
- 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 {
}
}
- package sec01.ex01;
- package sec01.ex01;
- MemberDAO
- 서블릿 비즈니스 처리 작업