본문 바로가기

Servlet&JSP 프로그래밍

(10)
Paging 페이징 구현 [JSP] ## 전제 조건: sql을 이용해서 10(or 5)개씩 데이터를 가져온 값을 리스트에 담고 있다. Controller import com.saltlux.jiphyeonjeon.modelVerification.vo.ModelVO; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import java.util.ArrayList; import java.util.List; @Controller public class ModelVerificationController { private List model..
뉴렉처[Servlet/JSP] 강의 복습 85강~94강 85강 - Index 페이지 추가하기 관리자, 일반 유저가 볼 수 있는 Index 페이지를 추가해보자! 1. 사용자의 ../index 페이지를 요청했을때 받아서 처리할 수 있는 Controller 생성 1) IndexController 클래스 생성 public class IndexController extends HttpServlet { } 2) IndexController에서 doGet 메서드 오버라이딩 @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.getRequestDispatcher("/WEB-INF/vi..
뉴렉처[Servlet/JSP] 강의 복습 75강~84강 75강 - getNoticeList의 JDBC 코드 구현하기 데이터 서비스를 해주는 Service 덕분에 Controller에서의 코드가 간결화 되고, Controller는 사용자의 입력과 출력만 신경 쓰면 된다. 즉, Controller에서 사용자의 요청이 들어왔을때 무엇을 필요로 하는지 캐치하고 해당 Service에 필요로 하는 데이터를 요청해서 받음으로써 데이터를 View로 출력해준다. * 테이블의 속성(field)을 sql문의 값을 세팅하려면 물음표로 세팅할 수 없고 값을 직접 넣어주는 식으로 select * from notice where " + field + " like ? order by regdate desc 으로 해야한다. 왜 물음표를 넣을 수 없나요? ==> 물음표로 값을 넣으면 fie..
뉴렉처[Servlet/JSP] 강의 복습 69강~74강 69강 - 코드 분리를 위한 사전 설명 (기업형으로 레이어를 나누는 이유와 설명) Servlet이라는 단일구조에서 ==> MVC코드 분리 Servlet(컨트롤러 역할): Model(데이터)을 가공해서 View로 전달 .jsp(View 역할): 컨트롤러에게 받은 Model을 화면에 출력해주는 역할 실제적인 기업에서는 웹 페이지를 제작할때 역할을 분담해서 한다. (분업화) Controller : Servlet을 만든다. (ex. 사용자의 요청에 의한 Model을 가공해서 View로 출력) 업무서비스 : 트랜잭션을 만든다. (ex. 계좌이체를 처리하는 트랜잭션) 데이터서비스(DAO) : 실제로 데이터를 조작하는 작업을 한다. 70강 - 서비스 함수 찾아내기 Service Layer에 필요한 함수 기능 중에서 ..
뉴렉처[Servlet/JSP] 강의 복습 58강~68강 58강 - View 페이지 은닉하기 View는 이제 더 이상 사용자가 직접 요청하면 안되는 페이지이다. View는 반드시 Controller를 통해서 실행해야한다.(View에서 실행하는 습관은 X) ==> View 단을 사용자가 직접 요청 할 수 없는 곳에 두는게 바람직하다. 어떻게 하면 직접 요청할 수 없는 곳에 둘 수 있나? WEB-INF 디렉토리는 외부에 서비스 되지 않는 파일들이 들어있다.(설정파일, 라이브러리, 코드파일 등..) ==> 따라서 WEB-INF 디렉토리에 넣어서 View를 관리하면 된다. 59강 - View에서 흐름 제어를 위한 자바 코드 블럭 제거하기 [list.jsp] 파일 내에 자바 코드를 제거 해야한다. ========================= 자바코드 제거 전 ====..
뉴렉처[Servlet/JSP] 강의 복습 51강~57강 51강 - JSP를 이용한 자바 웹 프로그래밍 시작하기 * .html 파일을 복사해서 .jsp 파일로 만들었을때 소스코드에 한글 인코딩 문제가 발생한다. ==> 해결방안: 소스코드 창 클릭 -> alt + enter -> Text file encoding 에 Other 클릭 -> UTF-8로 변경 * 클래스에 필요한 패키지를 import로 어떻게 가져오는가? ex. 52강 - JDBC를 이용해 글 목록 구현하기 [list.jsp] - notice 폴더 내에 존재 ※ 웹 개발 시 OracleDriver(ojdbc)를 추가할때 주의사항!!!! Build path로만 설정하지 않고, Tomcat서버로 넘어갈때 ojdbc라이브러리가 같이 배포될 수 있도록 WEB-INF 안에 lib 폴더에 ojdbc를 포장시켜야..
뉴렉처[Servlet/JSP] 강의 복습 34강~50강 34강 - 동적인 페이지(서버 페이지)의 필요성 동적인 문서를 만들기 위해서 redirect할때 처음 요청했을떄 누적한 데이터(쿠키)를 포함한 Servlet을 클라이언트에게 보여준다. 35강 - 처음이자 마지막으로 동적인 페이지 서블릿으로 직접 만들기 서블릿으로 동적인 페이지를 만들려면 모든 코드에 out.write(""); 를 추가해주어야하는 엄청난 수고가 발생한다. 따라서 앞으로 동적인 페이지를 서블릿으로 만들지 않고 JSP로 동적인 페이지를 만든다. 36강 - 계산기 서블릿 완성하기 37강 - 쿠키 삭제하기 Cookie expCookie = new Cookie("exp", exp); //exp(식)을 저장하는 쿠키생성 * 쿠키 삭제: expCookie.setMaxAge(0); 38강 - GET/PO..
뉴렉처[Servlet/JSP] 강의 복습 28강~33강 웹 서버는 어떻게 각각의 다른 사용자들을 구분할까? 28강 - 웹 서버가 현재 사용자(Session)을 구분하는 방식 1) 처음으로 사용자의 요청이 왔을때 Servlet의 SID(Session ID)가 없다. (저장할 수 있는 회원번호가 없다고 생각하면 된다.) 2) SID가 없기떄문에 Session 저장소는 사용하지 못하고 Application 저장소만 사용가능하다. 3)처음 요청을 응답했을때 SID가 부여되고 응답한다.(저장할 수 있는 회원번호가 생겨서 앞으로 그 번호에 저장할 수 있다.) 4) 두번째로 사용자가 요청시 SID를 동반해서 요청이들어온다. 5) 두번째 요청때는 SID가 있기 떄문에 Session 저장소에 저장할 수 있게 된다. 6) 브라우저를 닫으면 SID는 소멸되고 Session 저장..