//Google AdSense
1) 리스트(m_list.jsp)에 수정버튼을 만들어 수정화면(m_update_form.jsp)으로 이동. 
folder : /mupdate
file : m_update_form.jsp

- m_list.jsp : 수정화면으로 갈 때 아이디만 넘긴다.(get방식의 키,값으로 가능)

- m_update_form.jsp : 
1,2단계 : 드라이버 로딩 및 디비연결
3단계 : select 쿼리 준비 (select * from tb_member where m_id = ?)
4단계 : 쿼리 실행
5단계 : 쿼리 실행 결과 사용 (수정화면에 회원정보 출력)
6, 7단계 : 객체 종료
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import = "java.sql.DriverManager" %>
<%@ page import = "java.sql.Connection"%>
<%@ page import = "java.sql.PreparedStatement"%>
<%@ page import = "java.sql.ResultSet" %>
<%@ page import = "java.sql.SQLException"%>

<%
String send_id = request.getParameter("send_id");
System.out.println(send_id + "<-send_id");

String dbid = null;
String dbpw = null;
String dblevel = null;
String dbname = null;
String dbemail = null;

Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Class.forName("com.mysql.jdbc.Driver");

try{
	String jdbcDriver = "jdbc:mysql://localhost:3306/dev35db?" +
			"useUnicode=true&characterEncoding=euckr";
	String dbUser = "dev35id";
	String dbPass = "dev35pw";
	conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass);
	System.out.println(conn + "<-- conn m_update_form.jsp");
	pstmt = conn.prepareStatement("select * from tb_member where m_id =?");
	pstmt.setString(1, send_id);
	System.out.println(pstmt +"<--pstmt");
	rs = pstmt.executeQuery();
	System.out.println(rs + "<-- rs");
	if(rs.next()){
		System.out.println("if 조건문 통과 완료");
		dbid = rs.getString("m_id");
		dbpw = rs.getString("m_pw");
		dblevel = rs.getString("m_level");
		dbname = rs.getString("m_name");
		dbemail = rs.getString("m_email");
	}
}catch(SQLException ex) {
	System.out.println(ex.getMessage());
	ex.printStackTrace();
} finally {
	if (rs != null) try { rs.close(); } catch(SQLException ex) {}
	if (pstmt != null) try { pstmt.close(); } catch(SQLException ex) {}
	if (conn != null) try { conn.close(); } catch(SQLException ex) {}
}
%>

<%------변수에 담은 값이 처리과정 바깥에서 출력되는지 확인-----------
		테스트 dbid : <%= dbid %> <br/>
		테스트 dbpw : <%=dbpw %> <br/>
		테스트 dblevel : <%=dblevel %> <br/>
		테스트 dbname : <%=dbname %> <br/>
		테스트 dbemail : <%=dbemail %> <br/>
---------------------------------------------------%>

<form>
	<input type="text" name="id" value= "<%= dbid %>"> <br/>
	<input type="text" name="pw" value= "<%=dbpw %>">  <br/>
	<input type="text" name="level" value= "<%=dblevel %>"> <br/>
	<input type="text" name="name" value= "<%=dbname %>"> <br/>
	<input type="text" name="email" value= "<%=dbemail %>"> <br/>
	<button type="button"> 수정완료</button>
</form>

수정버튼에 m_id 값을 get 방식으로 넘기도록 a태그와 함께 추가 

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import = "java.sql.DriverManager" %>
<%@ page import = "java.sql.Connection"%>
<%@ page import = "java.sql.PreparedStatement"%>
<%@ page import = "java.sql.ResultSet" %>
<%@ page import = "java.sql.SQLException"%>

<%= request.getRequestURI() %> <br>
회원 리스트 <br>
<table width="100%" border="1">
<tr>
	<td>아이디</td><td>비번</td><td>권한</td><td>이름</td><td>이메일</td><td>수정</td>
</tr>

<%
	Connection conn = null;
	PreparedStatement pstmt = null;
	ResultSet rs = null;
	Class.forName("com.mysql.jdbc.Driver");
	try{
		String jdbcDriver = "jdbc:mysql://localhost:3306/dev35db?" +
				"useUnicode=true&characterEncoding=euckr";
		String dbUser = "dev35id";
		String dbPass = "dev35pw";
		conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass);	
		System.out.println(conn + "<-- conn m_list.jsp");
		pstmt = conn.prepareStatement("select * from tb_member");
		System.out.println(pstmt + "<-- pstmt m_list.jsp");
		rs = pstmt.executeQuery();
		System.out.println(rs + "<-- rs m_list.jsp");
		//System.out.println(rs.next() + "<-- rs.next()");
		while(rs.next()){
			System.out.println("if 조건문 통과 완료");
%>
<tr>
	<td> <%= rs.getString("m_id") %> </td>
	<td> <%= rs.getString("m_pw") %> </td>
	<td> <%= rs.getString("m_level") %> </td>
	<td> <%= rs.getString("m_name") %> </td>
	<td> <%= rs.getString("m_email") %> </td>
	<td> <a href="<%=request.getContextPath()%>/mupdate/m_update_form.jsp?send_id=<%= rs.getString("m_id") %>"> 수정버튼</a> </td>	
</tr>
<%
			
		}
	}catch(SQLException ex) {
		System.out.println(ex.getMessage());
		ex.printStackTrace();
	} finally {
		if (rs != null) try { rs.close(); } catch(SQLException ex) {}
		if (pstmt != null) try { pstmt.close(); } catch(SQLException ex) {}
		if (conn != null) try { conn.close(); } catch(SQLException ex) {}
}
%>
</table>

