블로그 이미지
progh2
지루한 것에서 벗어나 재미난 것 속으로 풍덩~☆

calendar

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

Notice

Recent Post

Recent Comment

Archive

2020. 3. 10. 05:41 기술문서창고

JSP에서 Java13 환경에서 오라클 데이터베이스 11gR2에 연동하기 위한 설정에 대한 글입니다. 기존 강좌대로 하면 Java13에서는 동작을 안해서 포스팅하게 되었습니다. 

 

출처 : 인프런 실전 JSP(renew ver.)

         JDBC (https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-jsp_renew/lecture/13671)


ojdbc6_g.jar 파일 위치

강좌에서는 JDBC를 사용하기 위해 ojdbc6_g.jar 라이브러리 파일을 jre 안의 lib\ext 디렉토리로 넣으라고 합니다. 일단 ojdbc6_g.jar 파일의 위치는 오라클 데이터베이스가 설치된 디렉토리 안에 있는데, 강의 내용과 같이 오라클 데이터베이스 XE 11gR2를 설치한 저의 경우는 다음과 같았습니다.

C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib

안에 ojdbc 파일이 3개~ 여기서 ojdbc6_g.jar를 쓰세요


JRE_LIB 위치 - JAVA13에서는?

Java13버전부터는 jre 디렉토리가 따로 설치되지 않아서 영상대로 복사하려다 폴더가 없어서 학생들이 문의를 많이 주었습니다. 원칙대로 하자면 여러 방법이 있겠습니다. (라이브러리를 프로젝트에 복사하기, 프로젝트 클래스패스에 오라클 ojdbc 경로 추가하기 등등...) 하지만 영상대로 따라서 한다면, JRE_LIB 단지 자바 프로그램이 실행될 때 참고하는 경로이기 떄문에 현재 동작하는 이클립스 프로젝트에서는 어떤 클래스패스를 JRE_LIB으로 참조하고 있는지 확인해보면 됩니다.

 

아래는 동영상에서의 JRE_LIB 디렉토리입니다. c:\Program Files\Java\jre1.8.0_151\lib\ 이라는 것을 알 수 있습니다.

c:\Program Files\Java\jre1.8.0_151\lib\ 보이시나요?

 

아래는 2020.03.10 현재 실행 중이 Java13이 설치된 이클립스에서 사용하는 경로 설정으로 c:\Program Files\Java\jdk-13.0.2\lib 이라는 것을 알 수 있습니다.

c:\Program Files\Java\jdk-13.0.2\lib 로 바뀌었어요. jdk가 jre 역할도 흡수한거죠.

사실 JDK 안에 JRE 파일들이 들어있기 때문에 JRE는 설치가 안되어도 상관은 없었다고 개인적으로 생각합니다만, 어쨌든 경로가 저기로 대체되었으니 영상과 같이 저 경로 안에 ext 폴더를 생성해서 파일을 넣어주면 되겠다고 생각했습니다만... 문제는 이 디렉토리 안에 파일들을 넣어도 무시가 되었습니다. 그래서 영상 및 많은 검색 결과에서 알려주는 "JRE 디렉토리 안에 lib\ext에 넣어라"는 Java13에서는 통하지 않았습니다.


Tomcat의 lib 디렉토리 안에 ojdbc6_g.jar 파일을 넣으세요

그러면 어디다가 넣어야 인식할까! 좀 더 검색해보니 Tomcat의 lib 디렉토리에 넣으라는 내용이 나왔습니다.

 

https://sawol-today.tistory.com/entry/ClassforNameoraclejdbcdriverOracleDriver-%EC%97%B0%EA%B2%B0-%EC%95%88%EB%90%A0-%EB%95%8C

 

Class.forName("oracle.jdbc.driver.OracleDriver"); 연결 안될 때

