DataSource
Áö±Ý±îÁö °³¹ßÀÚ°¡ ±¸ÇöÇÑ Ä¿³Ø¼Ç Ç®¸µ °ü¸® Ŭ·¡½º¸¦ ÀÌ¿ëÇÑ JDBC ÇÁ·Î±×·¡¹ÖÀ» ÇÏ¿´½À´Ï´Ù.
JDBC 2.0 ºÎÅÍ javax.sql.DataSource ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏ¿© ÄÁÅ×À̳ʰ¡ °ü¸®ÇÏ´Â Ä¿³Ø¼Ç Ç®¸µ Ŭ·¡½º¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù.
Áö±ÝºÎÅÍ´Â DataSource ¸¦ »ç¿ëÇϱâ À§ÇÑ ¼³Á¤°ú ÇÁ·Î±×·¡¹Ö ¿¹¸¦ ¼³¸íÇÕ´Ï´Ù.
ÅèĹ¿¡¼ DataSource ¼³Á¤
¿ì¼± ¿ì¸®ÀÇ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Use Naming ¼³Á¤ÀÌ True À̾î¾ß ÇÕ´Ï´Ù.
È®ÀÎÇÑ ÈÄ ÅèĹ admin ÅøÀ» ÀÌ¿ëÇØ¼ ¾Æ·¡ ±×¸²¿¡ Á¦½ÃÇÑ ´ë·Î ÀÛ¾÷À» ÁøÇàÇÕ´Ï´Ù.