m_update_from.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import = "java.sql.DriverManager" %>
<%@ page import = "java.sql.Connection"%>
<%@ page import = "java.sql.PreparedStatement"%>
<%@ page import = "java.sql.ResultSet" %>
<%@ page import = "java.sql.SQLException"%>



<%= request.getRequestURI() %> <br>
회원 수정<br><br>
<%
System.out.println("회원수정화면"); //화면이 이동되었음을 확인하기 위해 작성
String send_id = request.getParameter("send_id"); //변수send_id에 담긴 값을 send_id에 가져옴

Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Class.forName("com.mysql.jdbc.Driver");
try{
	String jdbcDriver = "jdbc:mysql://localhost:3306/dev35db?" +
			"useUnicode=true&characterEncoding=euckr";
	String dbUser = "dev35id";
	String dbPass = "dev35pw";
	conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass);
	System.out.println(conn + "<-- conn m_update_form.jsp");
	pstmt = conn.prepareStatement("select * from tb_member where m_id ='" + send_id + "'");
	System.out.println(pstmt + "<-- pstmt m_update_form.jsp");
	rs = pstmt.executeQuery();
	System.out.println(rs + " <-- rs");
	if(rs.next()){ //while이나 if (rs.next()) 조건문없이 rs.getString 호출시 Before start of result set 에러 발생함!
		System.out.println("if 조건문 통과 완료");
%>

<form>
아이디 : <input type = "text" name = "m_id" value= "<%= send_id%>" readonly="readonly"><br> 
패스워드 : <input type = "text" name = "m_pw" value = "<%= rs.getString("m_pw") %>" ><br> 
권한 : <input type = "text" name = "m_level" value = "<%= rs.getString("m_level") %>"><br> 
이름 : <input type = "text" name = "m_name"  value = "<%= rs.getString("m_name") %>"><br> 
이메일 : <input type = "text" name = "m_email" value = "<%= rs.getString("m_email") %>"><br> 
<button type="button"> 수정완료 </button>
</form>

<%
	}
}catch(SQLException ex) {
	System.out.println(ex.getMessage());
	ex.printStackTrace();
} finally {
	if (rs != null) try { rs.close(); } catch(SQLException ex) {}
	if (pstmt != null) try { pstmt.close(); } catch(SQLException ex) {}
	if (conn != null) try { conn.close(); } catch(SQLException ex) {}
}
%>



 

db에서 받은 값을 변수에 담아 처리과정 바깥에서 화면 출력하기

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import = "java.sql.DriverManager" %>
<%@ page import = "java.sql.Connection"%>
<%@ page import = "java.sql.PreparedStatement"%>
<%@ page import = "java.sql.ResultSet" %>
<%@ page import = "java.sql.SQLException"%>

<%
String send_id = request.getParameter("send_id");
System.out.println(send_id + "<-send_id");

String dbid = null;
String dbpw = null;
String dblevel = null;
String dbname = null;
String dbemail = null;

Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Class.forName("com.mysql.jdbc.Driver");

try{
	String jdbcDriver = "jdbc:mysql://localhost:3306/dev35db?" +
			"useUnicode=true&characterEncoding=euckr";
	String dbUser = "dev35id";
	String dbPass = "dev35pw";
	conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass);
	System.out.println(conn + "<-- conn m_update_form.jsp");
	pstmt = conn.prepareStatement("select * from tb_member where m_id =?");
	pstmt.setString(1, send_id);
	System.out.println(pstmt +"<--pstmt");
	rs = pstmt.executeQuery();
	System.out.println(rs + "<-- rs");
	if(rs.next()){
		System.out.println("if 조건문 통과 완료");
		dbid = rs.getString("m_id");
		dbpw = rs.getString("m_pw");
		dblevel = rs.getString("m_level");
		dbname = rs.getString("m_name");
		dbemail = rs.getString("m_email");
	}
}catch(SQLException ex) {
	System.out.println(ex.getMessage());
	ex.printStackTrace();
} finally {
	if (rs != null) try { rs.close(); } catch(SQLException ex) {}
	if (pstmt != null) try { pstmt.close(); } catch(SQLException ex) {}
	if (conn != null) try { conn.close(); } catch(SQLException ex) {}
}
%>

<%------변수에 담은 값이 처리과정 바깥에서 출력되는지 확인-----------
		테스트 dbid : <%= dbid %> <br/>
		테스트 dbpw : <%=dbpw %> <br/>
		테스트 dblevel : <%=dblevel %> <br/>
		테스트 dbname : <%=dbname %> <br/>
		테스트 dbemail : <%=dbemail %> <br/>
---------------------------------------------------%>

<form action="<%= request.getContextPath() %>/minsert/m_insert_pro.jsp" method="post">
<table border="1">
<tr>
	<td>아이디</td>
	<td><input type="text" name="m_id" size="20" value = "<%= dbid %>" readonly="readonly"></td>
<tr>
<tr>
	<td>암호</td>
	<td><input type="text" name="m_pw" size="20" value = "<%=dbpw %>"></td>
<tr>
<tr>
	<td>권한</td>
	<td><input type="text" name="m_level" size="20" value = "<%=dblevel %>"></td>
<tr>
<tr>
	<td>이름</td>
	<td><input type="text" name="m_name" size="20" value = "<%=dbname %>"></td>
<tr>
<tr>
	<td>이메일</td>
	<td><input type="text" name="m_email" size="20" value = "<%=dbemail %>" ></td>
<tr>
<tr>
	<td colspan="4"><input type="submit" value="회원수정버튼"></td>
</tr>
</table>
</form>

 

+ Recent posts