클라우드 융합 Full-stack 웹 개발자 양성과정 51

Spring - ModelAndView로 바꾸기, 게시판글쓰기, 삭제, 수정

1. ModelAndView 사용하기 전- @RequestMapping("list.bo") public String selectList(@RequestParam(value="currentPage", defaultValue="1")int currentPage, Model model){ PageInfo pi = Pagination.getPageInfo( boardService.selectListCount(), currentPage, 10, 5); model.addAttribute("pi", pi); model.addAttribute("list",boardService.selectList(pi)); //포워딩 return "board/boardListView"; } 사용한 후 - @RequestMapping(..

Spring - 마이페이지(수정), 회원탈퇴, 게시글리스트조회

📌taglib지시어 귀찮으니까 자동완성 해놓는 법 window-preperences-jsp-editor-template-html5형식 📌추가설명 > 요청 ① 클라이언트가 브라우저(크롬, 익스플로어)로 요청 전송 ② DispatcherServlet(Spring프레임워크에서 기본적으로 제공==web.xml)이 요청을 전달해줌 ③ HanderMappingClass에게 찾아가서 url과 매칭되는 controller를 검색(HandlerMapping이 찾아서 알려줌/controller를 우리가 직접찾아야 됐다면 SpringBean에 등록되어있는 @RequestMapping이 대체해줌 ) ④ Handler Adpater에게 요청을 보냄(실질적으로 controller한테 일을 시키는 애) ⑤ 실행 Controller..

🐌스프링에서 자주쓰는 어노테이션(@) 정리

@Component 개발자가 생성한 Class를 Spring의 Bean으로 등록할 때 사용하는 Annotation Spring은 해당 Annotation을 보고 Spring의 Bean으로 등록합니다. - MVC패턴에 맞게 구체적으로 등록 가능 @Controller Spring에게 해당 Class가 Controller의 역할을 한다고 명시하기 위해 사용하는 Annotation Controller 빈 스캐닝을 통해 자동으로 빈 등록 - 예제) @Controller //Controller타입의 어노테이션을 붙여주면 BeanScanning을 통해서 자동으로 bean등록 public class MemberController { @Service Service Class에서 쓰인다. 비즈니스 로직을 수행하는 Clas..

Spring - 로그인, 로그아웃, 회원가입

📌스프링 컨테이너와 빈에 대해 - 스프링 컨테이너란? 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공하는 역할 자바 객체를 스프링에서는 빈(Bean)이라고 부름 스프링 컨테이너는 IoC와 DI의 원리를 이용 , 싱글톤을 유지 - 참고 1. 로그인 ID : Password : 로그인 취소 @RequestMapping(value="login.me") //RequestMapping타입을 어노테이션을 붙여줌으로써 HandlerMapping등록 public void loginMember() { System.out.println("로그인요청"); } ** Spring에서 Parameter(요청 시 전달값)를 받는 방법 1) HttpServletRequest..

Spring - 개발환경구성

0. Spring Framework JSP, Servlet보다 더 향상된 백엔드 구축 Tool(도구) 스프링을 이용하면 체계적인 웹사이트 구조를 구축 가능 단, 무수히 많은 규칙을 지켜야만 가능 (강제적 성향이 짙음) 보통 메뉴얼에 개발룰이 정해져 있음 1) Spring의 종류 - Spring Legacy : 우리가 배울 내용, 근본 - Spring Boot : 설정부분을 줄인 것 1. 개발환경 구성 1) 툴 : 이클립스, STS(이클립스 개조 버전 Spring을 위한), VSCode 주의 *** 한글, 공백, 특수문자 절대 XX https://mvnrepository.com/ => GSON 다운 받았던 곳 ! 앞으로도 자주 방문할 사이트이므로 즐찾 해놓기 MAVEN : 라이브러리 정보들을 통합하여 관리..

MyBatis - 검색, filter기능

