전체 글 45

Spring MVC | @GetMapping, @PostMapping, URL인코딩

@GetMapping, @PostMapping //@RequestMapping(value = "/register/add", method = {RequestMethod.GET, RequestMethod.POST})//@RequestMapping("/register/add") //신규회원 가입화면@GetMapping("/register/add")public String Register(){ return "registerForm"; //WEB-INF/views/registerForm.jsp} RequestMapping을 간단하게 쓸 수 있도록하는게 GetMapping과 PostMapping이다.   @GetMapping("/register/add") public String Register(){ ..

Spring MVC | WebDataBinder, @ModelAttribute, @RequestParam

매개변수 타입이 HttpServletRequest 선언하면 request객체에서 year를 직접 꺼낸다.사용자가 요청할 때 보낸 year값을 읽어볼 수 있다.@Controllerpublic class RequestParamTest { @RequestMapping("/requestParam") public String main(HttpServletRequest request) { String year = request.getParameter("year");// http://localhost/ch2/requestParam ---->> year=null// http://localhost/ch2/requestParam?year= ---->> year=""/..

Spring MVC | @ModelAttribute

더보기package com.fastcampus.ch2;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import java.util.Calendar;@Controllerpublic class YoilController { @RequestMapping("/yoil") public String yoli(MyDate myDate, Model model){ //매개 변수가 너무 많아질 경우 MyDate타입으로 정의 char yoil = getYoil(myDate); ..

@WebFilter 어노테이션, javax.servlet 임포트 문제

WebFilter 어노테이션이 임포트가 안되는 문제 발생 나는 자바서블렛 관련된 api가 잘 불러와지지 않은 것이다.이 때는 maven 레포지토리에서 해당 dependency를 긁어오면 된다.https://mvnrepository.com/위는 메이븐 레포지토리 링크이다!  링크에 들어가 검색창에 java servlet을 검색했다.마음에 드는 버전을 클릭하면 위의 페이지처럼 나온다.(보통 Usages 수가 많을 것을 선택하는 게 무난하다.) 나는 maven 프로젝트를 하고 있기 때문에 maven을 눌러서 나온 dependency코드를 모두 복사했다. pom.xml 파일에 복사한 코드들을 붙여넣기하고 빌드해준다. 임포트가 정상적으로 이루어지고 어노테이션이 잘 사용되는 것을 볼 수 있다!

트러블 슈팅 2025.02.28

Spring MVC | 서블릿과 JSP (2)

HTTP는 상태 정보를 저장하지 않는 프로토콜로, 상태를 유지하려면 저장소가 필요하다.이를 위해 웹 애플리케이션은 여러 종류의 저장소를 제공한다.저장소는 주로 Map 형태로 데이터를 저장하며, 다양한 범위와 생존 기간을 가진 저장소들이 존재한다.HTTP의 상태 정보 저장HTTP는 기본적으로 상태 정보를 저장할 수 없다.이는 매번 요청마다 새로운 연결을 맺기 때문에, 예를 들어 로그인 정보나 장바구니 정보 같은 사용자 상태를 유지할 수 없다는 것을 의미한다. 이를 해결하기 위해 저장소가 필요하다.저장소 종류웹 애플리케이션은 4가지 종류의 저장소를 제공한다:pageContext: 현재 페이지에만 접근 가능한 저장소로, 요청할 때마다 새로 초기화된다.application: 애플리케이션 전체에서 접근할 수 있는..

1 과목. 데이터 모델링의 이해 | ORACLE, SQL Server, ANSI 표기 차이점 정리

ORACLESQL ServerFrom 절 생략 불가(의미상 필요없는 경우 DUAL 테이블 선언)From절 필요없는 경우 생략 가능SYSDATEGETDATEADD_MONTHSDATEADDMONTHS_BETWEENDATEDIFFTO_NUMBER, TO_DATE, TO_CHARCONVERTVARIANCE 분산VARSTDDEV 표준편차STDEV문자 상수의 경우 대소문자 구분문자상수의 대소문자 구분XNULL을 마지막에 배치NULL을 처음에 배치   ORACLEANSI  표준조인 (INNER, CROSS, NATURAL, OUTER)INNER JOIN기본 조인 연산,FROM절에 테이블을 컴마로 구분,WHERE절에 조인 조건 나열USING이나 ON 조건절을 필수적 사용ON 조건의 괄호는 생략가능USING 조건절 괄호..

자격증/SQLD 2025.02.25

Spring MVC | 서블릿과 JSP (1)

서블릿과 JSP는 거의 같다.Spring은 JSP를 발전시킨 것이다. 서블릿과 컨트롤러의 비교@WebServlet은 @Controller + @RequestMapping 과 유사한 역할을 합니다서블릿@WebServlet("맵핑할 URL 주소") 를 사용하여 URL을 맵핑합니다.URL 맵핑이 클래스 단위로 이루어지므로, 새로운 요청을 처리하려면 클래스를 추가해야 하는 단점이 있습니다.HttpServlet 클래스를 상속받아야 합니다.service(HttpServletRequest request, HttpServletResponse response) 메서드를 항상 사용해야 하며, 요청과 응답 객체를 매개변수로 받습니다.throws IOException을 사용하는 이유는 PrintWriter를 활용하여 응답을 ..

Spring MVC | 관심사의 분리, MVC 패턴

관심사: 해야할 작업 OOP 5대 설계 원칙 : SOLID1. SRP: 단일 책임 원칙             , 하나의 메서드는 하나의 책임(관심사)만 진다.  분리 방법: 관심사의 분리, 변하는 것과 자주 변하지 않는 것의 분리, 중복코드의 분리 출력(view)의 분리 : 변하는 것과 변하지 않는 것의 분리 Model 데이터를 주고받는 객체View 출력Controller 처리 [MVC 패턴]클라이언트 요청 -> DispatcherServlet (입력&변환) -> Controller -> DispatcherServlet (모델 생성) -> View

SQL 퀴즈 풀기

1. 각 직책별로 급여의 총합을 구하되 직책이 부장인 사람은 제외하시오 단, 급여 총합이 8000이상인 직책만 나타내며, 급여 총합에 대한 오름차순으로 정렬하시오.select title, sum(salary)from s_empwhere title != '%부장' -- 이 라인에 주석을 추가제거해가면서 데이터의 변화를 볼 것group by titlehaving sum(salary) >= 8000order by sum(salary); 2. '김정미'와 같은 직급을 가진 직원 찾기SELECT E2.NAME, E2.TITLE, E2.SALARY, E2.DEPT_ID FROM S_EMP E1, S_EMP E2WHERE E1.TITLE = E2.TITLE -- '김정미'와 같은 직급을 가진 직원 찾기AND E1..

Spring MVC | 쿠키(cookie)와 세션(session)차이점과 예시

둘 다 서버와 클라이언트 간의 상태를 유지하는 중요한 기술이지만, 작동 방식과 사용되는 상황에서 큰 차이가 있습니다. 1. 쿠키(Cookie)란?쿠키의 정의쿠키는 클라이언트 측(즉, 사용자의 브라우저)에 저장되는 작은 데이터 파일입니다. 웹 서버가 클라이언트에게 특정 정보를 저장하고 다시 요청할 때마다 그 정보를 가져오도록 하는 방식으로 동작합니다. 쿠키는 클라이언트 측에서 데이터를 관리하므로 서버의 부하를 줄일 수 있는 장점이 있습니다.쿠키의 특징클라이언트 측에 저장되며, 서버에 전달될 때마다 자동으로 포함됩니다.사용자의 정보(예: 로그인 정보, 사용자 설정 등)를 저장하여, 브라우저를 종료한 후에도 유지할 수 있습니다.쿠키의 만료 기간을 설정할 수 있어, 특정 기간 동안 유효한 정보를 저장할 수 있습..