1.환경 설정
OS
-Linux - Ubuntu 23.04
웹 서버 구조
-JSP(Jakarta Server Pages)
→HTML내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 서버 사이드 스크립트 언어
-Apache Tomcat
→서블릿 컨테이너만 있는 웹 애플리케이션 서버
→톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 JSP와 서블릿 실행 환경을 제공하는 일종의 컨테이너
→일반적인 Apache 서버만으로는 JSP를 해석하지 못하므로 Tomcat을 함께 사용
-Oracle DB
→Oracle 사의 관계형 데이터베이스
*Oracle DB와 JAVA 설치 참고 블로그
-Oracle DB 설치시 사용했던 정보들을 꼭 기록해두세요!!!!!
Ubuntu에 Java, Oracle, Tomcat 구축하기
모의해킹 대상 취약한 게시판을 개발한다.
velog.io
*Apache Tomcat 설치 및 기본적인 이클립스 설정
https://brilliantdevelop.tistory.com/29
JSP Tomcat설치, Dynamic Web Porject 만들기 (3)
Tomcat 설치 jsp를 실행하기 위해 Tomcat을 설치해보자. 리눅스 기준으로 설명하지만 Tomcat자체는 install파일이 아니라 압축파일을 풀기만 하는거라 어떤 운영체제에서든 크게 다를 건 없을것입니다.
brilliantdevelop.tistory.com
Apache Tomcat 구동
-Apache Tomcat은 설치 방법에 따라 구동 방식이 상이할 수 있으나, 보통 아래 두 가지 방식으로 실행합니다. 물론 Eclipse를 사용하면 아래 명령어로 실행하지 않아도 됩니다.
-굳이 적어둔 이유는 가끔 Eclipse 서버 연결과 충돌되는 경우가 있어서, 문제 발생 시 서버가 따로 구동되어 있는지 등을 확인할 때 사용합니다.
-첫 번째 방식은 '설치 경로/bin/startup.sh' 를 실행하는 방식입니다.
#Tomcat Server ON
$ cd [installation_path]/bin
$ sh startup.sh
#Tomcat Server OFF
$ cd [installation_path]/bin
$ sh shutdown.sh
-두 번째 방식은 service 를 이용한 방식입니다.
#Tomcat Server ON
$ service tomcat9 start
#Tomcat Server OFF
$ service tomcat9 stop
#Print Info
$ service tomcat9 status
Apache Tomcat 구동 확인
-기본적으로 localhost:8080 으로 접속하면 Apache tomcat 버전마다 작동이 된다는 화면을 출력합니다.
-버전이나 방식에 따라 화면은 조금씩 차이가 있을 수 있습니다.
-구동을 확인했으니, 파일을 web root 아래에 작성하여 접속이 가능한지 확인해보겠습니다.
$ cd /var/lib/tomcat9/webapps/ROOT #web root 경로로 이동
$ sudo vi test.jsp
//test.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP Test Page</title>
</head>
<body>
<h1>hi</h1>
<p>Current Server Time: <%= new java.util.Date() %></p>
</body>
</html>
-localhost:8080/test.jsp 로 접속하여 파일에 대한 접근과 jsp 해석이 정상적으로 수행되고 있는 것을 확인할 수 있었습니다.
2.Eclipse 관련 에러
Servers 탭, Run On Server 가 없어요.
*https://hgserver.tistory.com/19
이클립스 > Servers 탭, Run On Server가 없는 경우 어떻게?
1. Servers 탭이 없는 경우 Tomcat Server를 추가하려는데 Servers 탭이 보이질 않는다. 이클립스는 Window > Show View에서 필요한 창을 구성할 수 있다. 메뉴에 보이지 않는 것은 Other..를 클릭해 추가해줄 수
hgserver.tistory.com
-해당 블로그 글로 해결했습니다. 저같은 경우 software가 설치되어 있지 않아 설치 후에는 바로 사용할 수 있었습니다.
8080번 포트 사용을 할 수 없다고 합니다.
Apache Tomcat 포트 오류 해결하기 'Starting Tomcat v8.0 Server at localhost' has encountered a ploblem. Port 8080 require
Port 8080을 이미 사용 중이라는 오류창이 뜨므로 오라클에서 8080을 사용하고 있는 것 방법 1, 2, 3이 있는데 저는 방법 1, 2 모두 안돼서 3으로 해결했습니다. 일단 방법 3가지를 먼저 소개할게요! 방
aspring.tistory.com
-위 블로그의 3번 방법(연결할 포트 자체를 8081로 변경)으로 해결했습니다. 처음 몇번은 프로세스를 강제로 종료시키거나 tomcat이 구동중이어서 명령어로 종료해서 해결했었는데 어느순간부터 사용중인 프로세스가 보이지 않거나 종료가 제대로 되지 않아서 포트 자체를 변경했습니다.
Servlet에 문제가 있는 것 같아요. (DB, Servlet 구동 자체에 대한 문제)
*https://ldgeao99-developer.tistory.com/249
[7주차] 2. ojdbc.jar 가져와 Java와 DB 연결하기(프로젝트 생성 후 1번씩은 꼭)
1. Project 폴더 - Properties 클릭 2. Java Build Path - Libraries - Classpath - Add External JARs... 3. 오라클 설치당시 선택했던 경로에 가서 아래의 파일 선택 & Apply and Close 나는 당시에 오라클을 C\Oracle 에 설치해
ldgeao99-developer.tistory.com
-Java 파일 자체가 실행되지 않거나, 'ojdbc 연결이 되지 않음' 등과 같은 에러 메시지가 나온 경우 위 방법으로 해결할 수 있었습니다.
-저같은 경우 다행이 위 블로그의 경우에 해당되었지만 생각보다 상황이 다양하므로 ojdbc 를 옮기지 않은 곳이 있는지 등을 체크해보시는 것을 추천드립니다.
3.데이터 베이스 설정
(1)데이터 베이스 접속
$ sqlplus sys as sysdba
...
Enter password: #오라클 DB 설정 때 작성했던 비밀번호를 입력
Connected to:
Oracle Database ...
SQL>
-기본적으로 sqlplus sys as sysdba 혹은 sqlplus '/as sysdba' 로 접근할 수 있습니다.
-비밀번호가 기억이 나지 않는다면
sudo /etc/init.d/oracle-xe configure
-비밀번호는 오라클 DB 설치 후, 위의 설정을 진행할 때 포트 설정과 비밀번호를 입력하는데 그때 사용한 비밀번호입니다.
(2)사용자 생성
CREATE USER myuser IDENTIFIED BY mypassword;
-myuser와 mypassword는 각 사용자 별로 변경합니다.
(3)테이블 스페이스 생성
CREATE TABLESPACE mytablespace
DATAFILE 'mytablespace.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
-테이블 스페이스란 데이터 베이스 관련 데이터들을 저장하는 곳입니다.
-위 구문은 100mb 저장공간을 할당하고 부족하다면 10mb 씩 더 할당한다는 의미입니다.
-mytablespace 와 mytalbespace.dbf는 각각 '테이블 스페이스 명'과 '테이블 스페이스 경로'로 작성해주세요.
(4)사용자에게 테이블 스페이스 quota와 기본 권한을 부여
ALTER USER myuser QUOTA UNLIMITED ON mytablespace;
GRANT CONNECT, RESOURCE TO myuser;
-생성한 테이블스페이스 mytablespace에 데이터 객체를 생성할 수 있도록 권한을 부여합니다.
-myuser 사용자가 데이터베이스에 연결하고 자원을 생성할 수 있도록 권한을 부여합니다.
(5)테이블 생성
$ sqlplus myuser/mypassword
-새로운 명령어 프롬프트에서 생성한 사용자로 로그인합니다.
CREATE TABLE usertable (
username VARCHAR2(50) NOT NULL,
password VARCHAR2(255) NOT NULL
);
-생성된 순서를 나타내는 idx와 user_id, pass 컬럼을 가진 테이블 users를 생성합니다.
create sequence auto_inc
increment by 1 # 1씩 증가
start with 1 # 시작값 1
minvalue 1 # 최솟값 1
nomaxvalue # 최댓값 제한 없음
nocycle
nocache;
-oracle database는 auto increase를 따로 제공하지 않기 때문에 시퀸스라는 것을 생성하여 auto increase 역할을 하도록 할 것입니다. 시작값과 최솟값을 1로, 최댓값을 제한을 두지 않게하여 auto_inc라는 시퀸스를 생성하였습니다. 이건 나중에 게시글 작성때 사용합니다.
*auto increase 제작 참고 블로그: https://velog.io/@inmo/Oracle-DB-Table-%EC%83%9D%EC%84%B1
(6)테스트 데이터 삽입
INSERT INTO user_table (username, password) VALUES ('test', 'test');
-test 데이터로 id가 'test', pw가 'test'인 데이터를 삽입했습니다.
'project > JSP+Oracle_DB+Apache_Tomcat' 카테고리의 다른 글
[JSP/OracleDB/Tomcat/Eclipse]DB 연결과 servlet url mapping (0) | 2024.12.30 |
---|