본문 바로가기

Programming

(111)
DAY 123. MVC2 패턴 - 게시글 목록, 페이징 게시글 목록 조회 01. board에 관한 .jsp 파일 생성 - webapp > views > board 밑에 생성 - list.jsp(게시글 목록 조회) | update.jsp(게시글 수정) | view.jsp(작성한 글 상세 보기) | write.jsp(게시글 작성) - 목표 1) 파일 업로드, 파일 다운로드 구현 2) 댓글 기능 구현 - 데이터베이스 BOARD TABLE 생성, COMMENT 생성, 시퀀스 생성, PL/SQL 프로시저 (pk, fk 제약조건 참고 하기 2. list.jsp를 위한 서블리 생성 : ListServlet.java - com > kh > mvc > board > controller - URL Mappings : /board/list | doGet 체크 1) 게시글 리스트..
DAY 120. MVC2 패턴 - 회원가입 회원가입 01. EnrollServlet.java - com > kh > mvc > member > controller 밑에 생성 - URL Mappings : /member/enroll | doGet & doPost 생성 - get 요청 : url에 입력하는 doGet 요청으로 오면 jsp 페이지로 forward(URL이 바뀌지 않는다.) - post 요청 : doPost 에는 넘어오는 데이터를 가지고 비즈니스 로직을 등록할 때 사용 02. enroll.jsp - 태그의 action 속성에 url 등록한다. action="${ pageContext.request.contextPath }/member/enroll" method="post" - 아이디 중복 검사는 AJAX로 구현 - 패스워드, 패스워드 확..
DAY 119. MVC2 패턴 - JDBCTemplate JDBCTemplate - 공통적인 부분을 처리하는 영역 - 중복된 코드를 줄일 수 있다. - static import 01. JDBCTemplate.java 1) Connection 객체를 리턴하도록 로직 구현 2) SELECT는 상관없지만, DML문 수행은 자동으로 COMMIT = AUTO COMMIT이 활성화되어있다. 예를 들어, 비즈니스 로직을 구현할 때, 1개 테이블에 INSERT, 2개 테이블에 UPDATE를 하는 하나의 트랜잭션(하나의 논리적인 작업 단위)이 있다면, 각 단계가 끝날 때마다 COMMIT이 된다. 이 때, 만약 마지막 단계에서 에러가 발생해서(UPDATE가 실패해서) ROLLBACK을 해야하는 상황에서는 이미 COMMIT 된 부분은 ROLLBACK 되지 않는다. 즉, 트랜잭션 ..
DAY 118. MVC2 패턴 - 인코딩, 암호화 필터 필터 01. EncryptFilter.java - 어노테이션 @WebFilter(filterName="명시적으로 적어주는 것이 좋다.", servletNames = {"필터가 적용될 서블릿의 이름 나열", "서블릿 이름", ... }) - 서블릿 이름을 지정해서 해당하는 서블릿이 호출되기 전에 필터를 적용한다. 02. EncryptPasswordWrapper.java - 패스워드가 암호화 될 수 있도록 header.jsp 에서 태그에 지정한 패스워드 name 속성명을 조건문에 기입한다.
DAY 117. MVC2 패턴 - 로그아웃 기능 MVC2 패턴을 활용하여 회원가입 페이지를 만들 때 사용했던 구조 하나하나에 대한 기록 작성 로그아웃 01. header.jsp - 로그아웃 buttondp onclick 이벤트를 건다. 로그아웃 - 연습에서는 get 요청이지만 post로 구현해도 된다. 02. LogoutServlet.java - mvc > member > controller 밑에 생성 - 로그아웃 기능을 처리할 서블릿을 만든다. 1) 로그아웃 버튼을 누르면 세션 정보를 삭제한다. - request.getSession(false); - 현재 세션 객체가 있으면 가져오고 없으면 null을 리턴하도록 한다. - false가 없거나 true는 상태에서는 -> 세션 객체가 아예 없으면 새로 만들어서 가져온다. 그러면 로그인 정보를 없애기 위해..
DAY 116. JDBC - JDBC 객체 JDBC(Java DataBase Connectivity) 자바에서 데이터베이스에 접근할 수 있게 해주는 Programming API JDBC 사용 객체 DriverManager Connection Statement Connection 클래스의 createStatement() 메소드를 호출해서 얻을 수 있다. 생성된 Statement 객체로 질의문장을 String 객체에 담아 인자를 전달한다. executeQuery() 메소드를 호출해서 SQL 질의를 수행한다. PreparedStatement Connection 클래스의 preparedStatement() 메소드를 호출해서 얻을 수 있다. 동일한 쿼리를 반복적으로 수행할 때는 성능이 더 좋다. ResultSet SELECT문 사용한 질의 성공시 Resu..
DAY 115. MVC2 패턴 - 로그인 기능 MVC2 https://seongmun-hong.github.io/spring/MVC1-MVC2 MVC1 vs MVC2 Architecture MVC1와 MVC2 1. MVC란 ? Model, View, Controller의 약자로 사용자와 상호작용 하는 S/W를 디자인 함에 있어서 세 가지 요소로 나누는 ... Seongmun-Hong.github.io MODEL 비즈니스 로직을 처리하는 영역 VIEW 사용자에게 보여지는 부분 CONTROLLER 사용자의 요청에 대한 흐름을 제어하는 부분 1. 사용자에게 요청이 들어오면 Servlet로 만든 Controller에서 받는다. (직접 JSP에서 받는 일이 없다.) Controller에서는 MODEL과 VIEW를 연결하고 데이터의 흐름을 제어하는 역할을 한다..
DAY 114. AJAX 1. Ajax Asynchronous JavaScript and XML의 약자로 JavaScript를 이용해서 비동기식으로 클라이언트와 서버가 데이터(XML)를 주고받는 통신 방식이다. XML, Text, HTML, JSON, CSV 등 다양한 형식이 사용 가능하다. 특징 전체 페이지를 갱신하지 않고 일부분만 업데이트가 가능하다. 사용자에게 즉각적인 반응과 풍부한 UI 경험을 제공한다. ActiveX나 플러그인 프로그램 설치 없이 이용 가능하다. JavaScript, jQuery 방식으로 구현이 가능하다. 단점 Ajax는 JavaScript이기 때문에 브라우저에 따라 크로스 브라우저 처리가 필요하다. 오픈 소스이기 때문에 차별화가 어렵다. 연속적인 데이터를 요청할 경우 서버 부하가 증가하고 페이지가 느려..