이클립스와 DB 연결 세팅 후 실행을 하는데, 위 사진과 같은 err가 발생합니다. java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 이런 로그가 나타나는데 Class.forName("oracle.jdbc.driver..

sawol-today.tistory.com

그래서 내용대로 tomcat의 lib 디렉토리 안에 넣고 실행하니 정상적으로 동작하는 것을 확인할 수 있었습니다. 톰캣 서버를 껐다 켜서 테스트 하는 것을 잊지말기 바랍니다. 

 

posted by progh2
2020. 3. 10. 04:02 기술문서창고

JSP에서 한글 UTF-8로 출력되게 하기 위한 설정들에 대한 글입니다.

출처 : 인프런 실전 JSP(rene2w ver.)

         한글처리 (https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-jsp_renew/lecture/13668)

01. Filter 인터페이스를 구현하여 사용하는 경우

다음과 같이 Filter 인터페이스를 구현한 클래스 파일을 만듭니다. doFilter 안에 들어있는 3줄이 핵심으로 request는 UTF-8로 변경하고, response는 text/html;charset=UTF-8을 적용합니다. 아쉽게도 response에서 request처럼 캐릭터셋만 바꾸게 하면 한글이 깨졌습니다. ContentType으로 지정해주어야 합니다. 

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class TempFilter implements Filter {
	@Override
	public void destroy() {
		System.out.println("----filter destroy() ----");	
	}

	@Override
	public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
			throws IOException, ServletException {
		System.out.println("----filter doFilter() ----");
		req.setCharacterEncoding("UTF-8");
		res.setContentType("text/html; charset=UTF-8");
		chain.doFilter(req, res);		
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		System.out.println("----filter init() ----");
	}
}

그리고 다음과 같이 web.xml 에 위에서 만든 필터 클래스 설정을 추가합니다. (패키지가 있다면 filter-class에 패키지명도 포함해서 넣어주세요). 필터 매핑의 url-pattern을 통해서 특정 부분에만 필터가 동작하도록 할 수 있습니다. 서버를 건들지 않기 때문에 깔끔(?)합니다.

  <filter>
  	<filter-name>tempFilter</filter-name>
  	<filter-class>TempFilter</filter-class>  	
  </filter>
  <filter-mapping>
  	<filter-name>tempFilter</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>

02. 기존 옛날 방법(모든 파일마다 세팅해줘야 함)

GET

Tomcat 서버의 server.xml 에 <Connector> 태그에 URIEncoding="UTF-8" 속성을 추가합니다.

<Connector URIEncoding="UTF-8" connectionTimeout ... >

POST

JSP 파일 내에서는 page 지시어 속성 및 meta 태그 charset 속성을 변경합니다. 그리고 만약 넘어온 get/post 파라미터를 가져다 쓸 경우 request의 캐릭터인코딩 속성도 같이 변경해줍니다. 각각의 파일마다 모두 들어가야 합니다.

<% request.setCharacterEncoding("UTF-8"); %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

Servlet에서는 아래와 같이 인코딩들을 세팅해줍니다. 각각의 서블릿 파일이 모두 이 코드를 추가해야 합니다.

request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");

 

posted by progh2
2020. 3. 8. 03:19 기술문서창고

JSP 개발환경 구축하기 - JDK 13, Eclipse EE, Tomcat 8.5.x 설치 동영상입니다.

 

학생들이 인프런 JSP 강의(https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-jsp_renew)를 보는데 오라클, 이클립스 사이트가 많이 바뀌어 참고용으로 만든 영상입니다.

 

https://www.youtube.com/watch?v=ClbSs2Pg05o

 

posted by progh2
2020. 3. 8. 01:04 기술문서창고

들어가며..

https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-jsp_renew/

 

실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌 - 인프런

기본 개념부터 차근차근 설명하며, 실제로 웹환경에서 구동되는 여러 어플리케이션을 만드는 실습을 함으로서 실전적인 지식을 쌓을 수 있도록 도와줍니다. 이 강좌를 모두 이행하기만 하면, 프로그래머로서 바로 인력으로 투입될 수 있습니다. 초급 중급 웹 개발 서버 프레임워크 및 라이브러리 프로그래밍 언어 Back End Java JSP 온라인 강의 실전 JSP

www.inflearn.com

위 인프런 강좌를 듣다 보면 강좌 내에서 Oracle XE 11gR2 버전과 SQL Developer를 사용합니다. 

그런데 문제는 세월이 많이 지나서(?!) Oracle XE를 다운받으러 가면 최신 버전이 다운로드 됩니다.

 

또한 SQL Developer도 무심코 다운받으면 JDK8 미포함 버전을 받을 수 있는데, 이녀석은 최신 JDK(2020.03 현재 13)에서 동작하지 않습니다. 8과 11버전에서만 돌아간다네요.

제자가 보내준 에러 메시지입니다. 해당 JDK에만 있는 특정 클래스를 썼나봅니다.

 

그래서 이를 해결하기 위한 방법을 아래에 정리했습니다.

 

Oralce Database XE 11gR2

Oracle Database XE 11gR2 발견!

다운로드 페이지 : https://www.oracle.com/database/technologies/xe-prior-releases.html

 

SQL Developer 

with JDK 8 included 버전을 받으세요!!
JDK13이 설치된 환경에서 잘 동작함을 확인했습니다. 압축만 풀고 실행하면 되니까 편해요~

다운로드 페이지 : https://www.oracle.com/kr/tools/downloads/sqldev-v192-downloads.html

 

즐거운 실습 시간이 되었으면 좋겠습니다~ 

posted by progh2
prev 1 next