Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

JAVA 웹 프로그래밍 3주차 정리 (Servlet & JSP) 본문

2-2/JAVA 웹 프로그래밍 실무

JAVA 웹 프로그래밍 3주차 정리 (Servlet & JSP)

김브래 2023. 9. 20. 23:22

Servlet & JSP


Tomcat 서버 충돌

- 8080 or 1099 포트 사용 중으로 인한 오류

HTTP port 또는 JMX port 수정

Tomcat 10.1.x vs Tomcat 9.x.x

Tomcat 10.1.x

- servlet 6.x 지원

- jakarta 패키지 사용

- import jakarta.servlet.http.*;

- import jakarta.servlet.annotation.*;

 

Tomcat 9.x.x

- servlet 4.x

- javax 패키지 사용

- import javax.servlet.http.*;

- import javax.servlet.annotation.*;

 

build.gradle

dependencies {

    compileOnly('jakarta.servlet:jakarta.servlet-api:6.0.0') // Tomcat 10 버전

    ...

//  compileOnly 'javax.servlet:javax.servlet-api:4.0.1' //Tomcat 9 버전


JSP 구성 요소


 

Directive, 지시자

정의

JSP 페이지의 속성을 지정하는데 사용하는 태그

웹 컨테이너가 처리 방법을 결정하는데 필요한 정보를 제공

 

종류

<%@ page ~ %> : 페이지 관련 다양한 프로퍼티를 지정한다.

<%@ include ~ %> : 변환 시점에 현재 페이지에 포함할 코드나 문서를 지정한다.

<%@ taglib ~ %> : JSP에서 이용 가능한 태그 라이브러리를 지정한다.

한글 문제 해결

로그 메시지의 한글이 정상적으로 표현되지 않음
 

해결 방법

Run/Debug Configuations'VM options' 항목

-Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8으로 지정

Actions 검색 (Ctrl + Shift + a)하여 'Edit VM Options' 항목 선택

 

-Dfile.encoding=UTF-8

-Dconsole.encoding=UTF-8

JSP 페이지에서 한글 처리

응답(클라이언트에게 보낼 때)

<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%>

 

요청(클라이언트의 요청을 읽을 때)

<% request.setCharacterEncoding(“utf-8”) %>


사용자 요청 처리


HTTP 개요

분산되고, 협업가능한 하이퍼미디어 정보 시스템을 위한 통신규약으로 클라이언트의 요청과 서버의 응답을 처리하는 클라이언트-서버 방식을 사용한다.

 

클라이언트 요청 방식 비교

GET 방식 (기본값)

 

- 서버에 있는 정보를 가져오기 위해 설계된 방법이다. HTML, 이미지 등을 웹 클라이언트에게 가져올 때 사용된다.

- 서버로 전달할 수 있는 데이터 크기는 최대 2048 Byte까지이다.

- 서버로 데이터를 전송하는 경우 URL을 이용한다. 형식은 URI?“속성=&속성=... ”

- 요청 URL에 값들이 노출되기 때문에 보안 문제가 발생할 수 있다.

- 결과페이지를 북마크 또는 즐겨찾기에 저장할 수 있다.

- 웹 클라이언트들이 결과를 캐쉬에 저장할 수 있다.

 

POST 방식

 

- 서버로 정보를 전달하기 위해 설계된 방법이다. HTML 폼에 입력한 내용을 서버에 전달할 때 사용된다. 요청이 서버상에 존재하는 데이터들의 수정하는 경우 항상 사용되어야 한다.

- 서버에 전달할 수 있는 데이터 크기에 대한 제한이 없다.

- URL이 간결해진다.

- URL에 전달하려는 정보 값이 표시되지 않기 때문에 상대적으로 높은 보안성을 제공한다.

- 특별한 문자들 또는 업로드 파일 등을 전송할 수 있다.

- 웹 클라이언트들이 결과를 캐쉬에 저장할 수 없다.