전체 글 56

[JSP] MVC 패턴을 위한 서블릿(Servlet)

서블릿(Servlet) MVC 패턴을 적용한 모델2 방식의 게시판을 제작하기 위해서 필요한 기술👉 JSP와 Servlet의 관계 https://pre-walkingdeveloper.tistory.com/93  서블릿의 개념 및 특징JSP가 나오기 전, Java로 웹 애플리케이션을 개발할 수 있도록 만든 기술이다. 서버 단에서 클라이언트의 요청을 받아 처리한 후 응답하는 역할을 한다.Servlet이 등장한 초기에는 JSP 템플릿 기술이 없었기 때문에 모든 웹 페이지의 프레젠테이션 로직도 서블릿에서 처리해야 했다. 주로 Servlet이 HTML 코드를 직접 생성하는 방식으로 View를 처리했다.java 클래스에서 HTML 코드를 작성할 수 있는지 오랜만에 자각하였다. 예를 들어, response.setCo..

Backend/JSP 2024.02.13

[JSP] EL(Expression Language)

EL(Expression Language) 표현언어 이전에는 불편하게 으로 값을 가져왔었다. 하지만 이제는 EL을 사용하여 백단의 데이터를 좀 더 간단하고 간편히 가져올 수 있다. 변수의 값을 표현식보다 편하게 출력할 수 있도록 한다. JSP의 기본 문법을 보완하는 역할을 하며 4가지 영역에 저장된 속성도 더 쉽게 읽을 수 있다.  모델 2 방식으로 웹 애플리케이션을 개발할 때 주로 사용한다. MVC를 이용한 서블릿에서 사용한다. 저장된 4가지 영역에 속성을 접근할 때 순서 JSP에서 사용하는 것이 불편하다. EL을 배우고 난 후 JSTL, 서블릿과 응용하여 좀 더 간결한 코드로 웹 구현하는 것이 목표이다. 객체 표현 방식 EL에서 객체를 표현할 때 . 이나 [ ]를 사용한다.${ param.name }..

Backend/JSP 2024.02.07

[JSP] 쿠키(Cookie)

쿠키란? 🍪 내가 만든 쿸이 클라이언트의 상태 정보를 클라이언트 PC에 저장할 수 있는 쿠키. 쿠키는 기본적으로 웹사이트가 방문자를 기억하는 수단이다. 언제 방문했는지, 어떤 페이지를 클릭했는지, 어떤 상품을 구매했는지 등 클라이언트에 대한 다양한 정보를 기록해 두었다가 이를 활용하여 사용자 맞춤 서비스, 광고, 웹 로그분석, 서비스 속도 개선 등을 할 수 있다. 상태 정보를 클라이언트에 key/value 형태로 저장했다가 다음 요청 시 저장된 쿠키를 함께 전송한다. 웹서버는 브라우저가 전송한 쿠키로부터 필요한 데이터를 읽어 올 수 있다. 쿠키 표준 제약(RFC 6265) - 3000개까지 만들 수 있다. - 쿠키 하나의 최대 크기는 4096byte이다. - 하나의 호스트나 도메인에서 최대 50개까지 만..

카테고리 없음 2024.02.01

[JSP] 내장 객체 | response, out, exception 메서드

response 요청에 대한 응답을 웹 브라우저로 보내주는 역할을 한다. 많이 사용되는 기능으로 redirect와 HTTP 헤더에 정보 추가하기가 있다. sendRedirect("주소")클라이언트의 요청을 "주소" 페이지로 보낸다.getStatus()HTTP 상태 코드를 반환한다. out 출력스트림으로 브라우저에 출력하기 위해 사용되는 객체이다. 과 EL이 훨씬 편리해서 많이 쓰지는 않는다. 하지만 스크립틀릿 안에 있는 변수를 브라우저로 출력해야 한다면 out 객체를 쓰는 것이 더 좋다.clearBuffer()버퍼를 비운다.getBufferSize()페이지에 설정된 버퍼의 크기를 가져온다.getRemaining()사용하고 남은 버퍼의 크기를 가져온다.print(내용)변수나 문자열을 브라우저에 출력한다.f..

Backend/JSP 2024.02.01

[JSP] 내장 객체 | Scope: page, request, session, application

