본문 바로가기

서버/Servlet-JSP
(22)
[Servlet-JSP] Ajax와의 통신 // Ajax, Asynchronous JavaScript and XML - 비동기 자바스크립트 & XML - 비동기 자바스크립트 통신 > 일의 순서를 예측하기 어렵다. - 브라우저 웹서버(톰캣) - 자바스크립트 웹서버(톰캣) // Ajax 구현 1. 순수 자바스크립트 버전 > 현재는 잘 안 씀 - 서버에 데이터를 보내는 방식 a. GET > QueryString ~ ajax.open('GET', 'uri?name=value'); ~ ajax.send(); b. POST > send할 때 데이터 넣어 전송 ~ ajax.open('POST', 'uri'); ~ ajax.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); ~ ajax..
[Servlet-JSP] Reload // Reload - 실시간으로 데이터가 업데이트 되게 하기 위해서는, 새로고침을 해주어야 한다. - 새로고침을 했을 때 특정 데이터 외에 다른 데이터도 함께 새로고침되는 것을 방지하기 위해 안쪽 문서와 바깥쪽 문서를 나누어 작업한다. - 바깥쪽 문서에 틀(태그)을 만들고, 안쪽 문서에서 해당 태그를 조작하고 일정 시간 간격으로 새로고침 설정을 한다. 이때 안쪽 문서를 display:none으로 설정하면 사용자는 문서 하나에서 특정 데이터만 일정 시간 간격으로 업데이트 되는 것처럼 보인다. package com.test.ajax; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletEx..
MVC, JSP model // MVC ( Model , View, Controller) - Model > 하나의 계층에서 또다른 계층으로 데이터를 전달하는 역할 > 데이터(데이터 관련 업무-자바) 담당 - View > 출력 업무 담당(HTML 코드-JSP) - Controller > 입력과 제어 담당(자바 코드) > 전체 업무 통제 역할 1. JSP Model 1 2. JSP Model 2 // Model1 - HTML + CSS +JavaScript + Java + Servlet + JSP = *.jsp - + client code - 코드가 뒤엉켜서 불편 입니다. // Model 2 - 컨트롤러와 뷰가 물리적으로 분리된 방식 - Servlet: 자바 코드 작성 - JSP: 클라이언트 코드 작성 - 디자인 패턴: MVC 패턴 ..
[Servlet-JSP] 포워딩(Forwarding) // 포워딩, Forwarding 1. RequestDispatcher 클래스 - 서블릿 또는 jsp에서 요청을 받은 후 다른 컴포넌트로 요청을 위임할 수 있다. - Request Dispatcher, HttpServletResponse 클래스를 이용한다 - 요청받은 요청 객체(request)를 위임하는 컴포넌트에 동일하게 전달할 수 있다. RequestDispatcher dispatcher = request.getRequestDispatcher("위임할 파일 주소"); dispatcher.forward(reqeust, response); 2. HttpServletResponse 클래스 - RequestDispatcher 클래스와 동일하게 요청을 위임하는 클래스 - 요청 받은 요청 객체를 위임 받은 컴포..
[Servlet-JSP] URL 패턴, FrontController 패턴, Command 패턴 // URL 패턴 1. 디렉터리 패턴(서블릿 매핑) - 디렉터리 형태로 서버의 해당 컴포넌트를 찾아서 실행하는 구조 ~ http://localhost:8080/jsp_pattern/Pattern > /Pattern 서블릿 2. 확장자 패턴 - 확장자 형태로 서버의 해당 컴포넌트를 찾아서 실행하는 구조 ~ http://localhost:8080/jsp_pattern/Pattern/pattern.do > *.do 서블릿 // FrontController 패턴 - 클라이언트의 다양한 요청을 한 곳으로 집중시켜 개발 및 유지보수 효율성을 극대화해준다. insert update select delete package com.jsp.pattern; import java.io.IOException; import ja..
[Servlet-JSP] EL(Expression Language) // EL(Expression Language) - 저장 객체에서 값을 추출해서 출력하는 표현식 - 표현식 또는 액션 태그를 대신해서 값을 표현하는 언어 Controller View request.setAttribute("cnt", 30) → ${cnt} List list = new ArrayList(){"1", "test"}; request.setAttribute("list", list); → ${list[0]} Map n = new HashMap("title", "제목") request.setAttribute("n", n); → ${n.title} package com.sorrel012.web; import java.io.IOException; import java.util.HashMap; impor..
[Servlet-JSP] 파일 업로드, 다운로드 //파일 조작 - 파일 업로드/다운로드를 위해서는 cos jar파일이 필요하다. (https://mvnrepository.com) - 태그에 enctype 속성을 추가해야 한다. enctype="multipart/form-data" - 업로드 주요 코드 String path = request.getRealPath("fileFolder"); int size = 1024 * 1024 * 100; String filename =""; String orgfilename = ""; MultipartRequest multi = new MultipartRequest(request, path, size, "UTF-8", new DefaultFileRenamePolicy()); Enumeration e = multi.g..
[Servlet-JSP] DAO, DTO, lombok // DAO vs DTO 1. DAO, Data Access Object - 데이터베이스에 접속해서 데이터 추가, 삭제, 수정 등의 작업을 하는 클래스 - 유지보수 및 코드의 모듈화를 위해 별도의 DAO 클래스를 만들어 사용한다. 2. DTO, Data Transfer Object - DAO 클래스를 이용하여 데이터베이스에서 데이터를 관리할 때 DTO 클래스를 만들어 데이터를 일반적인 변수에 할당하여 작업한다. // lombok - 어노테이션을 활용하여 코드를 자동으로 생성해주고 축소해주는 라이브러리. ~ @Setter ~ @Getter ~ @ToString ~ @Data: @ToString + @Getter + @Setter + @EqualsAndHashCode + @RequiredArgsConstru..