전체 글

전체 글

    NSIS 2GB 용량 해결 (7z을 이용하여 해결!)

    NSIS 경우 대용량 파일을 배포할 때 오류가 난다. 그 이유는 NSIS 자체가 2GB 이상 배포를 지원하지 않기 때문이다. 인스톨 쉴드 같은 경우 분할 패키지 파일로 배포를 할 수도 있지만 NSIS는 이 마저도 지원하지 않아 다른 방법으로 해결하여야 한다. 7zip(7z) 방식을 활용하는 방법인데, 7zip은 LZMA 방식으로 다른 압축 방법에 비해 압축 효율이 높다. 7z으로 압축된 파일을 풀기 위해선 nsis7z plug-in을 이용해야 한다. https://nsis.sourceforge.io/Nsis7z_plug-in Nsis7z plug-in - NSIS Download Nsis7z_19.00.7z (450 KB) 7-Zip 19.00; x86 + x64; ANSI + Unicode Nsis7z..

    NSIS 64bit 32bit인지 확인 (레지스트리 값 확인 활용)

    ReadRegStr $0 HKLM "SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion" "ProgramFilesDir" ${If} $0 == '' 32비트일 때 실행할 명령어 입력 ${Else} 64비트일 때 실행할 명령어 입력 ${EndIf} 참고) https://yeo-computerclass.tistory.com/152 [NSIS] 파일 존재 확인 / 레지스트리 값 존재 확인 파일 존재 확인 IIfFileExists "$INSTDIR\AstelliaClient" Yes No Yes: NO: 레지스트리 값 존재 확인 ReadRegstr $0 "레지스트리 경로" "레지스트리 이름" $0에 해당 레지스트리 경로, 이름의 값이 저장되고 만약.. yeo-comp..

    NSIS 파일 존재 확인 / 레지스트리 값 존재 확인

    파일 존재 확인 IIfFileExists "$INSTDIR\AstelliaClient" Yes No Yes: NO: 레지스트리 값 존재 확인 ReadRegstr $0 "레지스트리 경로" "레지스트리 이름" $0에 해당 레지스트리 경로, 이름의 값이 저장되고 만약 존재하지 않다면 빈 값이 저장된다.

    NSIS 쉬운 문법 설명

    HM NIS Edit으로 설정한 것들 ;HM NIS Edit Wizard helper defines !define PRODUCT_NAME "PRODUCT 명" !define PRODUCT_VERSION "버전" !define PRODUCT_PUBLISHER "회사이름, Inc." !define PRODUCT_DIR_REGKEY "Software\Microsoft" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" SetCompressor lzma ;압축 방법 (EX. lzma: 7z) NSIS의 주석은 ;(세미콜론..

    NSIS 설치 및 HM NIS Edit 스크립트 마법사 사용하기

    NSIS 설치 및 HM NIS Edit 스크립트 마법사 사용하기

    NSIS 설치 https://nsis.sourceforge.io/Download 해당 링크로 접속하여NSIS 다운로드 및 설치 스크립트 마법사 설치: HM NIS Edit 😁 `HM NIS Edit`는 NSIS을 이용하여 설치 파일을 만들 때 보다 편리하게 해주는 TOOL입니다. HM NIS Edit 프로그램 다운로드 및 설치하기 http://hmne.sourceforge.net/ 해당 링크로 접속 후 빨간 박스를 클릭하여 다운로드 중간에 아래 와 같은 에러 박스가 뜬다면 [무시] 버튼을 클릭하고 설치를 이어 한다. HM NIS Edit 사용법 [HM NIS Edit] 실행 시켜주고 [스크립트 작성 마법사]를 클릭해준다. 설치 옵션을 선택해준다. `설치 아이콘`: ${NSISDIR}\Contrib\Gra..

    ASP.NET Core를 이용하여 웹 API 만들기

    환경 세팅 Linux에서 ASP.NET Core를 사용하여 웹 API 를 만들기 위해선 기본적인 환경세팅이 필요하다. https://yeo-computerclass.tistory.com/138 VirtualBox(버추얼박스) 이용해서 Ubuntu(우분투) 설치하기 VirtualBox 다운로드 https://www.virtualbox.org/wiki/Downloads 해당 링크로 접속한다. 자신의 OS에 맞는 패키지 다운로드 VirtualBox 환경설정 혹은 [파일] > [환경 설정] 누른 후 호스트 키 조합을 Shitf +.. yeo-computerclass.tistory.com https://yeo-computerclass.tistory.com/146 C#과 ASP.NET Core를 Ubuntu Lin..

    [Ubuntu] kakao mirror로 설정하여  패키지 다운로드 속도 올리기

    [Ubuntu] kakao mirror로 설정하여 패키지 다운로드 속도 올리기

    Ubuntu 환경에서 패키지 설치시 에러가 나는 경우도 있고, 속도가 느린 경우가 있다. 이를 해결하기 위한 방안으로 mirror 사이트를 변경해주는 것이 있다. sudo vi /etc/apt/sources.list 명령어로 살펴보면 다음과 같다. 주소가 "kr.archive.ubuntu.com"로 되어 있는 부분을 "mirror.kakao.com"으로 변경해보자. → :%s/kr.archive.ubuntu.com/mirror.kakao.com 명령어를 입력

    C#과 ASP.NET Core를 Ubuntu Linux에서 실행하기

    C#과 ASP.NET Core를 Ubuntu Linux에서 실행하기

    Visual Studio Code 설치 Ubuntu 설치 후 Firefox 웹 브라우저에 접속한다. www.visualstudio.com 에 접속한다. Visual Studio Code [Learn more] 클릭 Download 받기 다운로드 후 프로그램 설치를 하면되는데 만약 받아지지 않는다면, 터미널을 연 후 다음과 같은 명령어로 설치를 할 수도 있다. $ sudo apt-get install gdebi //GDebi 패키지 설치 $ sudo dpkg -i downloaded.deb $ sudo apt-get -f install .NET SDK 또는 .NET 런타임 설치 Firefox에서 dot.net에 접속 (자동적으로 dotnet.microsoft에 접속된다.) download를 클릭하고 자신의..

    [JDBC] 트랜잭션 처리

    [JDBC] 트랜잭션 처리

    트랜잭션의 역할은 DB의 모든 작업을 일관되게 처리해주는 것이다. 그럼 JSP에서 트랜잭션을 이용하여 어떻게 DB의 작업을 일관되게 처리하고, 작업 도중 발생하는 문제를 어떻게 처리하여 원점으로 되돌릴까? 트랜잭션의 명령에는 크게 COMMIT과 ROLLBACK이 존재한다. COMMIT은 처리한 작업을 모두 완료하도록 하는 명령이며 ROLLBACK은 처리한 작업을 모두 되돌리는 명령이다. 예를 들어 인터넷 쇼핑 결제를 생각해보자. 상품을 주문할 때, 주문이 제대로 이루어지기 위해서는 결제 테이블에 결제 정보가 입력되는 작업이 이루어져야 하고, 결제가 제대로 이루어지면 주문 목록 테이블에도 해당 주문 내용이 입력되어야 한다. 이 두 작업이 모두 성공해야 주문 처리가 정상적으로 되는 것이다. 하지만 만약 결제..

    ResultSet과 ResultSetMetaData (feat. 커서 이동 옵션)

    ResultSet과 ResultSetMetaData (feat. 커서 이동 옵션)

    ResultSet 예제 참고 https://yeo-computerclass.tistory.com/142?category=1269285 [JSP] JDBC 연동 (MySQL) - (2) 📌세팅 testDB에 test라는 table을 하나 생성해주었다. statementTest.jsp executeQuery(String sql) executeQuery() 메서드의 경우는 SELECT문을 실행할 때 사용된다. executeQuery() 메서드는 ResultSet 객체.. yeo-computerclass.tistory.com 📌ResultSet ResultSet이란 Statement 객체 또는 PreparedStatement 객체로 SELECT문을 사용하여 얻어온 레코드 값들을 테이블의 형태로 갖게 되는 객체이..

    Statement와 PreparedStatement의 차이점

    📌Statement Statement stmt = conn.createStatement(); stmt.executeUpdate("INSERT INTO test(id, name) VALUES (1,'여승철')"); stmt.executeUpdate("INSERT INTO test(id, name) VALUES (2,'여승철')"); stmt.executeUpdate("INSERT INTO test(id, name) VALUES (3,'여승철')"); Statement는 executeQuery()나 executeUpdate()를 실행하는 시점에 파라미터로 SQL문을 전달하는데, 이 때 전달되는 SQL문은 완성된 형태로 한눈에 무슨 SQL문인지 파악하기 쉽다. 하지만, SQL문을 수행하는 과정에서 매번 컴파일..

    [JSP] JDBC 연동 (MySQL) - (2)

    [JSP] JDBC 연동 (MySQL) - (2)

    📌테이블 생성 testDB에 test라는 table을 하나 생성해주었다. 📌실습 예제 예제로 살펴보기에 앞서 이에 쓰이는 클래스들의 문법을 간단히 살펴보도록 하겠다. 💡Statement / PreparedStatement executeQuery(String sql) executeQuery() 메서드의 경우는 SELECT문을 실행할 때 사용된다. executeQuery() 메서드는 ResultSet 객체를 반환한다. executeUpdate(String sql) 삽입, 수정, 삭제와 관련된 SQL문 실행에 사용된다. 수정된 레코드 수를 반환한다. Statement / PreparedStatement의 차이점: https://yeo-computerclass.tistory.com/143 Statement와 P..

    [JSP] JDBC 연동 (MySQL) - (1)

    [JSP] JDBC 연동 (MySQL) - (1)

    📌MySQL 설치 및 연동 http://www.mysql.com 에 접속하여 MySQL 다운로드 하고 설치한다. 환경 변수 설정 [시스템 환경 변수 편집] > [환경 변수] > [시스템 변수 - Path] 선택 > [편집] > "C:\Program Files\MySQL\MySQL Server 8.0\bin" 추가 MySQL에서 제공되는 유틸성의 실행 파일들을 "C:\Program Files\MySQL\MySQL Server 8.0\bin" 디렉토리에 진행되기 때문에 필요한 실행 파일들을 임의의 위치에서 실행하려면 bin 디렉터리 경로를 PATH 환경 변수로 설정해주어야 한다. MySQL 연동하기 "C:\Program Files (x86)\MySQL\Connector J 8.0" 디렉토리에 있는 MySQL..

    VirutalBox Ubuntu설치 버튼 안 보임 현상

    VirutalBox Ubuntu설치 버튼 안 보임 현상

    이와 같은 상태에서 아래 [다음] 버튼이 보이지 않아 설치를 원할히 진행 못하는 경우가 있다. 이는 해상도 관련한 문제이기 때문에 설정에 들어가 해상도를 바꿔주어야 한다. 일단 오른쪽 위에 [X] 를 클릭하여 화면을 끈다. 다음 화면과 같이 [settings] 버튼 클릭 3. 해상도를 다음 이미지를 참고해 바꿔주고 [Apply] 클릭하여 바꿔주면 된다. 4. 그 후 다시 화면에 있는 Install Ubuntu 20.~~.LTS를 클릭하여 다운을 이어 받아주면 된다. 정상적으로 아래에 [버튼]이 보임을 확인할 수 있습니다.

    VirtualBox(버추얼박스) 이용해서 Ubuntu(우분투) 설치하기

    VirtualBox(버추얼박스) 이용해서 Ubuntu(우분투) 설치하기

    VirtualBox 다운로드 https://www.virtualbox.org/wiki/Downloads 해당 링크로 접속한다. 자신의 OS에 맞는 패키지 다운로드 VirtualBox 환경설정 혹은 [파일] > [환경 설정] 누른 후 호스트 키 조합을 Shitf + Ctrl로 바꿔주면 된다. 처음 기본 값으로 RigthCtrl로 되어있지만, 작동이 제대로 안되는 경우도 있기 때문에 바꿔주는 것이 좋다. Ubuntu 설치하기 https://ubuntu.com/download#download 해당 사이트로 이동 다음 네모 박스를 클릭하면 자동적으로 다운로드 받아진다. Ubuntu를 위한 가상 머신 생성 이름 및 운영 체제 이름 설정을 해준다. 버전 같은 경우 Ubuntu (64-bit)을 선택해주는데 보통 p..

    [JSP] 메일 전송

    📌Java 메일 Java 메일이란 POP3, SMTP 등의 메일 프로토콜을 이용하여 메일을 주고 받을 수 있도록 제공해주는 API 이다. 웹사이트에서 메일을 확인하거나, 메일을 보내는 것은 메일 서버만 존재한다면 자바에서 제공하는 API를 통해서 얼마든지 구현이 가능하다. 📌Java 메일 환경 세팅 Java 메일의 API http://www.oracle.com/technetwork/java/javamail/index.html 에서 다운로드 받을 수 있다. [Downloads] [here 링크] [Downloads] [ 옵션 체크] [javamail_4_5.zip 클릭] [C:\jsp2.3 디렉터리를 선택] [javamail_4_5.zip 파일의 압축 해제] [mail.jar 파일 복사 후 WEB-INF\..

    [JSP] 썸네일 이미지 (JAI API)

    [JSP] 썸네일 이미지 (JAI API)

    썸네일은, 원래 이미지보다 작은 이미지를 뜻하는 말로, 작은 이미지를 이용하여 이미지 검색을 빨리 할 수 있는 일반 문자열의 인덱스와 비슷한 기능을 한다. 📌썸네일 이미지 실습 준비 JAI (Java Advanced Imaging) API 다운로드 및 설치 http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-client-419417.html 에서 다운로드 받을 수 있으며 옵션 버튼을 체크하고 다운로드 하여 C:\jsp2.3 디렉터리에 다운로드한다. 설치 후 디렉터리에서 jai_codec.jar, jai_core.jar 파일을 복사하여 자신이 만든 프로젝트 밑에 "WEB-INF\lib" 디렉터리..

    [JSP] 파일 업로드 (COS 라이브러리 사용)

    [JSP] 파일 업로드 (COS 라이브러리 사용)

    jsp에서 파일업로드를 지원하는 라이브러리는 다양한 것들이 있지만 대표적인 것이 cos.jar이다. 📌COS 라이브러리 다운로드 및 설치 COS 라이브러리 파일을 http://www.servlets.com/cos 에서 다운로드 할 수 있다. 위 링크에 접속한 다음 cos-22.05.zip(현재 버전) 을 다운로드 받으면 된다 다운 받은 후 lib 폴더로 들어가 cos.jar 파일을 이클립스 해당 프로젝트 lib(라이브러리 폴더)에 추가한다. 📌MultipartRequest 클래스 위 단계를 거치면 COS 라이브러리에서 파일 업로드를 담당하는 클래스인 MultipartRequest를 사용할 수 있다. 이 클래스는 COS 라이브러리에서 가장 핵심적인 역할을 하는 클래스이다. MultipartRequest클래..

    [JSP & Servlet] JSP웹 오류페이지 예외처리

    [JSP & Servlet] JSP웹 오류페이지 예외처리

    page 지시자, errorPage 속성 사용 JSP 페이지에서 에러를 처리하는 페이지를 지정하는 가장 간단한 방법은 page 지시자에서 errorPage를 지정하는 방법이다. 위와 같이 설정을 해놓으면 오류가 발생했을 때 errorProcessing.jsp 페이지가 출력되게 된다. errorProcessing.jsp 2: isErrorPage 속성 값이 "true"로 지정되어 있어야 createError.jsp 페이지에서 발생한 예외 객체를 10 줄처럼 exception 객체로 받아서 사용할 수 있다. 10: 발생된 exception 객체의 예외 클래스 이름을 출력하는 부분이다. 11~16: 주석을 한 이유는 IE브라우저에서는 에러 페이지가 인식되려면 페이지 크기가 513바이트 이상이 되어야 하기 때문..

    [Servlet] 쿠키(Cookie) - 사용자 화면 설정 정보 유지

    [Servlet] 쿠키(Cookie) - 사용자 화면 설정 정보 유지

    쿠키(Cookie)를 이용하여 특정 정보를 저장하고 그 저장한 정보를 쿠키 파일을 통해 유지시켜보자. 예제로는 한국어 페이지와 외국어 페이지를 선택하고 나중에 다시 접속했을 때 선택한 페이지가 유지되는 코드를 작성해볼 것이다. 예를 들어 영어 페이지를 선택하고 이것을 쿠키로 저장하게 되면 매번 설정하지 않고 처음 한 번만 설정하게 되면 쿠키 파일로 저장되어 다시 페이지를 설정하지 않아도 된다. 아래 링크 참고하면서 보면 이해하는데 도움됩니다. https://yeo-computerclass.tistory.com/131?category=1269285 [JSP & Servlet] 세션(Session)과 쿠키(Cookie) - 2 📌쿠키(Cookie)란? 쿠키(Cookie)란 클라이언트측에서 관리되는 정보를 의..

    [JSP & Servlet] 세션(Session) - 로그인 정보 유지

    [JSP & Servlet] 세션(Session) - 로그인 정보 유지

    일반 포탈 사이트에 로그인했을 경우 다른 사이트에 갔다가 돌아와도 로그인이 유지되는 경우를 본 적 있을 것이다. 그 이유는 세션(Session)을 사용하여 로그인 정보를 저장해 두었기 때문이다. 아래 링크 참고하면서 보면 이해하는데 도움됩니다. https://yeo-computerclass.tistory.com/130 [JSP & Servlet] 세션(Session)과 쿠키(Cookie) - 1 설명에 앞서 간단하게 세션과 쿠키에 대해서 정의하도록 하겠다. 세션(Session) : 클라이언트의 정보가 서버 컨테이너에 저장되는 기능 쿠키(cookie) : 클라이언트의 정보가 클라이언트에 저장되는 yeo-computerclass.tistory.com sessionLogin1.jsp sessionLogin2...

    [Servlet] 쿠키(Cookie)

    쿠키(Cookie)란? 쿠키(Cookie)란 클라이언트측에서 관리되는 정보를 의미한다. 세션과의 차이를 비교해보면 세션은 서버측에서 관리되지만 쿠키는 클라이언트에 정보가 저장된다. 또한 쿠키의 정보는 세션과 달리 브라우저를 종료한다고 해도 생존 기간이 지정되면 생존기간 동안 데이터가 사라지지 않는다. 쿠키(Cookie)는 하드디스크에 파일로 저장되기 때문에 그 파일이 남아있는 한 쿠키는 항상 유지된다. 하지만, 쿠키(Cookie)는 클라이언트에서 관리되기 때문에 보안적으로 매우 취약한 면을 가지고 있다. 하드디스크에 있는 쿠키 파일을 수정할 염려가 있기 때문이다. 쿠키를 파일에 저장하는 형태가 아닌 브라우저에 저장하는 형태(세션 쿠키)도 가능하지만 보안이 필요한 정보는 쿠키(Cookie)를 사용하지 않고..

    [Servlet] 세션(Session)

    [Servlet] 세션(Session)

    세션(Session)에 동작 흐름에 대한 자세한 설명은 아래에 포스팅했으므로 보고 오는 것이 이해하는데 더 도움될 것이다. https://yeo-computerclass.tistory.com/110?category=1269285 [JSP & Servlet] 세션(Session) 📌세션(Session) 이란? 세션의 개념을 이해하기 위해선 HTTP 프로토콜의 특성부터 이해해야 한다. HTTP 프로토콜의 대표적인 특징 중의 하나는 상태를 유지하지 않는 것이다. 즉, 클라이언트가 한 번 yeo-computerclass.tistory.com 세션(Session)이란? 정보가 서버의 메모리에 저장된다. 브라우저의 Session 연동은 Session Cookie를 이용한다. 브라우저 당 한 개의 Session이 주..

    BufferedReader / BufferWriter

    BufferedReader와 BufferedWriter는 버퍼를 이용해서 읽고 쓰는 함수이다. 이 함수는 Scanner와 System.out.println()과 기능이 유사하지만 버퍼를 이용하기 때문에 이 함수를 이용하면 입출력의 효율이 올라간다. (속도 측면에서도 훨씬 빠르다.) 그럼 왜 버퍼를 이용하면 속도가 빠를까? 간단하게 생각했을 때 중간에 버퍼를 거치기 때문에 더 느리지 않을까란 생각을 할 수도 있다. 예를 들어 설명하겠다. 모래 사장에서 모래를 퍼서 다른 구역으로 옮긴다고 했을 때 조금씩 여러번 옮기는 것보다 한 곳에 가득 채워서 (버퍼) 한 번에 나르는 것이 더욱 효율적일 것이다. 즉 버퍼를 사용하면 모아두었다가 한 번에 전송하기 때문에 효율적이다. buffer >데이터를 일시적으로 보관하..

    [JSP & Servlet] 자바빈(JavaBean)

    [JSP & Servlet] 자바빈(JavaBean)

    📌자바빈(JavaBean)이란? 회원 가입 요청에서 회원 한 명의 정보가 들어온다. 이 때 이름 따로 주소 따로 번호 따로 데이터를 다루게 되면 각 데이터의 관련성이 없으므로 회원정보라는 클래스를 설계하여 해당 클래스에 이름,주소,번호를 속성으로 정의하여 한 명의 회원 정보로 다루는 것이 보다 객체지향적인 코드이며 효율적인 코드라는 것은 알 것이다. 다른 예시를 들어보겠다. 웹 사이트를 개발할 때 디자이너와 프로그래머가 협업을 하여 개발을 할 것이다. 그런데 프로그래머가 JSP 페이지의 이곳 저곳에 자바 코드를 입력해놓으면 디자이너 입장에서는 해당 페이지를 해석하기에 어려움을 느낄 것이다. 자바빈을 사용하면 이에 도움이 될 수 있다. 자바빈(JavaBean)은 JSP 페이지의 디자인 부분과 비즈니스 로직..

    [JSP & Servlet] 템플릿 페이지

    📌템플릿 페이지를 사용하는 이유 웹 서핑을 하다보면 웹사이트 화면 구성에서 상단 혹은 좌측 메뉴는 고정되어 있고 메뉴에 따라 메인 페이지가 변경되는 경우를 본 적 있을 것이다. 이런 경우 템플릿 페이지를 사용하면 매우 효율적이다. 만약 템플릿 페이지를 사용하지 않으면 레이아웃을 변경할 경우 작성된 페이지를 모두 새로 작성해야 한다. 즉, 템플릿 페이지는 레이아웃을 구성하고 각 영역의 내용은 다른 페이지에서 가져오므로 전체 페이지 구성 수정시에도 이 템플릿 페이지만 변환시키면 되므로 매우 편리하다. 📌템플릿 페이지의 설계 템플릿 페이지의 설계에서 중요한 것은 레이아웃 구조를 결정하는 것이다. 템플릿 페이지 자체가 레이아웃 구조나 마찬가지이기 때문이다. 템플릿 페이지 설계를 위해서는 사이트 화면의 틀이 결정..

    [JSP] JSP 액션 태그

    📌액션 태그란? 액션 태그란 JSP 페이지에서 Java 코드 등의 스크립트 언어를 사용하지 않고도 ( HTML 태그 형태로 ) 다른 페이지의 서블릿이나 자바빈의 객체에 접근할 수 있도록 태그를 이용해 구현된 기능을 말한다. 액션 태그를 통해서 개발자는 페이지의 흐름을 제어하거나 자바빈의 속성을 읽고 쓰며 애플릿을 사용하는 등의 다양한 기능을 활용할 수 있다. 또한 이런 기능들은 스크립틀릿 등의 스크립트 요소(자바 코드)를 사용하지 않기 때문에 개발자는 JSP 페이지의 내부적인 프로그램 로직을 사용자로부터 감출 수가 있다. 이 말은 즉, 액션 태그를 사용하면 사용자에게 보여지는 프레젠테이션 부분과 사용자의 요청을 처리하는 비즈니스 로직 부분(프로그램 부분)을 분리하는 것이 가능하다는 것을 의미하며, 웹 프..

    [JSP] JSP 영역 객체 (application, session, request, pageContext)

    📌영역 객체란? JSP에서 제공하는 내장 객체들 중 pageContext, request, session, application 객체들은 해당 객체에 정의된 유효 범위 안에서 필요한 객체(데이터)들을 저장하고 읽어 들임으로써 서로 공유할 수 있는 특정한 영역을 가지고 있다. 예를 들어 session 객체의 속성으로 지정된 객체는 세션이 유지되는 한 서로 다른 JSP 페이지라 할지라도 공유해서 사용하는 것이 가능하다. 그렇게 때문에 이들 4가지 내장 객체를 따로 영역 객체라고도 부른다. 공유되는 데이터를 속성(Attribute)이라고 하며 속성을 공유할 수 있는 유효 범위를 영역(Scope)이라고 한다. application 객체 application 객체는 해당 웹 어플리케이션이 실행되고 있는 동안에 속..

    [JSP & Servlet] JSP 내장 객체

    [JSP & Servlet] JSP 내장 객체

    JSP 내장 객체란? JSP는 실행되면 웹 컨테이너에 의해 Servlet 클래스로 변환되어 사용자의 요청을 수행한다. JSP 내장 객체는 JSP가 Servlet으로 변화될 때 컨테이너가 자동으로 생성시키는 Servlet 멤버 변수를 말한다. JSP를 지원하는 웹 컨테이너에서는 Servlet을 구현하는데 공통적으로 요구되는 javax.servlet 패키지 아래 8개의 객체 예외처리를 위한 java.lang 패키지 아래 1개의 객체 를 제공한다. JSP 내장 객체 직접 확인해 보기 JSP 파일이 실행되면 웹 컨테이너에 의해 다음 두 파일이 서버에 저장된다. Servlet 클래스로 변환된 자바 소스 파일(_jsp.java) 클래스 파일(_jsp.class) Servlet 클래스를 살펴보면 JSP 페이지에서 우..

    [JSP] JSP 스크립트 요소 (선언문, 스크립틀릿, 표현식)

    JSP 스크립트 요소는 JSP 페이지 내에 자바의 코드를 삽입하기 위해 사용된다. 선언문, 스크립틀릿, 표현식 3 가지로 구분된다. 📌선언문 선언문은 JSP 페이지에서 Java 코드에서 말하는 멤버 변수와 메서드를 선언하기 위해 사용된다. 선언문을 사용해 선언된 변수는 JSP 파일이 웹 컨테이너에 의해 컴파일될 때 멤버 변수로 인식되기 때문에 JSP 페이지의 어느 위치에서도 해당 변수를 참조하는 것이 가능하다. 또한 중복 사용이 가능하다. 스크립틀릿 요소에서 변수를 선언하면 멤버 변수가 아니라 지역 변수로 인식되기 때문에 변수를 선언하기 이전의 위치에서는 참조가 불가능한 점이 선언문과 스크립틀릿의 가장 큰 차이점이라 할 수 있다. 선언문은 태그를 사용한다. 위 코드를 보면 str변수가 선언부 안에서 선언..