JSP & Servlet 32

다시 확인하는 Paging 처리

기본적으로, amount = 양 / pageNum = 현재 사용자의 페이지 를 기준으로 원하는 만큼의 데이터를 꺼내오는 작업을 거친다. 정렬은 데이터추출 속도에 상당히 치명적이므로, 이미 정렬되어있는 Index를 기준하여 실행계획을 수립하도록 해야한다. Oracle DATABASE 의 경우, 가져온데이터에 따른 번호를 매기는 ROWNUM 이 제공되는데, 이를 이용할떄에 Rownum 추출은 반드시 1을 포함하는 작업을 거쳐야함으로.(인덱스에 맞는 rowid 값의 데이터 접근 및 추출 후 ROWNUM 부여 의 과정을 반복하는 듯 하다.) SELECT /*+ INDEX_DESC(테이블명 인덱스명) */ ROWNUM rn , 컬럼명... FROM 테이블명 WHERE ROWNUM 7/5.0 * 5 = 1.4의 올..

JSP & Servlet 2020.08.29

게시글에 따른 폴더 생성하여 저장하기.

File 객체 생성자에 경로를 주면 해당 파일객체가 만들어진다. no는 글 번호이며 이는 가변경로이니 @PathValariable 로 가져다 쓸 수 있을 듯 하다. 즉 글 번호 하나마다 폴더를 생성하여 사용하게 된다. String path = "C:\\tempfiles\\"+no; File file = new File(path); if(!file.exists()) { file.mkdirs(); } jsp 태그에서의 이미지 유무에 따른 사용이다. 데이터베이스에 파일 이름이 존재하면다면 태그에서 지정한 path 값으로 이미지를 가져오는데, Path/{number}/{파일명} 이다.

JSP & Servlet 2020.07.31

파일업로드-2

text1 file1 file2 form enctype 속성은 multipart/form-data여야한다. web.xml 설정과정에서 정의시 가 반드시 존재해야한다.이는 multipart요청을 가능하게해준다. FileUploadServlet chap23.UploadServlet C:\apache-tomcat-9.0.37/temp 1024 2048 3 태그는 저장위치를 정의 기본값은 "" 는 최대 허용 파일 크기를 정의 기본 값은 -1(제한없음) 요청데이터의 제한크기 정의 기본 값은 -1(제한없음) 업로드한 파일의 크기가 해당 태그에 정의된 값보다 크다면 임시파일 생성, 적다면 메모리에 저장 @MultipartConfig 어노테이션을 이용한 설정 @MultipartConfig( location = "C:\..

JSP & Servlet 2020.07.31

파일업로드. Multipart

기본 방식은 application/x-www-form-urlencoded , 파일 업로드 시에는 form 의 enctype 속성 값으로 multipart/form-data 를 입력해주어야한다. HttpServletRequest의 getPart() 메서드에 파일 파라미터 명을 주면 Part타입으로 가져온다. size submittedFileName 등을 제공함. 이미지일경우 알수 없는 글자들로 이루어짐 Part 인터페이스를 통해 서블릿으로 파일 정보를 가져오며, multipart/form-data 타입 인코딩 형식과 POST요청을 받았을 때에 사용가능한 인터페이스 void delete() String getContentType() String getHeader( String name ) : 매개변수로 주어..

JSP & Servlet 2020.07.31

<c:out> 태그로 뿌린 내용을 작성 시 그대로 가져오기.

HTML 방식으로 응답을 보낼 경우 HTML에서 특수문자로 표현되는 개행, 공백 & 등은 사용시에 pre 태그로 둘러주지 않으면 클라이언트가 원하는 내용을 전달하지 못한다. 첫번째 사전 조건은 커스텀 태그로 내용을 문자 그대로 출력을 시킨다. 이다. 두번째 조건은 pre 조건을 달아주는데 태그는 기본적으로 칸을 넘는 Text에 대한 Wrapping을 하지 않는다. 그러므로 CSS(Cascade Style Sheet)의 style 속성에 white-space의 값으로 pre-wrap을 주어야 한다. 내용

JSP &amp; Servlet 2020.07.30

Servlet에서의 Session

JSP 는 기본영역에 Session이 존재하기 때문에 session영역을 포함하나 Servlet은 Session을 따로 생성해야 세션을 사용할 수 있고, 이는 springframework 의 @HttpSession을 붙인 HttpSession 파라미터나 HttpServletRequest 파라미터를 이용한 Controller의 세션 생성과도 연관이 있다. 기본적으로 세션 정보를 사용하기 위해서는 Session은 생성해야하는데 @Controller의 요청매핑 메서드에서 세션 생성 방법들은 생성이 조금다르다. @PostMapping 등 요청매핑 메서드에 @HttpSession 을 붙인 HttpSession 파라미터는 넘어오는 요청에 세션영역이 존재하지 않는다면 스프링MVC가 세션을 자동생성한다, 존재한다면 그..

JSP &amp; Servlet 2020.07.28

Properties 파일을 이용한 FrontController 구현

대략적인 과정을 보면, 키 값당 하나의 Value를 갖는 Hash맵 안에 각 URI 요청에 대한 처리를 할 클래스를 로딩하여 객체화한 뒤 HashMap 의 Map 객체를 만드는 과정이다. 서블릿 구동시 작동하는 init() 메서드에 적용하고 tomcat 서블릿 구동 순서에 1 번을 주어서 1순위로 실행시키는 것 같다. Servlet 생명 주기에 따라 init() 메서드는 단 한번 실행되고 WAS가 죽을때 같이 destroy() 되는데, 이에 따라서 init 메서드에 서문에 기재한 사항을 적용하여 FrontController를 구현하는 과정이라고 생각해본다. 작동 원리는, 요청이 들어오면 해당 키값이 즉 요청값이므로 , 맞는 키값의 객체를 꺼내 구현대상 클래스의 메서드를 실행시켜 ..

JSP &amp; Servlet 2020.07.24

커스텀태그의 몸통 내용 처리방식

tag 파일의 커스텀 태그의 tag 디렉티브의 속성 중 body-content 라는 속성이 존재하는데, 이 속성의 설정으로 몸통태그에 대한 출력과 실행을 관리할 수 있다. 기본 값은 scriptless 이며 empty , tagdependent 로 나뉜다. scriptless는 JSP의 스크립트요소를 제외한 태그들의 실행을 허용한다. JSP스크립트요소가 몸통태그에 있을시 예외가 발생한다. tagdependent는 HTML을 제외한 다른 스크립트 요소들을 text로 간주하고 출력한다. 태그 body scriptless Hello World ${pageContext.request.contextPath} 태그 body tagdependent Hello world ${pageContext.request.cont..

JSP &amp; Servlet 2020.07.20