°Ô½ÃÆÇ ¿¬½À
¿¬½À¹®Á¦
(¹®Á¦ 1) JDBC ¿¡¼ ½Ç½ÀÇÑ GetEmp.java ¼ø¼ö ¾ÖÇø®ÄÉÀ̼ÇÀ» ¼ºí¸´À¸·Î ±¸ÇöÇϱâ
GetEmpServlet.java
package example;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class GetEmpServlet extends HttpServlet {
private String DB_URL;
private String DB_USER;
private String DB_PASSWORD;
public void init() throws ServletException {
//¼³Ä¡°úÁ¤¿¡¼ ÀÚ½ÅÀÌ Á¤ÇÑ Á¤º¸¿¡ ¸Â°Ô ¹Ù²Û´Ù.
DB_URL = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
DB_USER = "scott";
DB_PASSWORD = "tiger";
try {
//µå¶óÀ̹ö¸¦ ·ÎµùÇÕ´Ï´Ù.
Class.forName( "oracle.jdbc.driver.OracleDriver" );
} catch ( ClassNotFoundException e ) {
e.printStackTrace();
}
}
public void doGet( HttpServletRequest req, HttpServletResponse res )
throws IOException, ServletException {
res.setContentType( "text/html;charset=euc-kr" );
PrintWriter out = res.getWriter();
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String sql = "select * from emp";
try {
//µ¥ÀÌÅͺ£À̽ºÀÇ ¿¬°áÀ» ¼³Á¤ÇÕ´Ï´Ù.
con = DriverManager.getConnection( DB_URL, DB_USER, DB_PASSWORD );
//Statement¸¦ °¡Á®¿Â´Ù.
stmt = con.createStatement();
//SQL¹®À» ½ÇÇàÇÕ´Ï´Ù.
rs = stmt.executeQuery( sql );
while( rs.next() ) {
String empno = rs.getString(1);
String ename = rs.getString(2);
String job = rs.getString(3);
String mgr = rs.getString(4);
String hiredate = rs.getString(5);
String sal = rs.getString(6);
String comm = rs.getString(7);
String depno = rs.getString(8);
//°á°ú¸¦ Ãâ·ÂÇÕ´Ï´Ù.
out.println( empno + " : " + ename + " : " + job + " : " + mgr + " : " + hiredate +
" : " + sal + " : " + comm+" : " + depno + "<br>" );
}
} catch (SQLException e) {
System.out.println( "Error Source:GetEmpServlet.java : SQLException" );
System.out.println( "SQLState : " + e.getSQLState() );
System.out.println( "Message : " + e.getMessage() );
System.out.println( "Oracle Error Code : " + e.getErrorCode() );
System.out.println( "sql : " + sql );
} finally {
try {
if ( rs != null ) rs.close();
if ( stmt != null) stmt.close();
if ( con != null) con.close();
} catch ( SQLException e ) {}
}
}
}
7369 : SMITH : CLERK : 7902 : 1980-12-17 00:00:00.0 : 800 : null : 20 7499 : ALLEN : SALESMAN : 7698 : 1981-02-20 00:00:00.0 : 1600 : 300 : 30 7521 : WARD : SALESMAN : 7698 : 1981-02-22 00:00:00.0 : 1250 : 500 : 30 7566 : JONES : MANAGER : 7839 : 1981-04-02 00:00:00.0 : 2975 : null : 20 7654 : MARTIN : SALESMAN : 7698 : 1981-09-28 00:00:00.0 : 1250 : 1400 : 30 7698 : BLAKE : MANAGER : 7839 : 1981-05-01 00:00:00.0 : 2850 : null : 30 7782 : CLARK : MANAGER : 7839 : 1981-06-09 00:00:00.0 : 2450 : null : 10 7788 : SCOTT : ANALYST : 7566 : 1987-04-19 00:00:00.0 : 3000 : null : 20 7839 : KING : PRESIDENT : null : 1981-11-17 00:00:00.0 : 5000 : null : 10 7844 : TURNER : SALESMAN : 7698 : 1981-09-08 00:00:00.0 : 1500 : 0 : 30 7876 : ADAMS : CLERK : 7788 : 1987-05-23 00:00:00.0 : 1100 : null : 20 7900 : JAMES : CLERK : 7698 : 1981-12-03 00:00:00.0 : 950 : null : 30 7902 : FORD : ANALYST : 7566 : 1981-12-03 00:00:00.0 : 3000 : null : 20 7934 : MILLER : CLERK : 7782 : 1982-01-23 00:00:00.0 : 1300 : null : 10
¿øÇÏ´Â °á°ú°¡ ³ª¿ÀÁö ¾ÊÀ» ¶§ üũ ¸®½ºÆ®
- web.xml ÆÄÀÏ¿¡¼ ¼ºí¸´ ¸ÅÇÎ
- /WEB-INF/classes ¿¡ GetEmp ¹ÙÀÌÆ®ÄÚµå Á¸Àç¿©ºÎ
- /WEB-INF/lib ¿¡ ojdbc14.jar Á¸Àç¿©ºÎ
- À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ·ÎµåµÇ¾ú´ÂÁö È®ÀÎ
- ÅèĹ ·Î±ë ¸Þ½ÃÁö
(¹®Á¦ 2) À§ ¼ºí¸´À» JSP·Î ±¸ÇöÇϱâ
getEmp1.jsp
<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page import="java.sql.*" %>
<%
String DB_URL = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
String DB_USER = "scott";
String DB_PASSWORD = "tiger";
//¼³Ä¡°úÁ¤¿¡¼ ÀÚ½ÅÀÌ Á¤ÇÑ Á¤º¸¿¡ ¸Â°Ô ¹Ù²Û´Ù.
try {
//µå¶óÀ̹ö¸¦ ·ÎµùÇÕ´Ï´Ù.
Class.forName( "oracle.jdbc.driver.OracleDriver" );
} catch ( ClassNotFoundException e ) {
e.printStackTrace();
}
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String sql = "select * from emp";
try {
//µ¥ÀÌÅͺ£À̽ºÀÇ ¿¬°áÀ» ¼³Á¤ÇÕ´Ï´Ù.
con = DriverManager.getConnection( DB_URL, DB_USER, DB_PASSWORD );
//Statement¸¦ °¡Á®¿Â´Ù.
stmt = con.createStatement();
//SQL¹®À» ½ÇÇàÇÕ´Ï´Ù.
rs = stmt.executeQuery( sql );
while( rs.next() ) {
String empno = rs.getString(1);
String ename = rs.getString(2);
String job = rs.getString(3);
String mgr = rs.getString(4);
String hiredate = rs.getString(5);
String sal = rs.getString(6);
String comm = rs.getString(7);
String depno = rs.getString(8);
//°á°ú¸¦ Ãâ·ÂÇÕ´Ï´Ù.
out.println( empno + " : " + ename + " : " + job + " : " + mgr + " : " + hiredate +
" : " + sal + " : " + comm + " : " + depno + "<br>" );
}
} catch ( SQLException e ) {
System.out.println( "Error Source:GetEmp1.jsp : SQLException" );
System.out.println( "SQLState : " + e.getSQLState() );
System.out.println( "Message : " + e.getMessage() );
System.out.println( "Oracle Error Code : " + e.getErrorCode() );
System.out.println( "sql : " + sql );
} finally {
try {
if ( rs != null ) rs.close();
if ( stmt != null) stmt.close();
if ( con != null) con.close();
} catch ( SQLException e ){}
}
%>
¹®Á¦ 1 ¿¡¼¿Í °°Àº °á°ú¸¦ È®ÀÎÇß½À´Ï±î?
¹®Á¦1ÀÇ ¼ºí¸´°ú Áö±Ý JSP´Â Äڵ尡 Á¶±Ý ´Ù¸¨´Ï´Ù.
¼ºí¸´¿¡¼´Â init() ¸Þ¼Òµå¿¡¼ JDBC µå¶óÀ̹ö¿¡ ´ëÇÑ ¼³Á¤À» Çß½À´Ï´Ù.
¼ºí¸´ÀÇ ¶óÀÌÇÁ »çÀÌŬ¿¡¼ »ìÆì º¸¾ÒµíÀÌ init() ¸Þ¼Òµå¾ÈÀÇ ³»¿ëÀº ¼ºí¸´ÀÌ °´Ã¼È µÉ¶§ ´Ü Çѹø ½ÇÇàµË´Ï´Ù.
JSP¿¡¼µµ ¼ºí¸´ÀÇ init() ¸Þ¼Òµå¿Í °°Àº ¸Þ¼Òµå°¡ ÀÖ½À´Ï´Ù.
À̰ÍÀº ¿©·¯ºÐÀÌ Ã£¾Æ¼ °íÄ¡½Ã±â ¹Ù¶ø´Ï´Ù.
(¹®Á¦ 3) getEmp1.jsp ¸¦ ConnectionPool À» ÀÌ¿ëÇÏ¿© ¼öÁ¤Çϱâ
getEmp2.jsp
<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page import="java.sql.*, net.java_school.db.dbpool.*" %>
<jsp:useBean id="dbmgr" class="net.java_school.db.dbpool.OracleConnectionManager"
scope="application" />
<%
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String sql = "select * from emp";
try {
//µ¥ÀÌÅͺ£À̽ºÀÇ ¿¬°áÀ» ¼³Á¤ÇÕ´Ï´Ù.Ä¿³Ø¼ÇÇ® ÀÌ¿ë
con = dbmgr.getConnection();
//Statement¸¦ °¡Á®¿Â´Ù.
stmt = con.createStatement();
//SQL¹®À» ½ÇÇàÇÕ´Ï´Ù.
rs = stmt.executeQuery( sql );
while( rs.next() ) {
String empno = rs.getString(1);
String ename = rs.getString(2);
String job = rs.getString(3);
String mgr = rs.getString(4);
String hiredate = rs.getString(5);
String sal = rs.getString(6);
String comm = rs.getString(7);
String depno = rs.getString(8);
//°á°ú¸¦ Ãâ·ÂÇÕ´Ï´Ù.
out.println( empno + " : " + ename + " : " + job + " : " + mgr + " : " + hiredate +
" : " + sal + " : " + comm + " : " + depno + "<br>" );
}
} catch ( SQLException e ) {
System.out.println( "Error Source:GetEmp2.jsp : SQLException" );
System.out.println( "SQLState : " + e.getSQLState() );
System.out.println( "Message : " + e.getMessage() );
System.out.println( "Oracle Error Code : " + e.getErrorCode() );
System.out.println( "sql : " + sql );
} finally {
try {
if ( rs != null ) rs.close();
if ( stmt != null) stmt.close();
dbmgr.freeConnection( con );
} catch ( SQLException e ){}
}
%>
JDBC ÀÇ ¸¶Áö¸· °Á¿¡ ÀÖ´Â Ä¿³Ø¼ÇÇ®¸µÀ» À§ÇÑ ¼Ò½º¸¦ Àû´çÇÑ µð·ºÅ丮¿¡ º¹»çÇÕ´Ï´Ù.
Log.java ¿¡¼ ·Î±×ÆÄÀÏÀÌ ±â·ÏÇÏ´Â error.txt ÆÄÀÏÀ» ¼Ò½º ÆÄÀÏ´ë·Î ¸¸µì´Ï´Ù.
ConnectionManager.java ÆÄÀÏ¿¡¼ µ¥ÀÌÅͺ£À̽º ¼³Á¤ ÆÄÀÏÀ» ¼Ò½º´ë·Î À§Ä¡½Ãŵ´Ï´Ù.
¸ðµÎ ÄÄÆÄÀÏÇÕ´Ï´Ù.
¼Ò½º ÆÄÀÏÀ» ´Ù Áö¿î ÈÄ¿¡ jar cvf connPool.jar . ¶ó´Â jar ¸í·ÉÀ¸·Î ¹½À´Ï´Ù.
connPool.jar ÆÄÀÏÀ» WEB-INF/lib Æú´õ¿¡ º¹»çÇÕ´Ï´Ù.
(¹®Á¦ 4) À§ ÆÄÀÏÀ» ·Î±× Ŭ·¡½º(Log.java)¸¦ ÀÌ¿ëÇÏ´Â ÄÚµå·Î ¼öÁ¤Çϱâ
getEmp3.jsp
<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page import="java.sql.*, net.java_school.db.dbpool.*, net.java_school.util.*" %>
<jsp:useBean id="dbmgr" class="net.java_school.db.dbpool.OracleConnectionManager"
scope="application" />
<%
Log log = new Log();
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String sql = "select * from emp";
try {
//µ¥ÀÌÅͺ£À̽ºÀÇ ¿¬°áÀ» ¼³Á¤ÇÕ´Ï´Ù.Ä¿³Ø¼ÇÇ® ÀÌ¿ë
con = dbmgr.getConnection();
//Statement¸¦ °¡Á®¿Â´Ù.
stmt = con.createStatement();
//SQL¹®À» ½ÇÇàÇÕ´Ï´Ù.
rs = stmt.executeQuery( sql );
while( rs.next() ) {
String empno = rs.getString(1);
String ename = rs.getString(2);
String job = rs.getString(3);
String mgr = rs.getString(4);
String hiredate = rs.getString(5);
String sal = rs.getString(6);
String comm = rs.getString(7);
String depno = rs.getString(8);
//°á°ú¸¦ Ãâ·ÂÇÕ´Ï´Ù.
out.println( empno + " : " + ename + " : " + job + " : " + mgr + " : " + hiredate +
" : " + sal + " : " + comm + " : " + depno + "<br>" );
}
} catch ( SQLException e ) {
log.debug( "Error Source:getEmp3.jsp : SQLException" );
log.debug( "SQLState : " + e.getSQLState() );
log.debug( "Message : " + e.getMessage() );
log.debug( "Oracle Error Code : " + e.getErrorCode() );
log.debug( "Query : " + sql );
} finally {
try {
if ( rs != null) rs.close();
if ( stmt != null) stmt.close();
dbmgr.freeConnection( con );
log.close();
} catch ( SQLException e ){}
}
%>
À§ ÆÄÀÏ¿¡¼ select * from emp ¶õ sql ¹®ÀÚ¿À» ÀϺη¯ ¿¡·¯°¡ ³ª°Ô select * fromemp ¶ó°í °íÄ¡°í ´Ù½Ã Å×½ºÆ®Çغ¾´Ï´Ù.
·Î±×ÆÄÀÏÀº Log.java ÆÄÀÏ¿¡¼ Á¤ÇÑ À§Ä¡¿¡ error.txt ¶õ ÆÄÀÏÀ» ³»¿ë ¾øÀÌ ¸¸µé¾î À§Ä¡½ÃÄÑ¾ß ÇÕ´Ï´Ù.
±×·¯¸é ´ÙÀ½°ú °°ÀÌ ·Î±× ÆÄÀÏ¿¡ ±â·ÏÀÌ ½×ÀÌ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
error.txt
Sat Jun 19 14:01:58 KST 2004 : Error Source:getEmpWithPooldbg.jsp : SQLException Sat Jun 19 14:01:58 KST 2004 : SQLState : 42000 Sat Jun 19 14:01:58 KST 2004 : message : ORA-00923: FROM Ű¿öµå°¡ ÀÖ¾î¾ßÇÒ °÷¿¡ ¾ø½À´Ï´Ù Sat Jun 19 14:01:58 KST 2004 : Oracle Error Code : 923 Sat Jun 19 14:01:58 KST 2004 : Query : select * fromemp
¿©±â±îÁö ¿À¼Ì´Ù¸é °Ô½ÃÆÇÀ» À§ÇÑ Áغñ°¡ ´Ù µÈ °ÍÀÔ´Ï´Ù.
°Ô½ÃÆÇ ½Ç½À
1. Å×ÀÌºí »ý¼º
board.sql
-- °Ô½ÃÆÇ ¿¬½À Å×À̺í create table board( boardno number primary key, title varchar2(200) not null, content varchar2(4000), wdate date ) / create sequence board_boardno_seq start with 1 increment by 1 /
Àû´çÇÑ µð·ºÅ丮¿¡ board.sql·Î À§ ³»¿ëÀ¸·Î ¸¸µé°í scott °èÁ¤À¸·Î Á¢¼ÓÇÏ¿© (C:\¿¡ ÀúÀåÇß´Ù¸é)
@C:\board.sql
Çϸé Å×À̺í°ú ½ÃÄö½º°¡ »ý¼ºµË´Ï´Ù.
¿©±â¼ ½Ç½ÀÇÒ °Ô½ÃÆÇÀº ±âº»ÀûÀÎ ±â´É¸¸À» ±¸ÇöÇϵµ·Ï ÇÕ´Ï´Ù.
´ÙÀ½Àº °Ô½ÃÆÇÀ» À§ÇØ ¾µ ÆÄÀÏ È帧µµ ÀÔ´Ï´Ù.
list.jsp ---> write_form.jsp ---> BoardWriter.java(¼ºí¸´) -- DB insert ¹® ½ÇÇà
|
|---> view.jsp : °Ô½Ã¹°ÀÇ ³»¿ëÀ» º¸¿©ÁØ´Ù.
|
|
|---> modify_form.jsp
| |
| |---> BoardModifier.java(¼ºí¸´) -- DB update ¹® ½ÇÇà
|
|---> delete_confirm.jsp
|
|---> BoardDeleter.java(¼ºí¸´) -- DB delete ¹® ½ÇÇà
list.jsp : °Ô½Ã¹°ÀÇ ¸ñ·ÏÀ» º¸¿©ÁÖ´Â ÆäÀÌÁö(ÆäÀÌÁöºÐÇÒ, ÆäÀÌÁö Á÷Á¢ À̵¿ ¸µÅ©, °Ë»ö ±â´ÉÀº ³ªÁß¿¡ ±¸Çö)
write_form.jsp : »õ±Û ÀÔ·Â ÆûÀ» Á¦°øÇϴ ȸé
BoardWriter.java : »õ±Û ÀÔ·ÂÀ» ó¸®ÇÏ´Â ¼ºí¸´
view.jsp : ÇØ´ç °Ô½Ã¹°ÀÇ »ó¼¼ Á¤º¸¸¦ Ãâ·ÂÇÏ´Â ÆäÀÌÁö
modify_form.jsp : ¼öÁ¤ ÀÔ·Â Æû ȸé
BoardModifier.java : ¼öÁ¤À» À§ÇØ ½ÇÁ¦·Î DB Å×À̺íÀ» ¼öÁ¤À» ÇàÇÏ´Â ¼ºí¸´
delete_confirm.jsp : »èÁ¦¸¦ »ç¿ëÀÚ°¡ ¼±ÅÃÇßÀ» ¶§ »èÁ¦¸¦ Á¤¸»·Î ÇÒ °ÍÀΰ¡ È®ÀÎÇϴ ȸé
BoardDeleter.java : Å×ÀÌºí¿¡¼ ÇØ´ç ·¹Äڵ带 »èÁ¦ÇÏ´Â ¼ºí¸´
2. °¢°¢ÀÇ ¼Ò½º
list.jsp
<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page import="java.sql.*,net.java_school.util.*,net.java_school.db.dbpool.*" %>
<jsp:useBean id="dbmgr" scope="application"
class="net.java_school.db.dbpool.OracleConnectionManager" />
<html>
<body>
<%
Log log = new Log();
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = null;
try {
con = dbmgr.getConnection();
sql = "select boardno, title, wdate from board order by boardno desc";
pstmt = con.prepareStatement( sql );
rs = pstmt.executeQuery();
while( rs.next() ) {
int boardno = rs.getInt( "boardno" );
String title = rs.getString( "title" );
Date wdate = rs.getDate( "wdate" );
%>
<a href="view.jsp?boardno=<%=boardno %>"><%= subject%>
</a> <%= wdate.toString() %><br>
<%
}
} catch( SQLException e ) {
log.debug( "Error Source:list.jsp : SQLException" );
log.debug( "SQLState : " + e.getSQLState() );
log.debug( "Message : " + e.getMessage() );
log.debug( "Oracle Error Code : " + e.getErrorCode() );
log.debug( "Query : " + sql );
} finally {
try {
if ( rs != null) rs.close();
if ( pstmt != null) pstmt.close();
dbmgr.freeConnection( con );
log.close();
} catch ( SQLException e ){}
}
%>
<br>
<br>
<p>
<a href="write_form.jsp">»õ±Û ¾²±â</a>
</body>
</html>
write_form.jsp
<%@ page contentType="text/html;charset=euc-kr" %>
<html>
<body>
<h1>»õ±Û ¾²±â</h1>
<table>
<form id="frmWrite" method="post" action="../servlet/BoardWriter">
<tr>
<td width="100">Á¦¸ñ</td>
<td><input type="text" name="title" size="45"></td>
</tr>
<tr>
<td width="100">º»¹®</td>
<td><textarea name="content" rows="10" cols="60"></textarea></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Àü¼Û">
<input type="reset" value="Ãë¼Ò">
</td>
</tr>
</form>
</table>
<p>
<a href="list.jsp">¸ñ·ÏÀ¸·Î</a>
</p>
</body>
</html>
BoardWriter.java
package net.java_school.board;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import net.java_school.db.dbpool.*;
import net.java_school.util.*;
public class BoardWriter extends HttpServlet {
PreparedStatement pstmt = null;
OracleConnectionManager dbmgr = null;
// ÀÔ·Â ¼ø¼ : ½ÃÄö½º , Á¦¸ñ, ¼Ò°³±Û, º»¹®
String sql = "insert into board values ( board_boardno_seq.nextval, ?, ?, sysdate )";
public void init() throws ServletException {
ServletContext sc = getServletContext();
dbmgr = (OracleConnectionManager)sc.getAttribute("dbmgr");
}
public void doPost( HttpServletRequest req, HttpServletResponse res )
throws ServletException, IOException {
req.setCharacterEncoding( "euc-kr" );
Log log = new Log();
String title = req.getParameter( "title" );
String content = req.getParameter( "content" );
Connection con = dbmgr.getConnection();
try {
pstmt = con.prepareStatement( sql );
pstmt.setString( 1, title ); //Á¦¸ñ ºÎºÐ
pstmt.setString( 2, content ); // º»ºÐ ºÎºÐ
pstmt.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 : " + sql );
} finally {
try {
if ( pstmt != null ) pstmt.close();
dbmgr.freeConnection( con );
log.close();
} catch ( SQLException e ){}
String path = req.getContextPath();
res.sendRedirect( path + "/list.jsp" );
}
}
}
view.jsp
<%@ page contentType="text/html;charset=euc-kr" import="java.sql.*,
net.java_school.util.*,net.java_school.db.dbpool.*" %>
<jsp:useBean id="dbmgr" scope="application"
class="net.java_school.db.dbpool.OracleConnectionManager" />
<html>
<body>
<%
int boardno = Integer.parseInt( request.getParameter( "boardno" ) );
Log log = new Log();
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = null;
try {
con = dbmgr.getConnection();
sql = "select boardno, title, content, wdate from board where boardno=?";
pstmt = con.prepareStatement( sql );
pstmt.setInt(1, boardno);
rs = pstmt.executeQuery();
while ( rs.next() ) {
String title = rs.getString( "title" );
String content = rs.getString( "content" );
Date wdate = rs.getDate( "wdate" );
%>
<%=title%></a><br>
<hr>
<%=content%><br>
<hr>
<%=wdate.toString()%><br>
<%
}
} catch ( SQLException e ) {
log.debug( "Error Source:view.jsp : SQLException" );
log.debug( "SQLState : " + e.getSQLState() );
log.debug( "Message : " + e.getMessage() );
log.debug( "Oracle Error Code : " + e.getErrorCode() );
log.debug( "Query : " + sql );
} finally {
try {
if ( rs != null) rs.close();
if ( pstmt != null) pstmt.close();
dbmgr.freeConnection( con );
log.close();
} catch ( SQLException e ){}
}
%>
<form id="frmModify" method="post" action="modify_form.jsp">
<input type="submit" value="¼öÁ¤">
<input type="hidden" name="boardno" value="<%=boardno %>">
</form>
<form id="frmDelete" method="post" action="delete_confirm.jsp">
<input type="submit" value="»èÁ¦">
<input type="hidden" name="boardno" value="<%=boardno %>">
</form>
<br>
<a href="list.jsp">¸ñ·ÏÀ¸·Î</a>
</body>
</html>
modify_form.jsp
<%@ page contentType="text/html;charset=euc-kr"
import="java.sql.*,net.java_school.util.*,net.java_school.db.dbpool.*" %>
<jsp:useBean id="dbmgr" scope="application"
class="net.java_school.db.dbpool.OracleConnectionManager" />
<%
Log log = new Log();
int boardno = Integer.parseInt( request.getParameter( "boardno" ) );
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String title = null;
String content = null;
String sql = "select subject,content from board where num =" + num;
try {
con = dbmgr.getConnection();
pstmt = con.prepareStatement( sql );
rs = pstmt.executeQuery();
while( rs.next() ) {
title = rs.getString( "title" );
content = rs.getString( "content" );
}
} catch ( SQLException e ) {
log.debug( "Error Source:modify_form.jsp : SQLException" );
log.debug( "SQLState : " + e.getSQLState() );
log.debug( "Message : " + e.getMessage() );
log.debug( "Oracle Error Code : " + e.getErrorCode() );
log.debug( "Query : " + sql );
} finally {
try {
if ( rs != null) rs.close();
if ( pstmt != null) pstmt.close();
dbmgr.freeConnection( con );
log.close();
} catch ( SQLException e ){}
}
%>
<html>
<body>
<h1>±Û ¼öÁ¤</h1>
<table>
<form id="frmModify" method="post" action="../servlet/BoardModifier">
<input type="hidden" name="boardno" value="<%=boardno %>">
<tr>
<td width="100">Á¦¸ñ</td>
<td><input type="text" name="title" size="45" value="<%=title %>"></td>
</tr>
<tr>
<td width="100">º»¹®</td>
<td><textarea name="content" rows="10" cols="60"><%=content %></textarea></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Àü¼Û">
<input type="reset" value="Ãë¼Ò">
</td>
</tr>
</form>
</table>
<p>
<a href="list.jsp">¸ñ·ÏÀ¸·Î</a>
</p>
</body>
</html>
BoardModifier.java
package net.java_school.board;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import net.java_school.db.dbpool.*;
import net.java_school.util.*;
public class BoardModifier extends HttpServlet {
PreparedStatement pstmt = null;
OracleConnectionManager dbmgr = null;
String sql = "update board set title = ?, content = ? where boardno = ?";
public void init() throws ServletException {
ServletContext sc = getServletContext();
dbmgr = (OracleConnectionManager)sc.getAttribute("dbmgr");
}
public void doPost( HttpServletRequest req, HttpServletResponse res )
throws ServletException, IOException {
req.setCharacterEncoding( "euc-kr" );
Log log = new Log();
int boardno = Integer.parseInt( req.getParameter( "boardno" ) );
String title = req.getParameter( "title" );
String content = req.getParameter( "content" );
Connection con = dbmgr.getConnection();
try {
pstmt = con.prepareStatement( sql );
pstmt.setString( 1, title ); //Á¦¸ñ ºÎºÐ
pstmt.setString( 2, content ); // º»ºÐ ºÎºÐ
pstmt.setInt( 3, boardno ); // ½ÃÄö½º primary key
pstmt.executeUpdate(); // Äõ¸® ½ÇÇà
} catch ( SQLException e ) {
log.debug( "Error Source:BoardModifier.java : SQLException" );
log.debug( "SQLState : " + e.getSQLState() );
log.debug( "Message : " + e.getMessage() );
log.debug( "Oracle Error Code : " + e.getErrorCode() );
log.debug( "Query : " + sql );
} finally {
try {
if ( pstmt != null) pstmt.close();
dbmgr.freeConnection( con );
log.close();
} catch ( SQLException e ){}
String path = req.getContextPath();
res.sendRedirect( path + "/view.jsp?boardno=" + boardno );
}
}
}
delete_confirm.jsp
<%@ page contentType="text/html;charset=euc-kr"
import="java.sql.*,net.java_school.util.*,net.java_school.db.dbpool.*" %>
<jsp:useBean id="dbmgr" scope="application"
class="net.java_school.db.dbpool.OracleConnectionManager" />
<%
Log log = new Log();
int boardno = Integer.parseInt(request.getParameter( "boardno" ) );
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String title = null;
String content = null;
String sql = "select title, content from board where boardno = " + boardno;
try {
con = dbmgr.getConnection();
pstmt = con.prepareStatement( sql );
rs = pstmt.executeQuery();
while ( rs.next() ) {
title = rs.getString( "title" );
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 : " + sql );
} finally {
try {
if ( rs != null) rs.close();
if ( pstmt != null) pstmt.close();
dbmgr.freeConnection( con );
log.close();
} catch ( SQLException e ){}
}
%>
<html>
<body>
<h1>»è Á¦ È® ÀÎ</h1>
<table>
<form name="frmDelete" method="post" action="../servlet/BoardDeleter">
<input type="hidden" name="boardno" value="<%=boardno%>">
<tr>
<td width="100">Á¦¸ñ</td>
<td><input type="text" name="title" size="45" value="<%=title%>"></td>
</tr>
<tr>
<td width="100" align="center">¼Ò°³±Û</td>
<td><textarea name="content" rows="10" cols="60">
<%=content%></textarea></td>
</tr>
<tr>
<td colspan="2">À§ ±ÛÀ» Á¤¸»·Î »èÁ¦ÇϰڽÀ´Ï±î?</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="»èÁ¦">
<input type="button" value="Ãë¼Ò" onClick="javascript:history.go(-1)">
</td>
</tr>
</form>
</table>
</body>
</html>
BoardDeleter.java
package net.java_school.board;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import net.java_school.db.dbpool.*;
import net.java_school.util.*;
public class BoardDeleter extends HttpServlet {
PreparedStatement pstmt = null;
OracleConnectionManager dbmgr = null;
String sql = "delete board where boardno = ?";
public void init() throws ServletException {
ServletContext sc = getServletContext();
dbmgr = (OracleConnectionManager)sc.getAttribute("dbmgr");
}
public void doPost( HttpServletRequest req, HttpServletResponse res )
throws ServletException, IOException {
req.setCharacterEncoding( "euc-kr" );
Log log = new Log();
int boardno = Integer.parseInt( req.getParameter( "boardno" ) );
Connection con = dbmgr.getConnection();
try {
pstmt = con.prepareStatement( sql );
pstmt.setInt( 1, boardno );
pstmt.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 : " + sql );
} finally {
try {
if ( pstmt != null) pstmt.close();
dbmgr.freeConnection( con );
log.close();
} catch ( SQLException e ){}
String path = req.getContextPath();
res.sendRedirect( path + "/list.jsp" );
}
}
}
- ´ÙÀ½ °Á : ÆäÀÌÁö ºÐÇÒ ±â´É
- ÀÌÀü °Á : JSP ¿¹Á¦
