[TIL-260313] Servlet & JSP 입문: MVC 패턴 실습
·
Java
오늘은 따로 진도는 안 나갔고 어제 배운 모델 2 방식 실습을 했다.MVC 패턴을 적용하여 회원 정보 추가, 조회, 수정, 삭제 등의 간단한 CRUD 기능을 실습했다. 전체 구현 흐름전체 구현 흐름은 다음과 같다.브라우저에서 localhost:8080/mvcEx/member/…주소로 요청서블릿 MemberController가 요청을 받아 그 요청에 해당하는 모델을 선택하여 작업을 요청 -> 커맨드 패턴: 브라우저가 URL 패턴을 이용해 컨트롤러에게 수행 작업을 요청하는 방법컨트롤러는 getPathInfo() 메서드를 사용하여 URL 패턴에서 요청명을 받아와 각 요청에 맞는 작업을 수행각 요청에 따른 nextPage로 포워딩 컨트롤러의 작업을 좀 더 구체적으로 살펴보면, 우선 MemberController..
[TIL-260312] Servlet & JSP 입문: JSP 내장 객체, 액션 태그, 모델2
·
Java
내장 객체JSP가 서블릿으로 별환될 때 컨테이너가 자동으로 생성시키는 서블릿 멤버 변수.별도의 객체 생성 없이 각 내장 객체의 메서드를 사용할 수 있다.내장 객체타입설명requestjavax.servlet.http.HttpServletRequest클라이언트의 요청 정보를 저장responsejavax.servlet.http.HttpServletResponse응답정보 저장outjavax.servlet.jsp.JspWriterJSP 페이지에서 결과를 출력sessionjavax.servlet.http.HttpSession세션 정보 저장applicationjavax.servlet.ServletContext컨텍스트 정보를 저장pageContextjavax.servlet.jsp.PageContextJSP 페이지에 대..
[TIL-260311] Servlet & JSP 입문: 커넥션 풀, JSP 정의, JSP 스크립트
·
Java
커넥션 풀웹 애플리케이션이 실행됨과 동시에 연동할 데이터베이스와의 연결을 미리 설정하여, 필요할 때마다 미리 연결해 놓은 상태를 이용해 빠르게 데이터베이스와 연동하여 작업하는 기술이다.즉 미리 데이터베이스와 연결시킨 상태를 계속해서 유지하는 기술이다. 톰캣 컨테이너는 자체적으로 커넥션 풀 기능을 제공한다.톰캣 실행 -> 미리 데이터베이스와 연결 -> Connection Pool 객체 생성 -> 애플리케이션이 데이터베이스와 연동할 일이 생기면 Connection Pool 객체의 메서드를 호출해 빠르게 연동하여 작업 JNDI필요한 자원을 키/값(key/value) 쌍으로 저장한 후 필요할 때 키를 이용해 값을 얻는 방법.톰캣이 만든 Connection Pool 객체에 접근할 때 JNDI를 이용한다. 커넥션 ..
[TIL-260310] Servlet & JSP 입문: 서블릿의 응답 처리, DB 연동
·
Java
Servlet 기초서블릿의 응답 처리doGet()이나 doPost() 메서드 안에서 처리javax.servlet.http.HttpServletResponse 객체 이용setContentType()을 이용해 클라이언트에게 전송할 데이터 종류(MIME_TYPE)를 지정브라우저(클라이언트)와 서블릿의 통신은 자바 IO 스트림을 이용package ex01;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.H..
[TIL-260309] Servlet & JSP 입문: JSP 실습, Servlet 기초
·
Java
JSP 실습지난 금요일에 톰캣 서버와 이클립스 IDE를 연결해 간단한 jsp 파일로 웹 페이지를 만들어 보았다.프로젝트 구조 Tomcat v9.0 Server at localhost-config: 프로젝트에서 사용될 톰캣 서버폴더 내 파일 건들지 않기!servletEx, webEx: 생성한 프로젝트src/main/java: 자바 서블릿 소스 파일webapp: JSP 파일 (클라이언트에서 파일 이름으로 접근할 수 있음. META-INF, WEB-INF 빼고)lib: 확장 라이브러리web.xml: 배포서술자웹 애플리케이션의 환경설정 정보를 담은 파일WAS가 처음 구동될 때 이 파일을 읽어 설정 내용을 톰캣에 적용하게 됨 절대 src 밑에 main 밑에 java 폴더는 건드리지 말기! (수정해도 반영 안 됨)..
[TIL-260306] Servlet & JSP 입문: 자바와 웹, 웹 애플리케이션, HTTP
·
Java
자바와 웹서블릿과 JSP자바 기반의 서버 측 웹 기술로 서블릿과 JSP가 있다.둘다 클라이언트의 요청을 받아 동적인 웹 페이지를 생성하고, 톰캣(Tomcat) 같은 서블릿 컨테이너에서 동작하며 최종적으로는 서블릿 클래스로 변환되어 실행된다.즉 JSP도 결국 내부적으로 서블릿으로 변환되어 실행되기 때문에 기술적으로 동일한 기능을 수행하는 것이다.서블릿 (Servlet)Java 코드 내에 HTML을 삽입하는 구조.로직 처리에 강점이 있어 복잡한 비즈니스 로직에 적합하다.HTML 화면을 변경할 때 자바 코드를 수정하고 컴파일해야 하므로 디자인 수정이 매우 불편하다.컨트롤러 페이지 만들 때 사용.JSP (Java Server Page)HTML 내부에 Java 코드를 삽입하여 화면 구현에 특화되어 있다.디자인(H..
[TIL-260212] 자바 기초: 내부 클래스, 스레드, 람다, 스트림
·
Java
이 글은 2026년 2월 12일에 작성된 글입니다.내부 클래스클래스 내부에 선언한 클래스선언하는 위치나 예약어에 따라 크게 인스턴스 내부 클래스, 정적 내부 클래스, 지역 내부 클래스, 익명 내부 클래스로 나뉜다.익명 내부 클래스다른 내부 클래스는 많이 쓰이지는 않고 익명 내부 클래스가 주로 쓰인다.익명 클래스는 클래스 이름 없이 선언하고 바로 생성하여 사용할 수 있는 클래스이다.class Outer{ Runnable getRunnable(int i){ int num = 100; return new Runnable() { //익명 내부 클래스. Runnable 인터페이스 생성 @Override public void run() { ..
[TIL-260211] 자바 기초: 예외처리와 제네릭, 컬렉션 프레임워크
·
Java
이 글은 2026년 2월 11일에 작성된 글입니다. 예외 처리예외가 발생하더라도 프로그램이 비정상 종료되지 않도록 하는 방법.try, catch, finally예외 처리는 try, catch, finally 키워드를 사용한다.try 구문 안에서 예외가 발생하면 catch를 이용해 예외를 처리한다.예외가 발생하던 그렇지 않던 마지막에 반드시 실행되어야 하는 코드가 있다면 finally를 이용한다.try { //예외가 발생할 수 있는 부분 intnumber = Integer.parseInt"ABC"); // NumberFormatException 발생}catch( NumberFormatExceptione ) { //예외처리 부분 System.out.println( "에러가 발생했습니다." + e...
[TIL-260210] 자바 기초: 인터페이스
·
Java
이 글은 2026년 2월 10일에 작성된 글입니다.Interface클래스 구현을 위한 기능정의 & 규약.클래스가 구현해야 하는 메서드를 강제함으로써, 구현된 객체들의 동일한 기능을 보장한다.인터페이스는 상수 필드, 추상 메서드, default 메서드, static 메서드, private 메서드로 구성된다. (생성자는 없다).인터페이스의 변수는 컴파일 과정에서 public static final 키워드가 붙어 상수로 자동 변환된다.인터페이스의 메서드는 public abstract를 명시하지 않아도 컴파일 과정에서 추상 메서드로 자동 변환된다.// 인터페이스public interface MemberService { // 상수. public static final 생략 가능 double PI = 3..
[TIL-260209] 자바 기초: static, 상속, 추상 클래스
·
Java
이 글은 2026년 2월 9일에 작성된 글입니다. static 변수클래스 변수라고도 한다.클래스에 속해 한번만 생성되는 변수이고 이를 여러 인스턴스가 공유한다.객체화 없이 사용할 수 있어 인스턴스 간에 공통으로 사용할 값이 필요한 경우 유용함.static 변수는 프로그램 실행 중 클래스가 메모리에 로드되는 시점에 단 한 번 생성 및 초기화 됨.인스턴스 생성과 무관하게 해당 클래스가 처음 호출(로딩)되는 시점에 JVM에 의해 static 영역 메모리에 할당되며 프로그램 종료 시까지 유지됨. 싱글톤 패턴객체 지향 프로그램에서 인스턴스를 단 하나만 생성하는 디자인 패턴.static을 응용하여 프로그램 전반에서 사용하는 인스턴스를 하나만 구현하는 방식. ✅ 싱글톤 패턴 사용 방법생성자를 private으로 만들기..