03.28 학습&숙제

한강섭·2025년 3월 31일
1

학습 & 숙제

목록 보기
54/103
post-thumbnail

썸네일 출처


서블릿/JSP

1. 서블릿 & JSP 특징

서블릿(Servlet)

자바 기반의 웹 애플리케이션을 개발하기 위한 서버측 프로그램.

클라이언트 요청을 처리하고 동적인 웹 페이지를 생성하는 역할.

HTTP 요청/응답을 직접 다룰 수 있음.

JSP(Java Server Pages)

HTML 내에 Java 코드를 삽입할 수 있는 웹 기술.

서블릿보다 코드가 간결하여 유지보수가 용이함.

최종적으로 서블릿으로 변환되어 실행됨.


2. URL 매핑

web.xml에서 서블릿과 URL을 연결하거나 @WebServlet("/url") 어노테이션을 사용하여 매핑 가능.

예시:

<servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.example.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

3. 주요 Servlet 객체 및 JSP 내장 객체

주요 Servlet 객체

HttpServletRequest : 클라이언트 요청 정보를 담음.

HttpServletResponse : 서버의 응답을 처리.

ServletContext : 애플리케이션 전체에서 공유되는 정보.

HttpSession : 클라이언트의 세션 정보를 관리.

JSP 내장 객체

request, response, session, application, out 등.

예시: request.getParameter("username");


4. 페이지 이동

1) sendRedirect (클라이언트 이동)

클라이언트가 새로운 요청을 하도록 유도.

예시:

response.sendRedirect("index.jsp");

2) RequestDispatcher (서버 내부 이동)

서버에서 내부적으로 JSP나 서블릿으로 이동 가능.

예시:

RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp");
dispatcher.forward(request, response);

쿠키 & 세션

1. 개념 및 특징

클라이언트(브라우저)에 저장되는 작은 데이터 조각.

만료 기간을 설정하여 지속적으로 활용 가능.

예시:

Cookie cookie = new Cookie("user", "John");
cookie.setMaxAge(60 * 60 * 24); // 1일
response.addCookie(cookie);

세션 (Session)

서버에서 관리하는 클라이언트 정보 저장소.

브라우저가 닫히거나 일정 시간이 지나면 만료.

예시:

HttpSession session = request.getSession();
session.setAttribute("username", "John");

JSTL / EL

1. JSTL 주요 태그

<c:forEach> : 반복문

<c:if> : 조건문

<c:choose> : 다중 조건문

<c:set> : 변수 설정

<c:out> : 값 출력

2. EL(Expression Language) 내장 객체

${param.name} : 요청 파라미터

${sessionScope.username} : 세션 변수

${applicationScope.value} : 애플리케이션 변수


클라이언트 요청 방식

1. GET 요청

데이터를 URL에 포함하여 요청.

보안에 취약하지만 간단한 데이터 전송에 유용.

예시: GET /products?category=books&price=100

2. POST 요청

데이터를 본문에 포함하여 전송.

보안이 필요할 때 사용.

예시:

<form action="/submit" method="POST">
    <input type="text" name="username">
    <button type="submit">Submit</button>
</form>

SQL

1. 주요 SQL 내장 함수

날짜 관련: NOW(), DATE_ADD(), DATE_SUB()

문자열: CONCAT(), SUBSTRING(), LENGTH()

집계: SUM(), AVG(), COUNT()

2. SubQuery / Join

SubQuery

WHERE 절에서 다른 쿼리의 결과를 조건으로 사용.

예시:

SELECT name FROM employees WHERE dept_id = (SELECT dept_id FROM departments WHERE name = 'HR');

JOIN 종류

INNER JOIN: 일치하는 데이터만 결합.

LEFT JOIN: 왼쪽 테이블의 모든 데이터와 일치하는 오른쪽 테이블 데이터 결합.

RIGHT JOIN: 오른쪽 테이블의 모든 데이터와 일치하는 왼쪽 테이블 데이터 결합.

FULL JOIN: 두 테이블의 모든 데이터 결합.


JDBC

1. 특징

Java에서 DB와 연동할 수 있도록 제공되는 API.

Connection, Statement, PreparedStatement, ResultSet 등의 객체 사용.

2. 주요 메서드

DriverManager.getConnection(url, user, password); : DB 연결

stmt.executeQuery(sql); : SELECT 실행

stmt.executeUpdate(sql); : INSERT, UPDATE, DELETE 실행


모델링

1. 개념 및 특징

ERD(Entity Relationship Diagram) 등으로 DB 구조를 설계하는 과정.

정규화(Normalization) 과정을 거쳐 데이터 중복을 최소화.

예시:

1NF: 중복 제거

2NF: 부분 함수 종속 제거

3NF: 이행적 함수 종속 제거


HttpServlet 라이프 사이클

init() : 서블릿 초기화 (한 번 실행)

service() : 요청이 들어올 때마다 실행

doGet() / doPost() : HTTP 요청에 따라 실행

destroy() : 서블릿 종료 시 호출

profile
기록하고 공유하는 개발자

0개의 댓글