Web programing/JSP

JSP. DB 연동 페이지, 회원가입, 출력페이지, 삭제기능

sosal 2014. 7. 24. 01:30
반응형

/*

 * http://sosal.kr/

 * made by so_Sal

 */



-------------------------------  예  제  -------------------------------

/*
 * -- input.html --
 * id, password, name, email 등의 간단한 정보를 join.jsp 에 전달
 */

 

<%@ page contentType="text/html;charset=euc-kr" %>
<HTML>
<HEAD><TITLE>회원 입력</TITLE></HEAD>
<BODY bgcolor=black>
<FORM action="join.jsp" method="post">
<font color=gray>
아이디 : <INPUT type="text" name="id"              maxlength="8"><BR>
암호 :    <INPUT type="password" name="pwd"  maxlength="8"><BR>
이름 :    <INPUT type="text" name="name"         maxlength="12"><BR>
e-mail : <INPUT type="text" name="email"         maxlength="25"><P>
<INPUT type="submit" value=" 저 장 "></font>  
</FORM>
</BODY>
</HTML>

-------------------------------  예  제  -------------------------------










-------------------------------  예  제  -------------------------------
/* -- join.jsp --
 * input으로부터 넘어온 데이타들을 변수화 후에
 * 데이타베이스로 쿼리문을 보낸다.
 * 그 이후 output.jsp에서 데이터베이스에 추가된
 * 회원들의 정보를 출력한다.
 */


<%@ page contentType="text/html;charset=utf-8" import="java.sql.*" %>

<%
 request.setCharacterEncoding("utf-8");  //Set encoding
 String id  =        request.getParameter("id");            
 String name =   request.getParameter("name");
 String pwd =     request.getParameter("pwd");
 String email  =   request.getParameter("email");
//POST로 Input.html로부터 입력받은 내용을 변수화

 try{
  Class.forName("com.mysql.jdbc.Driver");
  String url = "jdbc:mysql://localhost:3306/web02?useUnicode=true&characterEncoding=utf-8";
  Connection con = DriverManager.getConnection(url,"admin","1234");
  Statement stat = con.createStatement();

  String query = "INSERT INTO member(id, name, pwd, email)  VALUES('"+id+"','"+name+"','"+pwd+"','"+email+"')";
//INSERT into member(id,name,pwd,email) VALUES ('id','name','pwd','email') 쿼리문
  stat.executeUpdate(query);
  stat.close();
  con.close();
 }
 catch(Exception e){
  out.println( e );
 }
 response.sendRedirect("output.jsp"); 
%>
-------------------------------  예  제  -------------------------------


// 이제 데이터베이스에 회원이 추가 되었으니 어떤 회원이 있는지 알아보자.


/* -- output.jsp --
 * 데이터베이스에서 회원 정보를 가져온 후
 * 테이블에 출력한다.
 */
-------------------------------  예  제  -------------------------------
<%@ page  contentType="text/html;charset=euc-kr" 
        import="java.sql.DriverManager,
                   java.sql.Connection,
                   java.sql.Statement,
                   java.sql.ResultSet,
                   java.sql.SQLException"
%>
<%

  response.setContentType("text/html;charset=euc-kr;");
  request.setCharacterEncoding("euc-kr");     //charset, Encoding 설정

  Class.forName("com.mysql.jdbc.Driver");    // load the drive
  String DB_URL = 
          "jdbc:mysql://localhost:3306/web02?useUnicode=true&characterEncoding=utf-8";
                 // 주의 : test by changing mydb to name that you make

  String DB_USER = "admin";
  String DB_PASSWORD= "1234";

  Connection conn= null;
  Statement stmt = null;
  ResultSet rs   = null;

  try {
      conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
      stmt = conn.createStatement();

      String query = "SELECT id, name, pwd, email FROM member";
      rs = stmt.executeQuery(query);
 %>

<form action="delete_do.jsp" method="post">
<table border="1" cellspacing="0">
<tr>
<td>ID</td>
<td>Name</td>
<td>password</td>
<td>email</td>
<th>비고</th>
</tr>
<%
    while(rs.next()) { //rs 를 통해 테이블 객체들의 필드값을 넘겨볼 수 있다.
%><tr>
<td><%=rs.getString(1)%></td>
<td><%=rs.getString(2)%></td>
<td><%=rs.getString("pwd")%></td>
<td><%=rs.getString("email")%></td>
<td><a href="delete_do.jsp?del=<%=rs.getString(1)%>">삭제</a>
</td>
</tr>
<%
    } // end while
%></table>
</form>
<%
  rs.close();        // ResultSet exit
  stmt.close();     // Statement exit
  conn.close();    // Connection exit
}
catch (SQLException e) {
      out.println("err:"+e.toString());
}
%>


-------------------------------  예  제  -------------------------------







/*
 *  데이터 베이스에 추가하는 페이지의 소스를 살펴보았다.
 *  삭제를 담당할 페이지의 소스다.
 *  출력하는 부분에서 석제 버튼마다 각 ID의 변수를 get으로
 *  전송하고 있기 때문에, 삭제 페이지는
 *  넘어온 변수를 이용하여 쿼리문만 날려주면 된다.
 */



-------------------------------  예  제  -------------------------------
<%@ page contentType="text/html;charset=utf-8" import="java.sql.*" %>

<%
 request.setCharacterEncoding("utf-8");
 String id = request.getParameter("del");

 try{
  Class.forName("com.mysql.jdbc.Driver");
  String url = "jdbc:mysql://localhost:3306/web02?useUnicode=true&characterEncoding=utf-8";
  Connection con = DriverManager.getConnection(url,"admin","1234");
  Statement stat = con.createStatement();

  String query = "DELETE FROM member where id='" + request.getParameter("del")+"'";
  //쿼리문 전송
  stat.executeUpdate(query); //return 1.
  stat.close();
  con.close();
  response.sendRedirect("output.jsp") ;
 }

  catch(Exception e){
  out.println( e );
 }
 %>
-------------------------------  예  제  -------------------------------

'Web programing > JSP' 카테고리의 다른 글

JSP. error 에러 예외 처리  (0) 2014.07.24
JSP 객체 (속성 + 메소드)  (0) 2014.07.24
JSP 지시자 (Directive)  (0) 2014.07.24
JSP 기본문법 / 식별태그, 및 주석  (0) 2014.07.24