1. 검색 작성자 제목 내용 검색 condition을 선택하고, 검색 keyword를 입력해 검색버튼을 누르면, 요청이 감 : /search.bo String condition = request.getParameter("condition"); String keyword = request.getParameter("keyword"); - writer, title, content중 하나 ! - "사용자가 입력한 키워드값" Sevice는 값을 하나만(묶어서라도) 들고가는데, 값을 담을 곳이 없다?! 억지로 담기엔, VO는 값과 매핑되지 않는건 쓰지 않는 것이 좋음 개발 시점에서는 List가 더 쉬울 수 있음(값이 추가될 수 있으므로) BUT List를 썼을 때 단점으로 1. 메모리 낭비, 2. 순서대로 출력되므..

MyBatis - 환경구성, 로그인, 회원가입기능, 게시글리스트 조회, 게시글 상세조회

# 환경구성 1. 워크스페이스 만들기 c드라이브에 2. DB 설정 - 관리자 계정에서 계정 만들기 create user mybatis identified by mybatis; grant resource, connect to mybatis; - 계정에 접속해 테이블생성하기 슬랙-공지-Table Scripts.sql 3. mybatis.jar파일 다운로드 => lib폴더에 넣어주기 # 회원가입 * 프레임워크 - 개발자가 보다 편리한 환경에서 개발할 수 있도록 제공하는 뼈대, 틀이라고 생각 - 소프트웨어 개발의 입장에서는 공통으로 사용하는 라이브러리/개발도구/인터페이스 등등 * 프레임워크의 필요성 - 웹 프로그램의 규모가 커지고 있음 => 거대하고 복잡도가 높은 프로젝트를 완성시키기 위해 많은 사람들이 필요함..

<HTML> 절대경로와 상대경로

1. 절대경로 /Context Root/요청할 url /로 시작하는 경우 localhost:8001 뒤에 action에 작성한 값이 붙여지면서 요청 2. 상대경로 상위폴더 ../파일명 현재폴더 파일명 하위폴더 디렉토리명/파일명 요청할 url문구로 시작하는 경우 현재 이 페이지가 보여질 때의 url경로 중에서 마지막 / 로부터 뒤에 action에 작성한 값이 붙어지면서 요청

EL표현언어, JSTL

0. 환경 구성하기 우클릭 > New > DynamicProject생성 > "ActionProject"으로 이름 - 폴더 구성 1. EL(Expression Language) 표현언어 기존에 사용했던 표현식(출력식) 와 같이 JSP상에서 표현하고자하는 값을 ${ name }의 형식으로 표현해서 작성하는 것 1) EL기본구문에 대해서 먼저 배워보자 01_EL : /el.do EL => 그동안 수하물들을 request, session, application, page에 담았음 -JSP내장객체(Scope내장객체)- (1) 데이터를 담을 수 있는 JSP내장객체 종류 4가지 ㄱ. ServletContext(=자료형) (application scope) 한 어플리케이션(웹사이트) 당 단 1개 존재하는 객체 이 영역..

Servlet/JSP - AJAX(이론, 아이디 중복체크, 댓글 조회(GSON))

1. 이론 1) AJAX 개요 : Asynchronous JavaScript AND XML의 약자 서버로부터 데이터를 가져와 전체 페이지를 새로 고치지 않고 일부만 로드해 내용물만 바꿀 수 있는 기법 참고로, 우리가 기존에 a태그를 이용해서 요청 및 form태그를 통해 요청한 방식은 동기식 요청 => 응답 페이지가 돌아와야 그 결과를 볼 수 있었음(== 페이지 화면이 한 번 깜빡) 비동기식 요청을 보내기 위해서는 AJAX라는 기술이 필요함 * 동기식 / 비동기식 요청 차이 - 동기식 : 요청 처리 후 해당하는 응답페이지가 돌아와야만 그 다음 작업이 가능 만약, 서버에서 응답페이지를 돌려주는 시간이 지연되면 무작정 기다려야 함 전체 페이지가 reload됨(새로고침, 즉 페이지가 기본적으로 한 번 깜빡거리면..