본문 바로가기

Study/Java

(7)
org.apache.jsp.index_jsp 에러 해결을 위한 삽질 업무를 하며 Jetty를 켰을 때 평소처럼 URL을 입력했는데 메인 페이지가 나오지 않고 에러 페이지가 나왔다. 이 웹 애플리케이션 파일(Jar 형식)을 윈도우 환경에서 실행하면 문제가 없는데 리눅스(CentOS)환경에서 실행하면 문제가 나타났다. 우선 HTTP 500에러는 Internal Server Error를 나타내는데 에러 내용 그대로 서버에 문제가 있다는 것이다. HTTP ERROR 500 에러 페이지에 출력된 에러 메시지를 보니 Caused by와 함께 상세 내용이 나와있었다. java.lang.ClassNotFoundException: org.apache.jsp.index_jsp 클래스 파일이 없다는것인데 이 페이지는 내가 만든 것이 아니다. 에러코드 원본 Problem accessing /..
[Java] 정규표현식을 이용한 파일구분자 바꾸기 프로그램 실행에 필요한 설정 정보를 코드가 아닌 외부 파일에서 읽어오는 경우가 있다. 예를 들어 영상 편집프로그램을 만든다고 할 경우 영상 배경음을 불러오는 기능이 필요하다. 파일의 경로를 설정하는 방법은 두 가지가 있다. 절대 경로 : 최상위 디렉터리(루트 디렉터리)부터 목표지점 까지의 경로를 나타내는 방법 상대 경로 : 특정 지점부터 목표지점까지의 경로를 나타내는 방법 서울시청을 가야하는 상황을 생각해보자. 절대 경로는 '서울 중구 세종대로 110'이다. 내가 어디에 있는지에 상관없이 저 주소를 향해 걸어가면 서울시청에 갈 수 있다. 상대경로는 내가 지금 있는 곳에서 목표지점까지의 상대적인 경로를 나타낸 것이다. 내가 지금 지하철을 타고 시청역에 도착한 상태다. 여기서 서울 시청을 가려면 4번출구를 ..
자바 웹 프로젝트 디렉토리 구성 - src : 웹 프로젝트 소스코드와 리소스가 저장되는 곳이다. - src/main : 웹 프로젝트를 서버에서 실행할 때 사용되는 소스코드와 리소스들이 저장되는 곳이다. - src/main/java : 자바 소스코드가 저장되는 곳이다. 프로젝트가 컴파일 될 때 이 경로에 저장된 .java 확장자의 자바 소스코드가 컴파일 되고 .class 파일이 생성되며 JVM에서 실행 가능한 형태로 변환된다. - src/main/resources : 프로젝트가 컴파일 될 때 사용하는 파일들이 저장되는 곳이다. 라이브러리, 프레임워크에서 사용하는 xml, yaml, properties같은 파일들이 이 곳에 저장된다. - src/main/webapp : 웹 프로젝트에서 사용하는 정적(static)파일인 html, css, ..
Iterator 와 For-each 비교 Iterator 이터레이터(Iterator)는 자바 컬렉션 프레임워크(Collection Framework)에 속해있는 인터페이스 중 하나. Iterato를 구현한 클래스는 컬렉션 객체를 탐색, 데이터에 접근, 삭제할 수 있다. Iterator 예제 public class Tester { public static void main(String[] args) { List list = new ArrayList(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); list.add(6); System.out.println("List: "); Iterator listIterator = list.iterator(); // Iterator 타입 변수..
Oracle JDBC 예제 코드(PrepareStatement) public class JDBCTest { private static String query = "SELECT name, id, telephone FROM employee WHERE user_name = ?"; // 형식 jdbc:oracle::@:: // SID인 경우 private static String URL = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; // Service Name인 경우 private static String URL = "jdbc:oracle:thin:@127.0.0.1:1521/orcl"; private static String USER = "ORACLE_USER"; private static String PWD = "ORACLE_PWD"; pu..
자바스크립트로 서블릿 요청(Request)하기 일반적으로 HTML의 form 태그를 이용해서 서블릿을 호출한다. 하지만 아이디, 비밀번호 검증 등 프론트엔드 영역에서 추가 동작을 필요로 하는 경우가 있다. 이 경우 자바스크립트를 이용해 서블릿을 호출하는 순서를 변경할 수 있다. 먼저 HTML의 form 태그에서 호출하는 대신 onClick 속성을 이용해 함수를 호출한다. 호출한 함수에서 필요로 하는 동작(아이디, 비밀번호 입력 여부)을 수행한 뒤 자바스크립트의 document 객체를 활용해서 서블릿을 호출한다. login_form.html 아이디 : 비밀번호 : LoginServlet.java package com.study { @WebServlet("/login") public class LoginServlet extendhs HttpServlet..
세 가지 모듈(Module) - Java 9 Module, IntelliJ IDEA Module, Module of Build System Java 9의 모듈과 IntelliJ IDEA에서 모듈, Maven, Gradle과 같은 빌드 도구에서 모듈은 서로 다른 개념이다. 자바 모듈 - 자바 9에서는 클래스들을 분류하는 방법으로 패키지 외에 Jigsaw 프로젝트로 불리는 자바 모듈 시스템(JPMS, Java Platform Module System)이 추가되었다. Jigsaw 프로젝트는 JEP 200: The Modular JDK에서 처음 논의가 시작 되었는데 모듈 시스템은 클래스와 JVM을 물리적으로 묶기 위한 형식을 정의한다. 모든 JVM마다 제공되던 표준 클래스들은 이제 자바 모듈로 묶어서 제공된다. JEP 200: The Modular JDK JEP 200: The Modular JDK Summary Use the Java Platfo..