JAVA WEB 공부 3일차

머리터지기 일보직전·2022년 9월 19일
0

JAVA WEB

목록 보기
3/8

서블릿 비즈니스 로직 처리

  • 서블릿의 비즈니스 처리 작업
    • 서블릿이 클라이언트로부터 요청을 받으면 그 요청에 대해 작업을 수행하는 것
    • 웹 프로그램에서 대부분의 비즈니스 처리작업은 데이터베이스 연동 관련 작업이지만 그 외에 다른 서버와 연동해서 데이터를 얻는 작업도 수행
    • 서블릿의 가장 핵심 기능
  • 서블릿의 비즈니스 처리 작업 예
    • 웹 사이트 회원 등록 요청 처리 작업
    • 웹 사이트 로그인 요청 처리 작업
    • 쇼핑몰 상품 주문 처리 작업
  • 서블릿의 비즈니스 처리 과정
    • 클라이언트로부터 요청을 받는다
    • 데이터베이스 연동과 같은 비즈니스 로직을 처리한다
    • 처리 결과를 클라이언트에게 돌려준다
  • 서블릿 데이터 연동 과정
    • MemberDAO : 데이터베이스에 접속해서 데이터의 추가, 삭제, 수정 등의 작업을 하는 클래스
    • MemberVO
    1. 웹 브라우저가 서블릿에게 회원 정보를 요청
    2. MemberServlet은 요청 받은 후 MemberDAO객체를 생성하여 listMebers()메서드를 호출
    3. listMembers()에서 다시 connDB()메서드를 호출하여 데이터 베이스와 연결한 후 SQL문을 실행해 회원 정보 조회
    4. 조회된 회원 정보를 MemberVO 속성에 설정한 후 다시 ArrayList에 저장
    5. ArrayList를 다시 메서드를 호출한 MemberServlet으로 반환 후 ArrayList의 MemberVo를 차례대로 가져와 회원정보를 HTML 태그의 문자열로 만듬
    6. 만들어진 HTML 태그를 웹 브라우저로 전송해서 회원 정보를 출력

맥북에서 mariadb를 이용해 연동하기

servlet

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='lightgreen'>");
		out.print("<td>id</td><td>password</td><td>name</td><td>email</td>");
		
		for(int i =0; i<list.size();i++) {
			MemberVO memberVO = (MemberVO)list.get(i);
			String id = memberVO.getId();
			String pwd = memberVO.getPwd();
			String name = memberVO.getName();
			String email = memberVO.getEmail();
			
			out.print("<tr><td>" + id + "</td><td> " + pwd + "</td><td>" + name + "</td><td>" + email+ "</td>");
			
		}
		out.print("</table></body></html>");
		
	}
MemberVO

public class MemberVO {
	private String id;
	private String pwd;
	private String name;
	private String email;
	
	public MemberVO() {
		System.out.println("VO 생성자 호출");
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = 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;
	}
MemberDAO

public class MemberDAO {
	private static final String driver = "org.mariadb.jdbc.Driver";
	private static final String url = "jdbc:mariadb://localhost:3306/test";
	private static final String user = "root";
	private static final String pwd = [비밀번호];
	private Connection con;
	private Statement stmt;
	
	public List<MemberVO> listMembers() {
		List<MemberVO> list = new ArrayList<MemberVO>();
		
		try {
			connDB();
			String query = "select * from t_member";
			System.out.println(query);
			ResultSet rs = stmt.executeQuery(query);
			
			while(rs.next()) {
				String id = rs.getString("id");
				String pwd = rs.getString("pwd");
				String name = rs.getString("name");
				String email = rs.getString("email");
				
				MemberVO vo = new MemberVO();
				vo.setId(id);
				vo.setPwd(pwd);
				vo.setName(name);
				vo.setEmail(email);
				list.add(vo);
			}
			
			rs.close();
			stmt.close();
			con.close();
		} catch(Exception e) {
			e.printStackTrace();
			
		}
		
		return list;
	}
	
	private void connDB() {
		try {
			Class.forName(driver);
			System.out.println("maria driver loading good");
			con = DriverManager.getConnection(url,user,pwd);
			System.out.println("connection good");
			stmt=con.createStatement();
			System.out.println("statement good");
		}catch( Exception e) {
			e.printStackTrace();
		}
	}

출력

0개의 댓글