À§ ±×¸²Ã³·³ ¼³Á¤ ÈÄ server.xml ÆÄÀÏÀ» ¿¾î admin ÅøÀÌ º¯°æÀ» °¡ÇÑ ¾Æ·¡ ºÎºÐÀ» º¹»çÇÕ´Ï´Ù.
<Resource name="jdbc/orcl" type="javax.sql.DataSource" maxActive="4" maxIdle="2" username="scott" maxWait="5000" driverClassName="oracle.jdbc.driver.OracleDriver" password="tiger" url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
º¹»çÇÑ À§ÀÇ ³»¿ëÀ» À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ xml ÆÄÀÏ¿¡ º¹»çÇÕ´Ï´Ù. ( ¸¸ÀÏ ROOT ¾ÖÇø®ÄÉÀ̼ÅÀ̶ó¸é ROOT.xml )
¿¹¸¦ À§ÇØ ROOT.xml ÆÄÀÏÀº ¾Æ·¡¿Í °°½À´Ï´Ù.
ROOT.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context
docBase="C:/www/jsp/project"
reloadable="true">
<Resource
name="jdbc/orcl"
type="javax.sql.DataSource"
maxActive="4"
maxIdle="2"
username="scott"
maxWait="5000"
driverClassName="oracle.jdbc.driver.OracleDriver"
password="tiger"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
</Context>
¸¶Áö¸·À¸·Î web.xml ÆÄÀÏ¿¡ ¾Æ·¡ Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
web.xml
... <resource-ref> <description>Oracle Datasource example</description> <res-ref-name>jdbc/orcl</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> ...
Áö±Ý±îÁö ¸¸µç °Ô½ÃÆÇ¿¡¼ ÀÌ¿ëÇÑ Ä¿³Ø¼Ç Ç®¸µ ±â¹ýÀº ¾î´À °³¹ßÀÚ°¡ ¸¸µç Ä¿³Ø¼Ç Ç®¸µÀ» °ü¸®Çϴ Ŭ·¡½º¸¦ ÀÌ¿ëÇÑ °ÍÀ̾ú½À´Ï´Ù.
ÀÌÁ¦ ±âÁ¸ÀÇ
°Ô½ÃÆÇÀ» DataSource ¸¦ ÀÌ¿ëÇÑ °Ô½ÃÆÇÀ¸·Î ¼öÁ¤ÇÑ ÆÄÀÏÀ» Á¦°øÇϰڽÀ´Ï´Ù.
JSPÆÄÀÏ & ¼ºí¸´
À§ ÆÄÀÏÀ» ´Ù¿î·Îµå ¹Þ¾Æ¼
JSPÆÄÀÏÀº /board1/ µð·ºÅ丮¿¡ º¹»çÇÕ´Ï´Ù.
¼ºí¸´Àº ÄÄÆÄÀÏÇϰí web.xml ÆÄÀÏ¿¡¼ ¼ºí¸´ ¸ÅÇÎÀ» Ãß°¡ÇÕ´Ï´Ù.
ÄÄÆÄÀÏÇÒ ¶§ ÅèĹȨ µð·ºÅ丮/common/lib/naming-factory-dbcp.jar ÆÄÀÏÀ» Ŭ·¡½º ÆÐ½º¿¡ Ãß°¡ÇØ ÁÖ¾î¾ß ¿¡·¯°¡ ³ªÁö ¾Ê°Ô ÄÄÆÄÀÏ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¸ðµç °úÁ¤ÀÌ ³¡³µÀ¸¸é /board1/list.jsp ¸¦ ¹æ¹®ÇÏ¿© Å×½ºÆ®ÇÕ´Ï´Ù.
list.jsp
<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page import="java.sql.*,javax.sql.*,javax.naming.*,net.java_school.util.Log" %>
<html>
<head>
<script language="javascript">
function goView(num) {
var form = document.frmView;
form.num.value = num;
form.submit();
}
function goList( cpage ) {
var form = document.frmList;
form.cur_page.value = cpage;
form.submit();
}
function goWrite() {
var form = document.frmWrite;
form.submit();
}
</script>
</head>
<body>
<%
Log log = new Log();
request.setCharacterEncoding("euc-kr");
// ÆÄ¶ó¹ÌÅ͸¦ ¹Þ´Â´Ù.
int cur_page = (request.getParameter("cur_page") == null) ? 1 :
Integer.parseInt(request.getParameter("cur_page"));
String keyfield = request.getParameter("keyfield");
if ( keyfield == null ) keyfield="";
String key = request.getParameter("key");
if ( key == null ) key = "";
DataSource ds = null;
Context ic = null;
Connection conn = null;
PreparedStatement prepare = null;
ResultSet rs = null;
String query = null;
try {
ic = new InitialContext();
ds = (DataSource)ic.lookup("java:comp/env/jdbc/orcl");
} catch ( NamingException ne ) {
log.debug( ne.getMessage() );
}
int total_record = 0; //ÃÑ µ¥ÀÌÅÍ °³¼ö¸¦ ÀúÀåÇÒ º¯¼ö
try {
conn = ds.getConnection();
if ( keyfield.equals("") || key.equals("") ) {
query = "select count(*) from board";
} else {
query = "select count(*) from board where " + keyfield + " like '%" + key + "%'";
}
prepare = conn.prepareStatement( query );
rs = prepare.executeQuery();
rs.next();
total_record = rs.getInt(1);
} catch ( SQLException e ) {
} finally {
try {
if ( rs != null ) rs.close();
if ( prepare != null) prepare.close();
conn.close();
//log.close();·Î±×ÆÄÀÏÀÇ ÆÄÀÏ Ãâ·Â ½ºÆ®¸²À» ¹ÝȯÇÏÁö ¾Ê´Â´Ù.
} catch ( SQLException e ) {}
}
// Ãâ·Â¸®½ºÆ® ½ÃÀÛ ·¹ÄÚµå °è»ê
int start = (cur_page - 1) * 10 + 1;
// Ãâ·Â¸®½ºÆ® ¸¶Áö¸· ·¹ÄÚµå °è»ê
int end = start + 10 -1;
// ÇØ´ç ÆäÀÌÁöÀÇ ·¹ÄÚµå ¼ÂÀ» ±¸ÇÑ ÈÄ Ãâ·ÂÇÕ´Ï´Ù.
try {
conn = ds.getConnection();
if ( keyfield.equals("") || key.equals("") ) {
query = "SELECT num,subject,wdate " +
"FROM(SELECT ROWNUM R, A.* FROM(" +
"SELECT num,subject,wdate FROM board ORDER BY num DESC) A)" +
"WHERE R BETWEEN " + start + " and " + end;
} else {
query = "SELECT num,subject,wdate " +
"FROM(SELECT ROWNUM R, A.* FROM(" +
"SELECT num,subject,wdate FROM board " +
"WHERE " + keyfield + " LIKE '%" + key + "%' ORDER BY num DESC) A)" +
"WHERE R BETWEEN " + start + " and " + end;
}
prepare = conn.prepareStatement( query );
rs = prepare.executeQuery();
while( rs.next() ) {
int num = rs.getInt( "num" );
String subject = rs.getString( "subject" );
Date wdate = rs.getDate( "wdate" );
%>
<a href="javascript:goView('<%=num%>')"><%=subject%></a><%=wdate.toString()%><br>
<%
} // while statment end
} catch( SQLException e ) {
log.debug( "Error Source:board1/list.jsp : SQLException" );
log.debug( "SQLState : " + e.getSQLState() );
log.debug( "Message : " + e.getMessage() );
log.debug( "Oracle Error Code : " + e.getErrorCode() );
log.debug( "Query : " + query );
} finally {
try {
if ( rs != null ) rs.close();
if ( prepare != null) prepare.close();
conn.close();
log.close(); // ´õÀÌ»ó »ç¿ëÀÚ Á¤ÀÇ ·Î±×¸¦ »ç¿ëÇÏÁö ¾Ê¾Æµµ µÇ±â ¶§¹®¿¡
} catch ( SQLException e ){}
}
%>
<br>
<%
// Àüü ÆäÀÌÁö(total_page)¸¦ ±¸ÇÑ´Ù.
int total_page = 1;
if ( total_record != 0 ) {
if ( ( total_record % 10 ) == 0 ) {
total_page = ( total_record / 10 );
} else {
total_page = ( total_record / 10 + 1);
}
}
// ºí·Ï´ç ÆäÀÌÁö ¼ö¸¦ Á¤ÇÑ´Ù.
int page_per_block = 7;
// ÇöÀç ÆäÀÌÁö°¡ ¼ÓÇÑ ºí·Ï(block)À» °è»êÇÑ´Ù.
int block = 1;
if ( ( cur_page % page_per_block ) == 0 ) {
block = cur_page / page_per_block;
} else {
block = cur_page / page_per_block + 1;
}
// ºí·Ï¿¡¼ ¸µÅ©ÇÒ Ã¹¹øÂ° ÆäÀÌÁö¿Í ¸¶Áö¸· ÆäÀÌÁö¸¦ °è»êÇÑ´Ù.
int first_page = ( block - 1 ) * page_per_block + 1;
int last_page = block * page_per_block;
// ÃÑ ºí·Ï¼ö¸¦ °è»êÇÑ´Ù.
int total_block = 1;
if ( (total_page % page_per_block ) == 0 ) {
total_block = total_page / page_per_block;
} else {
total_block = total_page / page_per_block + 1;
}
// ¾µµ¥¾ø´Â ÆäÀÌÁö ¸µÅ©¸¦ ¸¸µéÁö ¾Ê±â À§Çؼ
if ( block >= total_block ) {
last_page = total_page;
}
// ÇöÀç block > 1 ¸é [ÀÌÀü]¸µÅ©¸¦ ¸¸µé°í first_page - 1 ÆäÀÌÁö¹øÈ£·Î ¸µÅ©
int my_page = 0;
if ( block > 1 ) {
my_page = first_page -1;
%>
<a href="javascript:goList( '<%=my_page%>' )">[ÀÌÀü]</a>
<%
} // if statment end
// ·çÇÁ¹®À» ÀÌ¿ëÇØ¼ ù¹øÂ° ÆäÀÌÁöºÎÅÍ ¸¶Áö¸· ÆäÀÌÁö±îÁö ¸µÅ©¸¦ ¸¸µç´Ù.
for ( int i = first_page; i <= last_page; i++ ) {
%>
<a href="javascript:goList( '<%=i%>' )">[<%=i%>]</a>
<%
} // for statment end
// block < total_block ¸é [´ÙÀ½]¸µÅ©¸¦ ¸¸µé°í last_page + 1 ¸¦ ÆäÀÌÁö¹øÈ£·Î ¸µÅ©
if (block < total_block ) {
my_page = last_page + 1;
%>
<a href="javascript:goList( '<%=my_page%>' )">[´ÙÀ½]</a>
<%
} // if statement end
%>
<br>
<form name="frmSearch" action="list.jsp" method="post">
<select name="keyfield">
<option value="subject" selected>Á¦¸ñ</option>
<option value="content">³»¿ë</option>
</select>
<input type="text" size="10" maxlength="30" name="key" />
<input type="submit" value="search" />
</form>
<a href="javascript:goWrite()">»õ±Û ¾²±â</a>
<form name="frmView" action="view.jsp" method="post">
<input type="hidden" name="num" />
<input type="hidden" name="cur_page" value="<%=cur_page%>" />
<input type="hidden" name="keyfield" value="<%=keyfield%>" />
<input type="hidden" name="key" value="<%=key%>" />
</form>
<form name="frmList" action="list.jsp" method="post">
<input type="hidden" name="cur_page" />
<input type="hidden" name="keyfield" value="<%=keyfield%>" />
<input type="hidden" name="key" value="<%=key%>" />
</form>
<form name="frmWrite" action="write_form.jsp" method="post">
<input type="hidden" name="cur_page" value="<%=cur_page%>" />
<input type="hidden" name="keyfield" value="<%=keyfield%>" />
<input type="hidden" name="key" value="<%=key%>" />
</form>
</body>
</html>
write_form.jsp
<%@ page contentType="text/html;charset=euc-kr" %>
<%
request.setCharacterEncoding("euc-kr");
String cur_page = request.getParameter( "cur_page" );
String keyfield = request.getParameter( "keyfield" );
String key = request.getParameter( "key" );
%>
<html>
<head>
<script language="javascript">
function goList() {
var form = document.frmList;
form.submit();
}
</script>
</head>
<body>
<h1>»õ±Û ¾²±â</h1>
<hr>
<form name="frmWrite" method="post" action="../servlet/BoardWriter1">
Á¦¸ñ : <input type="text" name="subject" size="45" /><br />
º»¹® : <textarea name="content" rows="10" cols="60"></textarea><br />
<input type="submit" value="Àü¼Û" />
<input type="reset" value="Ãë¼Ò" /><br />
</form>
<input type="button" value="¸ñ·Ï" onClick="javascript:goList()">
<form name="frmList" method="post" action="list.jsp">
<input type="hidden" name="cur_page" value="<%=cur_page%>" />
<input type="hidden" name="keyfield" value="<%=keyfield%>" />
<input type="hidden" name="key" value="<%=key%>" />
</form>
</body>
</html>
BoardWriter1.java
package net.java_school.board;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import net.java_school.util.*;
public class BoardWriter1 extends HttpServlet {
PreparedStatement prepare = null;
DataSource ds = null;
// ÀÔ·Â ¼ø¼ : ½ÃÄö½º , Á¦¸ñ, ¼Ò°³±Û, º»¹®
String query = "insert into board values ( seq_board_num.nextval, ?, ?, sysdate )";
public void init() throws ServletException {
try {
Context ic = new InitialContext();
ds = (DataSource)ic.lookup("java:comp/env/jdbc/orcl");
} catch ( NamingException ne ) {}
}
public void doPost( HttpServletRequest req, HttpServletResponse res )
throws ServletException, IOException {
req.setCharacterEncoding( "euc-kr" );
Log log = new Log();
String subject = req.getParameter( "subject" );
String content = req.getParameter( "content" );
Connection con = null;
try {
con = ds.getConnection();
prepare = con.prepareStatement( query );
prepare.setString( 1, subject ); //Á¦¸ñ ºÎºÐ
prepare.setString( 2, content ); // º»ºÐ ºÎºÐ
prepare.executeUpdate(); // Äõ¸® ½ÇÇà
} catch ( SQLException e ) {
log.debug( "Error Source:BoardWriter.java : SQLException" );
log.debug( "SQLState : " + e.getSQLState() );
log.debug( "Message : " + e.getMessage() );
log.debug( "Oracle Error Code : " + e.getErrorCode() );
log.debug( "Query : " + query );
} finally {
try {
prepare.close();
con.close();
log.close();
} catch ( SQLException e ){}
String path = req.getContextPath();
res.sendRedirect( path + "/board1/list.jsp" );
}
}
}
view.jsp
<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page import="java.sql.*,javax.sql.*,javax.naming.*,net.java_school.util.Log" %>
<html>
<head>
<script language="javascript">
function goList() {
var form = document.frmList;
form.submit();
}
function goModify() {
var form = document.frmModify;
form.submit();
}
function goDelete() {
var form = document.frmDelete;
form.submit();
}
</script>
</head>
<body>
<%
request.setCharacterEncoding( "euc-kr" );
// ÆÄ¶ó¹ÌÅ͸¦ ¹Þ´Â´Ù.
int num = Integer.parseInt( request.getParameter( "num" ) );
String cur_page = request.getParameter( "cur_page" );
String keyfield = request.getParameter( "keyfield" );
String key = request.getParameter( "key" );
Log log = new Log();
DataSource ds = null;
Context ic = null;
Connection conn = null;
PreparedStatement prepare = null;
ResultSet rs = null;
String query = null;
// Ä¿³Ø¼ÇÀ» ¾ò´Â´Ù.
try {
ic = new InitialContext();
ds = (DataSource)ic.lookup("java:comp/env/jdbc/orcl");
} catch ( NamingException ne ) {
log.debug( ne.getMessage() );
}
query = "select num,subject,content,wdate from board where num = " + num;
try {
conn = ds.getConnection();
prepare = conn.prepareStatement( query );
rs = prepare.executeQuery();
while ( rs.next() ) {
String subject = rs.getString( "subject" );
String content = rs.getString( "content" );
Date wdate = rs.getDate( "wdate" );
%>
<%=subject%></a><br>
<hr>
<%=content%><br>
<hr>
<%=wdate.toString()%><br>
<%
} // while statement end
} catch ( SQLException e ) {
log.debug( "Error Source:board1/view.jsp : SQLException" );
log.debug( "SQLState : " + e.getSQLState() );
log.debug( "Message : " + e.getMessage() );
log.debug( "Oracle Error Code : " + e.getErrorCode() );
log.debug( "Query : " + query );
} finally {
try {
if ( rs != null ) rs.close();
if ( prepare != null ) prepare.close();
conn.close();
log.close(); // ´õÀÌ»ó »ç¿ëÀÚ Á¤ÀÇ ·Î±× ÆÄÀÏÀ» ÀÌ¿ëÇÏÁö ¾ÊÀ¸¹Ç·Î
} catch ( SQLException e ){}
}
%>
<form name="frmModify" method="post" action="modify_form.jsp">
<input type="hidden" name="num" value="<%=num%>" />
<input type="hidden" name="cur_page" value="<%=cur_page%>" />
<input type="hidden" name="keyfield" value="<%=keyfield%>" />
<input type="hidden" name="key" value="<%=key%>" />
</form>
<form name="frmDelete" method="post" action="delete_confirm.jsp">
<input type="hidden" name="num" value="<%=num%>" />
<input type="hidden" name="cur_page" value="<%=cur_page%>" />
<input type="hidden" name="keyfield" value="<%=keyfield%>" />
<input type="hidden" name="key" value="<%=key%>" />
</form>
<form name="frmList" method="post" action="list.jsp">
<input type="hidden" name="cur_page" value="<%=cur_page%>" />
<input type="hidden" name="keyfield" value="<%=keyfield%>" />
<input type="hidden" name="key" value="<%=key%>" />
</form>
<br />
<input type="button" value="¸ñ·Ï" onClick="javascript:goList()" />
<input type="button" value="¼öÁ¤" onClick="javascript:goModify()" />
<input type="button" value="»èÁ¦" onClick="javascript:goDelete()" />
</body>
</html>
modify_form.jsp
<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page import="java.sql.*,javax.sql.*,javax.naming.*,net.java_school.util.Log" %>
<%
request.setCharacterEncoding( "euc-kr" );
// ÆÄ¶ó¹ÌÅ͸¦ ¹Þ´Â´Ù.
int num = Integer.parseInt( request.getParameter( "num" ) );
String cur_page = request.getParameter( "cur_page" );
String keyfield = request.getParameter( "keyfield" );
String key = request.getParameter( "key" );
Log log = new Log();
DataSource ds = null;
Context ic = null;
Connection conn = null;
PreparedStatement prepare = null;
ResultSet rs = null;
String subject = null;
String content = null;
String query = "select subject,content from board where num =" + num;
// Ä¿³Ø¼ÇÀ» ¾ò´Â´Ù.
try {
ic = new InitialContext();
ds = (DataSource)ic.lookup("java:comp/env/jdbc/orcl");
} catch ( NamingException ne ) {
log.debug( ne.getMessage() );
}
try {
conn = ds.getConnection();
prepare = conn.prepareStatement( query );
rs = prepare.executeQuery();
while( rs.next() ) {
subject = rs.getString( "subject" );
content = rs.getString( "content" );
}
} catch ( SQLException e ) {
log.debug( "Error Source:board1/modify_form.jsp : SQLException" );
log.debug( "SQLState : " + e.getSQLState() );
log.debug( "Message : " + e.getMessage() );
log.debug( "Oracle Error Code : " + e.getErrorCode() );
log.debug( "Query : " + query );
} finally {
try {
if ( rs != null ) rs.close();
if ( prepare != null) prepare.close();
conn.close();
log.close();
} catch ( SQLException e ){}
}
%>
<html>
<head>
<script language="javascript">
function goView() {
var form = document.frmView;
form.submit();
}
</script>
</head>
<body>
<h1>±Û ¼öÁ¤</h1>
<hr>
<form name="frm" method="POST" action="../servlet/BoardModifier1">
<input type="hidden" name="num" value="<%=num%>" />
<input type="hidden" name="cur_page" value="<%=cur_page%>" />
<input type="hidden" name="keyfield" value="<%=keyfield%>" />
<input type="hidden" name="key" value="<%=key%>" />
Á¦¸ñ : <input type="text" name="subject" value="<%=subject%>" /><br />
º»ºÐ : <textarea name="content" rows="10" cols="60"><%=content%></textarea><br />
<input type="submit" value="Àü¼Û" />
<input type="reset" value="Ãë¼Ò" />
</form>
<form name="frmView" method="post" action="view.jsp">
<input type="hidden" name="num" value="<%=num%>" />
<input type="hidden" name="cur_page" value="<%=cur_page%>" />
<input type="hidden" name="keyfield" value="<%=keyfield%>" />
<input type="hidden" name="key" value="<%=key%>" />
</form>
<br>
<input type="button" value="³»¿ëº¸±â" onClick="javascript:goView()" />
</body>
</html>
BoardModifier1.java
package net.java_school.board;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import net.java_school.util.Log;
public class BoardModifier1 extends HttpServlet {
DataSource ds = null;
PreparedStatement prepare = null;
String query = "UPDATE board SET subject = ?, content = ? WHERE num = ?";
public void init() throws ServletException {
try {
Context ic = new InitialContext();
ds = (DataSource)ic.lookup("java:comp/env/jdbc/orcl");
} catch ( NamingException ne ) {}
}
public void doPost( HttpServletRequest req, HttpServletResponse res )
throws ServletException, IOException {
req.setCharacterEncoding("euc-kr");
res.setContentType("text/html;charset=euc-kr");
PrintWriter out=res.getWriter();
Log log = new Log();
int num = Integer.parseInt( req.getParameter( "num" ) );
String cur_page = req.getParameter( "cur_page" );
String keyfield = req.getParameter( "keyfield" );
String key = req.getParameter( "key" );
String subject = req.getParameter( "subject" );
String content = req.getParameter( "content" );
Connection con = null;
try {
con = ds.getConnection();
prepare = con.prepareStatement( query );
prepare.setString( 1, subject ); //Á¦¸ñ ºÎºÐ
prepare.setString( 2, content ); // º»ºÐ ºÎºÐ
prepare.setInt( 3, num ); // ½ÃÄö½º primary key
prepare.executeUpdate(); // Äõ¸® ½ÇÇà
} catch ( SQLException e ) {
log.debug( "Error Source:BoardModifier1.java : SQLException" );
log.debug( "SQLState : " + e.getSQLState() );
log.debug( "Message : " + e.getMessage() );
log.debug( "Oracle Error Code : " + e.getErrorCode() );
log.debug( "Query : " + query );
} finally {
try {
if ( prepare != null ) prepare.close();
con.close();
log.close();
} catch ( SQLException e ){}
String path = req.getContextPath();
String formstr = "";
formstr = "<form name=frmView method=post action="+path+"/board1/view.jsp>";
formstr += "<input type=hidden name=num value='"+num+"' />";
formstr += "<input type=hidden name=cur_page value='"+cur_page+"' />";
formstr += "<input type=hidden name=keyfield value='"+keyfield+"' />";
formstr += "<input type=hidden name=key value='"+key+"' />";
formstr += "</form>";
out.println(formstr);
String scriptstr = "";
scriptstr += "<script language=javascript>";
scriptstr += "function goView() {";
scriptstr += " document.frmView.submit(); }";
scriptstr += "</script>";
scriptstr += "<script>goView();</script>";
log.debug(scriptstr);
out.println(scriptstr);
}
}
}
delete_confirm.jsp
<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page import="java.sql.*,javax.sql.*,javax.naming.*,net.java_school.util.Log" %>
<%
Log log = new Log();
// ÆÄ¶ó¹ÌÅ͸¦ ¹Þ´Â´Ù.
int num = Integer.parseInt( request.getParameter( "num" ) );
String cur_page = request.getParameter( "cur_page" );
String keyfield = request.getParameter( "keyfield" );
String key = request.getParameter( "key" );
DataSource ds = null;
Context ic = null;
Connection conn = null;
PreparedStatement prepare = null;
ResultSet rs = null;
String subject = null;
String content = null;
String query = "select subject,content from board where num = " + num;
// Ä¿³Ø¼ÇÀ» ¾ò´Â´Ù.
try {
ic = new InitialContext();
ds = (DataSource)ic.lookup("java:comp/env/jdbc/orcl");
} catch ( NamingException ne ) {
log.debug( ne.getMessage() );
}
try {
conn = ds.getConnection();
prepare = conn.prepareStatement( query );
rs = prepare.executeQuery();
while ( rs.next() ) {
subject = rs.getString( "subject" );
content = rs.getString( "content" );
}
} catch ( SQLException e ) {
log.debug( "Error Source:delete_confirm.jsp : SQLException" );
log.debug( "SQLState : " + e.getSQLState() );
log.debug( "Message : " + e.getMessage() );
log.debug( "Oracle Error Code : " + e.getErrorCode() );
log.debug( "Query : " + query );
} finally {
try {
if ( rs != null ) rs.close();
if ( prepare != null ) prepare.close();
conn.close();
log.close();
} catch ( SQLException e ){}
}
%>
<html>
<head>
<script language="javascript">
function goDelete() {
var form = document.frmDelete;
form.submit();
}
</script>
</head>
<body>
<h1>»è Á¦ È® ÀÎ</h1>
<hr>
Á¦¸ñ : <%=subject%><br />
º»¹® : <%=content%><br />
À§ ±ÛÀ» Á¤¸»·Î »èÁ¦ÇϰڽÀ´Ï±î?<br />
<input type="button" value="»èÁ¦" onClick="javascript:goDelete()" />
<input type="button" value="Ãë¼Ò" onClick="javascript:history.go(-1)" /></td>
<form name="frmDelete" method="post" action="../servlet/BoardDeleter1">
<input type="hidden" name="num" value="<%=num%>" />
<input type="hidden" name="cur_page" value="<%=cur_page%>" />
<input type="hidden" name="keyfield" value="<%=keyfield%>" />
<input type="hidden" name="key" value="<%=key%>" />
</form>
</body>
</html>
BoardDeleter1.java
package net.java_school.board;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import net.java_school.util.Log;
public class BoardDeleter1 extends HttpServlet {
DataSource ds = null;
PreparedStatement prepare = null;
String query = "DELETE board WHERE num = ?";
public void init() throws ServletException {
try {
Context ic = new InitialContext();
ds = (DataSource)ic.lookup("java:comp/env/jdbc/orcl");
} catch ( NamingException ne ) {}
}
public void doPost( HttpServletRequest req, HttpServletResponse res )
throws ServletException, IOException {
req.setCharacterEncoding("euc-kr");
res.setContentType("text/html;charset=euc-kr");
PrintWriter out=res.getWriter();
Log log = new Log();
int num = Integer.parseInt( req.getParameter( "num" ) );
String cur_page = req.getParameter( "cur_page" );
String keyfield = req.getParameter( "keyfield" );
String key = req.getParameter( "key" );
Connection con = null;
try {
con = ds.getConnection();
prepare = con.prepareStatement( query );
prepare.setInt( 1, num );
prepare.executeUpdate(); // Äõ¸® ½ÇÇà
} catch ( SQLException e ) {
log.debug( "Error Source:BoardDeleter.java : SQLException" );
log.debug( "SQLState : " + e.getSQLState() );
log.debug( "Message : " + e.getMessage() );
log.debug( "Oracle Error Code : " + e.getErrorCode() );
log.debug( "Query : " + query );
} finally {
try {
if ( prepare != null ) prepare.close();
con.close();
log.close();
} catch ( SQLException e ){}
String path = req.getContextPath();
String formstr = "";
formstr = "<form name=frmList method=post action="+path+"/board1/list.jsp>";
formstr += "<input type=hidden name=cur_page value='"+cur_page+"' />";
formstr += "<input type=hidden name=keyfield value='"+keyfield+"' />";
formstr += "<input type=hidden name=key value='"+key+"' />";
formstr += "</form>";
out.println(formstr);
String scriptstr = "";
scriptstr += "<script language=javascript>";
scriptstr += "function goList() {";
scriptstr += " document.frmList.submit(); }";
scriptstr += "</script>";
scriptstr += "<script>goList();</script>";
out.println(scriptstr);
}
}
}
- ´ÙÀ½ °Á : °èÃþÇü °Ô½ÃÆÇ
- ÀÌÀü °Á : °Ë»ö±â´É
