[Spring]_(33)
-
[Dispatcher-Servlet]_디스패처 서블릿 이란
개념 Dispatcher-Servlet 이란 Spring 에서 HTTP 프로토콜이 들어오는 요청들을 가장 먼저 받아 해당하는 컨트롤러에 위임해주는 프론트 컨트롤러 라고 할 수 있습니다. 일반적인 Spring 구조의 서버라면, WAS 로는 Tomcat 을 사용하고 그 위에 Spring 을 올리는 방식을 사용합니다. Tomcat 에서 Spring 으로 request 가 오게 되면 가장 먼저 받는 것이 Dispatcher-Servlet 입니다. Dispatcher-Servlet 의 장점 예전에는 web.xml 파일에 모든 서블릿을 Url 매핑을 해줬다고 합니다. Dispatcher-Servlet 이 등장하고나서 모든 요청을 매핑해주면서 개발자는 컨트롤러만 구현하고 Bean 등록만 하게되면 알아서 위임해주는 편..
2022.06.17 -
[Exception]_Spring 예외처리
Exception 이란? Error 와 Exception 의 차이는 개발자의 의도인지 아닌지 라고 생각합니다. Error 같은 경우에는 시스템의 심각한 오류, 서버 다운 등 말 그대로 에러인 경우이고, 시스템 레벨에서 일어납니다. 개발자가 의도하거나, 예상 할 수 없습니다. Exception 의 경우에는 개발자가 작성한 코드 안에서 일어나는 것들을 말합니다. 개발자가 미리 알고, 예상 할 수 있는 범위를 뜻합니다. Error 의 경우 개발자가 예측하여 해결할수 없습니다. 따라서 개발자는 자기가 작성한 코드 내에서 일어날 수 있는 예외를 생각해야 하고, 코드를 작성할 때 예외가 충분히 일어날 수 있는 곳에는 예외처리를 해줘야 합니다. Exception 의 종류 예외에는 크게 2가지 종류가 있습니다. Che..
2022.06.16 -
[Spring]_Controller 파라미터 정리
스프링 컨트롤러를 작성하면서 사용한 파라미터 정리입니다. 1. @HttpServletRequest / @HttpServletResponse / @ServletRequest / @ServletResponse @RequestMapping("/test") String test1(HttpServletRequest request) { String a = request.getParameter("a"); System.out.println("a : " + a); return "data"; } HTTP 에서 URL 요청시 전송한 값, 쿠키 ,세션, 헤더 등 클라이언트 정보를 가져올때 사용 웹브라우저 사용자인 클라이언트 -> 서버로 요청- > 서버에서 HttpServletRequest 를 생성, 서블릿에게 전달 받아올때 ..
2022.06.03 -
[포트폴리오 페이지]_19단계_게시판 심화_(파일 다운로드 2편)
해당 게시글은 업로드 1편 , 다운로드 2편으로 구성되어 있습니다. [환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis 사용 언어 : ES6, Java , Html5 , CSS 완성 화면] input type="file" 생성 해당 버튼 클릭시 파일 선택하는 창이 뜸 한가지 or 다중 파일 선택시 하단에 썸네일, 이름 , 삭제버튼 생성 삭제버튼 클릭시 해당 row 삭제와 동시에 전달하는 데이터도 삭제 등록후 해당 게시물 조회시 정상적으로 파일 이름과 함께 다운로드가 되는 모습 개발 목표 : SPA 로 구현한 게시판에서 글 작성시 파일 업로드 기능 추가, 파일 업로드시 Mulitple 속성 부여하여 여러개의 파일 업로드 하도록 구현파일 다운로드시 글 작성자..
2022.04.29 -
[포트폴리오 페이지]_18단계_게시판 심화_(파일 업로드 1편)
해당 게시글은 업로드 1편 , 다운로드 2편으로 구성되어 있습니다. [환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis 사용 언어 : ES6, Java , Html5 , CSS 완성 화면] 개발 목표 : SPA 로 구현한 게시판에서 글 작성시 파일 업로드 기능 추가, 파일 업로드시 Mulitple 속성 부여하여 여러개의 파일 업로드 하도록 구현파일 다운로드시 글 작성자가 저장한 파일 명 그대로 다운로드하도록 구현, 한국어 인코딩 추가 1] 구성 유저가 파일을 업로드 할 때 - > Input type=file 태그를 활용하여 FormData 형태의 구조로 Controller에 전달 -> Controller에서는 전달받은 데이터를 핸들링하는 Service 호..
2022.04.29 -
[포트폴리오 페이지]_17단계_CRUD 게시판 구현_(Delete)
[환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis 사용 언어 : ES6, Java , Html5 , CSS 완성 화면] 개발 목표 : SPA 로 구현한 게시판에서 row Read 후 한단계 더 Depth 으로 수정하기 페이지구현, 뒤로가기 버튼 클릭시 이전 정보 보이게 구현 & 작성자가 아닐 경우 삭제, 수정 버튼 안보이게 구현 1] 게시글 상세정보 jsp 소스코드 제목 : ${title} 작성자 : ${writer} 내용 : ${content} 작성일자 : ${regdate} 뒤로가기 수정하기 게시글 삭제 저번 Read 포스팅과 다른점은 삭제버튼 이벤트가 생성된 것입니다. 2-1] 삭제버튼 이벤트 rmbtn.onclick = function(){ fe..
2022.04.26 -
[포트폴리오 페이지]_16단계_CRUD 게시판 구현_(Update 기능)
[환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis 사용 언어 : ES6, Java , Html5 , CSS 완성 화면] 개발 목표 : SPA 로 구현한 게시판에서 row Read 후 한단계 더 Depth 으로 수정하기 페이지구현, 뒤로가기 버튼 클릭시 이전 정보 보이게 구현 & 작성자가 아닐 경우 삭제, 수정 버튼 안보이게 구현 1] 상세화면 jsp 소스코드 제목 : ${title} 작성자 : ${writer} 내용 : ${content} 작성일자 : ${regdate} 뒤로가기 수정하기 게시글 삭제 우선 해당 if 문을 통해 LocalStorage에 저장된 로그인 정보를 비교하여, 게시글의 작성자와 동일할 경우에만 표시 if( writercheck =..
2022.04.26 -
[포트폴리오 페이지]_15단계_CRUD 게시판 구현_(목록 Read 기능)
[환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis 사용 언어 : ES6, Java , Html5 , CSS [완성화면] 목록에서 번호를 클릭시 해당 게시글의 내용이 나오도록 한다. 개발 목표 : 기존에 만든 게시판에서 SPA 을 유지하며, 게시판 Row 클릭시 해당 목록 조회. 메뉴 1 소스코드] CRUD 등록 10개씩 보기 15개씩 보기 20개씩 보기 제목 작성자 조회 번호 제목 글쓴이 작성일자 조회수 이전 포스팅에 비해 좀더 새분화 하여 나누었으며 기능은 테이블 생성, 목록 조회, 조회버튼 클릭, view 카운트 변경 의 4가지 기능으로 나누어 작성하였습니다. 코드설명] 1] 테이블 생성 부분 //테이블 생성 async function createB..
2022.04.26 -
[포트폴리오 페이지]_14단계_CRUD 게시판 구현_(검색 기능)
[환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis 사용 언어 : ES6, Java , Html5 , CSS 완성 화면] 개발 목표 : 기본 게시판 그릴 때 로직 변경 -> 작성자 or 제목 항목 포함해서 query 발송, ROWNUM 활용하여, bno(table 의 key) 를 숨기고 가상의 number 목록 표시 아래의 포스팅에서 로직 변경함 https://yn971106.tistory.com/77 [포트폴리오 페이지]_9단계_CRUD 게시판 구현_(feat.목록 조회기능 구현) [환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis ---- 개발 목표 : 오라클 디비를 이용해서 게시판 CRUD 중 R(r..
2022.04.26 -
[포트폴리오 페이지]_13단계_CRUD 게시판 구현_(신규 데이터 Create)
[환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis 사용 언어 : ES6, Java , Html5 , CSS 완성 화면] 개발 목표 : 기존에 만든 게시판에서 SPA 구현을 위해 등록기능 menu1 로 병합 https://yn971106.tistory.com/78 [포트폴리오 페이지]_10단계_CRUD 게시판 구현_(feat.등록기능 구현) [환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis ---- 개발 목표 : 오라클 디비를 이용해서 게시판 CRUD 중 C(create) 만들기 [완료화면] 등록 버튼 클릭시 메뉴 1의 게시판에 새로운 항목.. yn971106.tistory.com 해당 포스트에서 검색기..
2022.04.26 -
[포트폴리오 페이지]_12단계_SPA 구현을 위한 History 객체 만들기
[환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis 개발 목표 : 기존에 만든 게시판에서 SPA 을 유지하기 위해 common 파일 생성 common.js 파일을 사용할 위치를 지정해 줍니다. ( 자유 ) let _commons = function() { return _Self ={ } } const $commons=_commons(); 의 형식을 가지고 있습니다. 다른 jsp 파일에서 해당 경로의 script 파일을 추가하고 commons 를 호출하여 해당 공통 함수들을 사용할수 있고, 페이지 전체의 객체를 만들어 참조할 수 있습니다. 제가 할 것은 SPA 유지를 위해 데이터를 보관할 history 라는 객체를 만들 것입니다. let history={ ..
2022.04.26 -
[포트폴리오 페이지]_11단계_CRUD 게시판 구현_(feat.페이징 처리)
[환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis ---- 개발 목표 : 기존에 만든 게시판에서 페이징 처리가 가능하도록 기능 추가 [완료화면] 10개씩 보기 20개씩 보기 이전 조회 기능에서 변경점] https://yn971106.tistory.com/77?category=1000475 [포트폴리오 페이지]_9단계_CRUD 게시판 구현_(feat.조회기능 구현) [환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis ---- 개발 목표 : 오라클 디비를 이용해서 게시판 CRUD 중 R(read) 만들기 [완료 화면] [디렉토리] [설명] board에 관한 controller 와 VO.. yn971106.t..
2022.04.18