keytool.exe -genkey -alias juheon -keyalg RSA -keypass 1234qwer -storepass 1234qwer -keystore juheon.jks keytool.exe -export -alias juheon -storepass 1234qwer -file juheon.cer -keystore juheon.jks keytool.exe -importkeystore -srckeystore juheon.jks -destkeystore juheon.key.p12 -deststoretype PKCS12 D:\Java\32bit\jdk1.5.0_22\jre\lib\security\cacert D:\Java\32bit\jdk1.5.0_22\bin\keytool.exe -import -alias tsasample -keystore D:\Java\32bit\jdk1.5.0_22\jre\lib\security\cacert -file D:\workspace\Servers\tsa-server-web-config\tomcat.cer keytool -import -alias somansa -keystore C:\Program Files\Java\jdk1.8.0_102\jre\lib\security\cacert -file c:\somansa.cer #인증서 생성 keytool -genkey -alias keyAlias -keyalg RSA -keypass changeit -storepass changeit –validity 9999 -keystore keystore.jks keytool -export -alias keyAlias -storepass changeit -file server.cer -keystore keystore.jks keytool -import -v -trustcacerts -alias keyAlias -file server.cer ...
JNDI를 이용하여 Database 연동을 해본다.
1. Oracle XE 설치
Oracel 11g XE를 다운받아 설치. Download URL 사용자 까지 생성.
2. Resource 등록
%CATALINA_HOME%\conf\server.xml 파일에 DB Resource를 GlobalNamingResources에 등록. 그래야 다른 context에서 참조해서 사용할 수 있다.
등록한 Global Resource를 사용할 context에서 Link 추가. 이번에는 context 설정을 server.xml 파일에 직접 추가한다.
위 설정까지 하고 나면 sample이라는 context에서는 "db"라는 JNDI 이름으로 DataSource를 사용 할 수 있다.
3. JNDI 사용
jsp 파일을 만들어서 JNDI를 사용하는 코드를 추가한다. Tomcat은 JNDI를 가져올때 Resource 명 앞에 "java:comp/env"를 붙여야 한다. 이는 WAS 밴더 별로 다르니 확인해야 한다.
4. DriverManager 사용
1. Oracle XE 설치
Oracel 11g XE를 다운받아 설치. Download URL 사용자 까지 생성.
2. Resource 등록
%CATALINA_HOME%\conf\server.xml 파일에 DB Resource를 GlobalNamingResources에 등록. 그래야 다른 context에서 참조해서 사용할 수 있다.
<GlobalNamingResources> <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users --> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> <Resource name="portal.ds" auth="Container" type="javax.sql.DataSource" username="tomato" password="tomato01" driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:xe" maxActive="8" maxIdle="4"/> </GlobalNamingResources>
등록한 Global Resource를 사용할 context에서 Link 추가. 이번에는 context 설정을 server.xml 파일에 직접 추가한다.
<Host name="localhost" appBase="webapps" ... >
...
<Context docBase="sample" path="/sample" reloadable="true">
<ResourceLink global="portal.ds" name="db" type="javax.sql.DataSource" />
</Context>
</Host>
위 설정까지 하고 나면 sample이라는 context에서는 "db"라는 JNDI 이름으로 DataSource를 사용 할 수 있다.
3. JNDI 사용
jsp 파일을 만들어서 JNDI를 사용하는 코드를 추가한다. Tomcat은 JNDI를 가져올때 Resource 명 앞에 "java:comp/env"를 붙여야 한다. 이는 WAS 밴더 별로 다르니 확인해야 한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.sql.*, javax.naming.*, javax.sql.*" pageEncoding="UTF-8"%>
<%
Context initCtx = new InitialContext();
//datasource name
DataSource ds = (DataSource) initCtx.lookup("java:comp/env/db");
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = ds.getConnection();
pstmt = conn.prepareStatement("select * from user_master");
rs = pstmt.executeQuery();
ResultSetMetaData metadata = rs.getMetaData();
int colcnt = metadata.getColumnCount();
for (int i = 1; i < colcnt + 1; i++) {
out.print(metadata.getColumnName(i) + ",");
}
out.print("<br>");
while (rs.next()) {
for (int i = 1; i < colcnt + 1; i++) {
out.print(rs.getObject(metadata.getColumnName(i)) + ",");
}
out.print("<br>");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
if (rs != null) {
try {
rs.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
%>
4. DriverManager 사용
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.sql.*, javax.sql.*" pageEncoding="UTF-8"%>
<%
Class.forName("oracle.jdbc.OracleDriver");
String id = "tomato";
String password = "tomato01";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = DriverManager.getConnection(url, id, password);
pstmt = conn.prepareStatement("select * from user_master");
rs = pstmt.executeQuery();
ResultSetMetaData metadata = rs.getMetaData();
int colcnt = metadata.getColumnCount();
for (int i = 1; i < colcnt + 1; i++) {
out.print(metadata.getColumnName(i) + ",");
}
out.print("<br>");
while (rs.next()) {
for (int i = 1; i < colcnt + 1; i++) {
out.print(rs.getObject(metadata.getColumnName(i)) + ",");
}
out.print("<br>");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
if (rs != null) {
try {
rs.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
%>
댓글
댓글 쓰기