MVC 구조는 Model, View, Controller로 구성된 구조로 사용 시 웹페이지를 구성하는 요소들끼리의 간섭없이 독립적으로 개발 가능하다. 모델 뷰에 출력할 데이터, 사용자가 입력한 데이터나 출력할 데이터를 다룬다. 데이터의 상태가 변경되면 모델은 뷰나 컨트롤러에 알린다. 뷰 앱이 데이터를 보여주는 방식을 정의한다. 사용자에게 출력할 화면을 만든다(html 생성) 컨트롤러 모델과 뷰 사이에 있는 컴포넌트로 모델이 데이터를 어떻게 처리할지 알려준다(모델과 뷰를 결정해 전달하는 조정자 역할) 모델을 통해 데이터를 가져오고 해당 데이터를 바탕으로 출력을 담당하는 뷰를 제어해 사용자에게 전달한다. MVC2는 MVC1를 보완한 아키텍처로 각각 모듈화되어있어 유지보수가 쉽다.
가상주소가 들어오면 주소 매핑을 하기 위해(실제 주소와 연결) 서블릿을 지정한다. web.xml 서블릿과 매핑에 대한 정보를 입력한다. 여기서 지정한 .me 로 끝나야 서버에 접속이 된다! MemberController com.빨간부분.controller.MemberController MemberController *.me 위에 적은 것과 같이 java 패키지와 파일을 만든다. MemberController.java MemberController는 web.xml에서 지정한 서블릿(처리 담당자) HttpServelet을 상속받아서 서블릿 동작 메서드(doGet(), doPost(), service())를 자동으로 호출하고 재정의한다! doPro()를 만들어 doGet()이나 doPost()에서 호출되게 한..
프로그램 방식(패턴) JSP : insertForm.jsp => insertPro.jsp => loginForm.jsp => loginPro.jsp MVC : Model(디비) , View(화면) , Controller(처리) JSP 중간 : insertForm.jsp => insertPro.jsp ( 디비=> MemberDAO.java insertMember()) => loginForm.jsp => loginPro.jsp ( 디비=> MemberDAO.java userCheck()) MVC : Model(디비) + View(화면) + Controller(처리) JSP MVC(모델2) : insertForm.jsp(화면) => insertPro.java insertPro(디비=> MemberDAO.jav..
게시판의 한 페이지 게시글이 10개씩 보이게 하고 싶다! 한 페이지에 보여줄 포스트 개수 설정한다. int pageSize=10; 페이지 번호 가져온다. (이 부분은 이후에 자세히 설명하고 일단은 이 정도로만) String pageNum=request.getParameter("pageNum"); http://localhost:8080/project/board.jsp : 페이지번호 없는 경우 http://localhost:8080/project/board.jsp?pageNum=2 : 페이지 번호가 2인 경우 위를 참고해 페이지 번호가 null인 경우는 페이지 번호가 1이 되도록 한다. if(pageNum==null){ pageNum="1"; } 페이지 번호를 정수형으로 변경 int currentPage=I..
멤버의 정보를 넣어두는 용도로 memberDTO를 사용한다. package member; import java.sql.Timestamp; public class MemberDTO { // 자바파일 : 데이터를 담아서 전달 // 데이터를 저장할 공간 => 멤버변수 => private => 데이터 은닉 private String id; private String pass; private String name; private Timestamp date; // 데이터 접근 메서드, 값을 저장하는 메서드 set, 값을 가져오는 메서드 get public String getId() { return id; } public void setId(String id) { this.id = id; } public String..
delete delfeForm 아이디는 readonly로 패스워드만 입력되게 한다. 페이지 상관없이 값이 유지 => 세션값 가져오기 String id=(String)session.getAttribute("id"); %> 아이디 : 비밀번호 : DB 서버에 연결하고 SQL 쿼리 입력 후 실행 다음 행으로 이동 후 데이터가 있을 시, 아이디 비밀번호 일치를 묻고 일치하면 삭제한다. 없을 시 일치하지 않다고 출력 후 뒤로 이동 if(rs.next()){ sql="delete from members where id=?"; pstmt=con.prepareStatement(sql); pstmt.setString(1, id); // sql구문을 실행 pstmt.executeUpdate(); // 세션값 초기화 ses..
Insert insert Form 아이디 : 비밀번호 : 이름 : 우선 공통적으로 DB 서버에 연결하고 변수저장 String id=request.getParameter("id"); String pass=request.getParameter("pass"); String name=request.getParameter("name"); // JDBC 프로그램 불러오기 Class.forName("com.mysql.cj.jdbc.Driver"); // JDBC 프로그램으로 DB서버 접속 => 연결정보 저장 String dbUrl="jdbc:mysql://localhost:3306/jspdb1?serverTimezone=UTC"; String dbId="root"; String dbPass="1234"; Connec..
loginForm 로그인 ID : PW : loginPro 연결정보 저장 // 2. DB 서버에 접근할 DB 주소 String dbUrl="jdbc:mysql://localhost:3306/jspdb1?serverTimezone=UTC"; String dbId="root"; String dbPass="1234"; Connection con=DriverManager.getConnection(dbUrl, dbId, dbPass); // 3. 연결정보를 이용해서 sql구문 만들기 => PreparedStatement 내장객체 준비 // String sql="select * from 테이블이름 where 조건열=값 and 조건열=값"; String sql="select * from members where id..