page 영역 page 영역은 기본적으로 클라이언트 요청을 처리하는데 관여하는 jsp 페이지마다 하나씩 생성된다. 각 jsp 페이지는 page 영역을 사용하기 위한 pageContext 객체를 할당 받게 된다. pageContext 객체에 저장된 정보는 해당 페이지에서만 사용할 수 있고(동일한 페이지에서만 공유) 페이지를 벗어나면 소멸된다.include 지시어로 포함한 파일은 하나의 페이지로 통합되므로 page 영역이 공유된다.저장: pageContext.setAttribute(name, value)출력: pageContext.getAttribute(name)    request 영역 JSP에서 가장 많이 사용되는 객체이다. 브라우저가 전동한 요청 정보를 가지고 있다(정보 저장).html이나 jsp 파일..

Backend/JSP 2024.02.01

[JSP/Oracle] JSP 셋팅 순서

1. 윈도우에 jdk 11~17버전 설치(오라클 홈페이지, java) 2. 시스템 환경 변수 설정 1) 시작 우클릭 > 시스템 > 고급 시스템 설정 2) 시스템 변수 > 새로 만들기 > JAVA_HOME > jdk 설치 경로 3) path 추가 > %JAVA_HOME%bin (어디서나 javac 명령어 실행) 4) cmd > javac -version > 자바 버전 출력이 되어야 함 3. 톰캣 설치(9버전) 1) 크롬 > 톰캣 검색 > windows service installer > 9버전 다운 2) msi 버전: 설치용 3) zip: 압축 풀어 설치용 4) 설치 시 경로 변경할 것(d:\tomcat) > http/1.1 포트 변경(8000), 관리자 포트(8001) 4. 이클립스 설치 1) 크롬 > ..

Backend/JSP 2024.01.31

[JSP] JSP(Java Server Pages)에 관한 고찰(feat. 용어 정리)

안녕하세요, 오늘은 JSP를 진하게 알아가는 시간을 가져보도록 하겠습니다.부디 이 포스팅을 계기로 JSP와 가까운 사이가 되기를 바래봅니다.     JSP란? Java Server Pages(이하 JSP)는 동적인 웹 페이지를 개발하기 위한 웹 프로그래밍 기술입니다. 자바언어를 사용하여 서버 측에서 웹 페이지들을 생성해 웹 브라우저로 전송합니다.자바를 서버 개발 언어로 자리 잡게 해준 고마운 친구입니다.  본격적으로 JSP에 들어가기 전에 기본 용어에 대한 개념을 간단하되 명확히 짚고 넘어가도록 하겠습니다. 서버(Server)와 웹 서버(Web Server)  사전적 의미로는 '서비스(Service)'를 제공하는 사람이라는 뜻입니다. 그러나 현대에 이르러 인터넷 네트워크 환경에서 다른 컴퓨터에게 다양한 ..

Backend/JSP 2024.01.30

[JDBC/Oracle] ojdbc를 사용한 이클립스 연결 및 셋팅 순서

ojdbc.jar Oracle 데이터베이스에 접속하기 위한 Java Database Connectivity(JDBC) 드라이버  주요 기능:Oracle 데이터베이스와 Java 애플리케이션 간의 통신을 가능하게 합니다.다양한 버전이 존재하며, 특정 Oracle 데이터베이스 버전에 맞춰 사용해야 합니다.Oracle 특화 기능을 지원합니다 (예: PL/SQL, Oracle 특정 SQL 확장 등).사용법: Class.forName("oracle.jdbc.driver.OracleDriver");를 통해 드라이버를 로드한 후, DriverManager.getConnection("jdbc:oracle:thin:@hostname:port:dbname", "username", "password");를 통해 연결합니다. ..

Database/JDBC 2024.01.17

[JDBC] JDBC 사용을 위한 코드 작성 방법

자바와 데이터베이스 또는 JSP와 데이터베이스가 연동되기 위해서는 단계를 거쳐 접속과 해제를 진행해야 한다.일반적으로 JDBC를 이용하는 프로그램을 작성하려면 5단계의 과정으로 작성한다.java 파일과 jsp 파일에서 사용 가능하다. 하지만 jsp에서 사용하는 것은 공부할 때 배우고 넘어가는 MVC1 모델 방식이다. 1단계: JDBC 드라이버 로드프로그램에서 데이터베이스에 연결하기 위해서는 데이터베이스별 제조사(Vendor)가 제공하는 드라이버가 필요하다.드라이버를 설정하는 방법은 다음과 같다.Class.forName("드라이버명");데이터베이스 종류별로 드라이버명이 다르다.드라이버 소환술이다. - 드라이버 종류종류사용 방법Access(ODBC)Class.forName("sun.jdbc.odbc.Jdbc..

Database/JDBC 2024.01.16