1. Java Beans 사용 CP 이용 테스트


package univ;


import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.util.ArrayList;


import javax.naming.InitialContext;

import javax.sql.DataSource;


// DBCP 를 이용한 STUDENT 테이블 연동 자바빈즈 프로그램

public class StudentDatabaseCP {

private Connection conn = null;

private PreparedStatement pstmt = null;

private DataSource ds = null;

public StudentDatabaseCP(){

try{

InitialContext ctx = new InitialContext();

ds = (DataSource)ctx.lookup("java:comp/env/jdbc/OracleDB");

}catch(Exception e){

e.printStackTrace();

}

}

void connection()

{

try{

conn = ds.getConnection();

}catch(Exception e){

e.printStackTrace();

}

}

void disconnection()

{

if(pstmt != null){

try{

pstmt.close();

}catch (Exception e){

e.printStackTrace();

}

}

if(conn != null){

try{

conn.close();

}catch (Exception e){

e.printStackTrace();

}

}

}

// 게시판의 모든 레코드를 반환하는 메소드

public ArrayList<StudentEntity> getStudentList()

{

connection();

ArrayList<StudentEntity> list = new ArrayList<>();

String SQL = "SELECT * FROM student";

try{

pstmt = conn.prepareStatement(SQL);

ResultSet rs = pstmt.executeQuery();

while (rs.next()){

// 한 행의 학생 정보를 저장할 자바빈즈 객체 생성

StudentEntity stu = new StudentEntity();

// 한 행의 정보를 자바빈즈에 저장

stu.setId(rs.getString("id"));

stu.setPasswd(rs.getString("passwd"));

stu.setName(rs.getString("name"));

stu.setYear(rs.getInt("year"));

stu.setSnum(rs.getString("snum"));

stu.setDepart(rs.getString("depart"));

stu.setMobile1(rs.getString("mobile1"));

stu.setMobile2(rs.getString("mobile2"));

stu.setAddress(rs.getString("address"));

stu.setEmail(rs.getString("email"));

// 리스트에 추가

list.add(stu);

}

rs.close();

}catch(Exception e){

e.printStackTrace();

}

finally{

disconnection();

}

return list;

}

}


firstjsp > src > univ > StudentDatabaseCP.java로 저장



<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Java Beans 사용 CP 이용 테스트</title>

</head>

<body>


<%@ page import="java.util.ArrayList, univ.StudentEntity" %>


<h2> Java Beans StudentDatabaseCP 를 이용한 STUDENT 테이블 조회 </h2>

<hr size="5" color="green">

<h2> 학생 정보 조회 </h2>


<jsp:useBean id="stdtdb" class="univ.StudentDatabaseCP" scope="page"/>


<%

ArrayList<StudentEntity> list = stdtdb.getStudentList();

int counter = list.size();

if(counter > 0){

%>

<table width="100%" border="2" cellpadding="1">

<tr>

<td align="center"><b>아이디</b></td>

<td align="center"><b>암호</b></td>

<td align="center"><b>이름</b></td>

<td align="center"><b>입학년도</b></td>

<td align="center"><b>학번</b></td>

<td align="center"><b>학과</b></td>

<td align="center"><b>휴대폰1</b></td>

<td align="center"><b>휴대폰2</b></td>

<td align="center"><b>주소</b></td>

<td align="center"><b>이메일</b></td>

<td align="center"><b>성별</b></td>

</tr>

<%

// for(int i = 0 ; i < list.size() ; i++){

for(StudentEntity stdt : list){

%>

<tr>

<td align="center"><%=stdt.getId() %></td>

<td align="center"><%=stdt.getPasswd() %></td>

<td align="center"><%=stdt.getName() %></td>

<td align="center"><%=stdt.getYear() %></td>

<td align="center"><%=stdt.getSnum() %></td>

<td align="center"><%=stdt.getDepart() %></td>

<td align="center"><%=stdt.getMobile1() %></td>

<td align="center"><%=stdt.getMobile2() %></td>

<td align="center"><%=stdt.getAddress() %></td>

<td align="center"><%=stdt.getEmail() %></td>

<td align="center"><%

if(stdt.getSnum().indexOf("1")==0)

{

out.print("남자");

}else{

out.print("여자");

}

%></td>

</tr>

<%

}

%>

</table>

<%

}

%>

</center>


<hr size="5" color="#ddc033">

<p>

조회된 학생수가 <%= counter %> 명 입니다..


<hr size="5" color="red">


</body>

</html>



2. 회원관리 시스템

create table member_1(

id varchar2(15),

password varchar2(10),

name varchar2(15),

age number,

gender varchar2(5),

email varchar2(30),

address varchar2(20),

primary key(id))



<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>회원관리 시스템 회원가입 페이지</title>


<STYLE>

table{

margin: auto;

width: 400px;

border: 1px solid gray;

text-align: center;

background-color: #bbb000;

}

.td_title{

font-weight: bold;

font-size: x-large;

}


</STYLE>

</head>

<body>

<form action="joinProcess.jsp" name="joinform" method="post">

<table border="1">


<tr>

<td colspan="2" class="td_title">회원가입 페이지</td>

</tr>

<tr>

<td><label for="id">아이디</label></td>

<td><input type="text" name="id" id="id"></td>

</tr>

<tr>

<td><label for="pass">비밀번호</label></td>

<td><input type="password" name="pass" id="pass"></td>

</tr>

<tr>

<td><label for="name">이름</label></td>

<td><input type="text" name="name" id="name"></td>

</tr>

<tr>

<td><label for="age">나이</label></td>

<td><input type="text" name="age" id="age"></td>

</tr>

<tr>

<td><label for="gender1">성별</label></td>

<td>

<input type="radio" name="gender" id="gender1" value="남" checked />남자

<input type="radio" name="gender" id="gender2" value="여">여자

</td>

</tr>

<tr>

<td><label for="email">이메일</label></td>

<td><input type="text" name="email" id="email"></td>

</tr>

<tr>

<td><label for="address">주소</label></td>

<td><input type="text" name="address" id="address"></td>

</tr>

<tr>

<td colspan="2">

<a href="javascript:joinform.submit()">회원가입</a>&nbsp;&nbsp;

<a href="javascript:joinform.reset()">다시 작성</a>

</td>

</tr>

</table>

</form>

</body>

</html>

joinForm.jsp로 저장



<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ page import="java.sql.*" %>

<%@ page import="javax.sql.*" %>

<%@ page import="javax.naming.*" %>


<%

request.setCharacterEncoding("utf-8");

String id = request.getParameter("id");

String pass = request.getParameter("pass");

String name = request.getParameter("name");

int age = Integer.parseInt(request.getParameter("age"));

String gender = request.getParameter("gender");

String email = request.getParameter("email");

String address = request.getParameter("address");


Connection conn = null;

PreparedStatement pstmt = null;

try{

Context init = new InitialContext();

DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");

conn = ds.getConnection();

pstmt = conn.prepareStatement("INSERT INTO member_1 VALUES(?,?,?,?,?,?,?)");

pstmt.setString(1, id);

pstmt.setString(2, pass);

pstmt.setString(3, name);

pstmt.setInt(4, age);

pstmt.setString(5, gender);

pstmt.setString(6, email);

pstmt.setString(7, address);

int result = pstmt.executeUpdate();

if(result != 0)

{

out.println("<script>");

out.println("location.href='loginForm.jsp'");

out.println("</script>");

}else

{

out.println("<script>");

out.println("location.href='joinForm.jsp'");

out.println("</script>");

}

}catch(Exception e){

e.printStackTrace();

}

finally{

try{

pstmt.close();

conn.close();

}catch(Exception e)

{

e.printStackTrace();

}

}

%>

joinProcess.jsp로 저장



<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>회원관리 시스템 로그인 페이지</title>


<STYLE>

table{

margin: auto;

width: 400px;

border: 1px solid gray;

text-align: center;

background-color: #bbb000;

}


.td_title{

font-weight: bold;

font-size: x-large;

}

</STYLE>


</head>

<body>

<form action="loginProcess.jsp" name="loginform" method="post">

<table>

<tr>

<td colspan="2" class="td_title">로그인 페이지</td>

</tr>

<tr>

<td><label for="id">아이디 : </label></td>

<td><input type="text" name="id" id="id"></td>

</tr>

<tr>

<td><label for="pass">비밀번호 : </label></td>

<td><input type="password" name="pass" id="pass"></td>

</tr>


<tr>

<td colspan="2">

<a href="javascript:loginform.submit()">로그인</a>&nbsp;&nbsp;

<a href="joinForm.jsp">회원가입</a>

</td>

</tr>

</table>

</form>

</body>

</html>

loginForm.jsp로 저장 및 실행

<회원가입을 클릭합니다.>


<위와 같은 방법으로 작성하고 회원가입을 클릭하면 가입이 완료 됩니다.>



3. 로그인 및 관리자 시스템


<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>


<%@ page import="java.sql.*" %>    

<%@ page import="javax.sql.*" %>    

<%@ page import="javax.naming.*" %>    

    

<%

request.setCharacterEncoding("utf-8");

String id = request.getParameter("id");

String pass = request.getParameter("pass");


Connection conn = null;

PreparedStatement pstmt = null;

ResultSet rs = null;

try{

Context init = new InitialContext();

DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");

conn = ds.getConnection();

pstmt = conn.prepareStatement("SELECT * FROM member_1 WHERE id=?");

pstmt.setString(1, id);

rs = pstmt.executeQuery();

if(rs.next())

{

if(pass.equals(rs.getString("password")))

{

session.setAttribute("id", id);

out.println("<script>");

out.println("location.href='main.jsp'");

out.println("</script>");

}

}

out.println("<script>");

out.println("location.href='loginForm.jsp'");

out.println("</script>");

}catch(Exception e)

{

e.printStackTrace();

finally{

try{

rs.close();

pstmt.close();

conn.close();

} catch(Exception e){

e.printStackTrace();

}

}

%>

loginProcess.jsp로 저장



<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%


String id = null;

if(session.getAttribute("id")!= null)

{

id = (String)session.getAttribute("id");

}

else{

out.println("<script>");

out.println("location.href='loginForm.jsp'");

out.println("</script>");

}

%>     

    

    

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>회원관리 시스템 메인 페이지</title>

</head>

<body>

<p>

<hr size="5" color="green">

<h3><%=id %>로 로그인 하였습니다.</h3>

<%

if(id.equals("admin"))

{

%>

<a href="member_list.jsp"> 관리자 모드 접속(회원목록 보기)</a>

<%

}

%>

<hr size="5" color="red">

</body>

</html>

main.jsp로 저장

<일반 사용자로 로그인 하였을때 화면>


메인화면에서 회원가입할때 아이디를 admin으로 하여 가입하면 관리자 시스템으로 로그인 됩니다.



<일반 사용자와 달리 관리자모드 접속이 있습니다.>

<클릭하면 에러 페이지가 나올텐데 아래와 같이 jsp파일을 만들면 회원목록에 들어갈 수 있습니다.>



<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ page import="java.sql.*" %>

<%@ page import="javax.sql.*" %>

<%@ page import="javax.naming.*" %>


<%

String id = null;


if((session.getAttribute("id")== null) || (!((String)session.getAttribute("id")).equals("admin"))){

out.println("<script>");

out.println("location.href='loginForm.jsp'");

out.println("</script>");

}


Connection conn = null;

PreparedStatement pstmt = null;

ResultSet rs = null;


try{

Context init = new InitialContext();

DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");

conn = ds.getConnection();

pstmt = conn.prepareStatement("SELECT * FROM member_1");

rs = pstmt.executeQuery();

}catch(Exception e)

{

e.printStackTrace();

}

%>


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>회원 관리 시스템 관리자 모드(회원 목록 보기)</title>

<STYLE>

table {

margin: auto;

width: 400px;

border: 1px solid gray;

text-align: center;

}

.td_title {

font-weight: bold;

font-size: x-large;

}

</STYLE>

</head>

<body>

<table>

<tr>

<td colspan="2" class="td_title">회원목록</td>

</tr>

<%

while(rs.next()){

%>

<tr>

<td>

<a href="member_info.jsp?id=<%=rs.getString("id")%>">

<%=rs.getString("id") %>

</a>

</td>

<td>

<a href="member_delete.jsp?id=<%=rs.getString("id")%>">

삭제

</a>

</td>

</tr>

<%

}

%>

<tr>

<td colspan="2"><a href="loginForm.jsp">로그인 돌아가기</a></td>

</tr>

</table>

</body>

</html>

member_list.jsp로 저장

<회원목록>


회원정보 보기


<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>


<%@ page import="java.sql.*" %>

<%@ page import="javax.sql.*" %>

<%@ page import="javax.naming.*" %>



<%

String id = null;

if((session.getAttribute("id")==null) ||(!((String)session.getAttribute("id")).equals("admin"))){

out.println("<script>");

out.println("location.href='loginForm.jsp'");

out.println("</script>");

}


String info_id = request.getParameter("id");

Connection conn = null;

PreparedStatement pstmt = null;

ResultSet rs = null;

try{

Context init = new InitialContext();

DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");

conn = ds.getConnection();

pstmt = conn.prepareStatement("SELECT * FROM member_1 WHERE id=?");

pstmt.setString(1, info_id);

rs = pstmt.executeQuery();

rs.next();

}catch(Exception e)

{

e.printStackTrace();

}

%>


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>회원 관리 시스템 관리자 모드(회원 정보 보기)</title>

<STYLE>

table{

margin: auto;

width: 400px;

border: 1px solid gray;

text-align: center;

}

</STYLE>

</head>

<body>


<table>

<tr>

<td>아이디 : </td>

<td><%=rs.getString("id") %></td>

</tr>

<tr>

<td>비밀번호 : </td>

<td><%=rs.getString("password") %></td>

</tr>

<tr>

<td>이름 : </td>

<td><%=rs.getString("name") %></td>

</tr>

<tr>

<td>나이 : </td>

<td><%=rs.getString("age") %></td>

</tr>

<tr>

<td>성별 : </td>

<td><%=rs.getString("gender") %></td>

</tr>

<tr>

<td>이메일 : </td>

<td><%=rs.getString("email") %></td>

</tr>

<tr>

<td>주소 : </td>

<td><%=rs.getString("address") %></td>

</tr>

<tr>

<td colspan="2"><a href="member_list.jsp">리스트 돌아감</a></td>

</tr>

</table>

</body>

</html>

<아이디를 클릭합니다.>


<회원정보가 나옵니다.>


회원삭제하기


<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ page import="java.sql.*" %>    

<%@ page import="javax.sql.*" %>    

<%@ page import="javax.naming.*" %>    

    

    <%

    

    String id = null;

    

    if((session.getAttribute("id")==null)||

    (!((String)session.getAttribute("id")).equals("admin")))

    {

    out.println("<script>");

    out.println("location.href='loginForm.jsp'");

    out.println("</script>");

   

    }

    

    String delete_id = request.getParameter("id");

   

    Connection conn = null;

    PreparedStatement pstmt = null;

    ResultSet rs = null;

    

    try{

    Context init = new InitialContext();

    DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");

   

    conn = ds.getConnection();

   

    pstmt = conn.prepareStatement("DELETE FROM member_1 WHERE id=?");

    pstmt.setString(1, delete_id);

   

    int count = pstmt.executeUpdate();

   

    if(count > 0)

    {

    System.out.println("삭제 되었습니다.");

    }

    else

    {

    System.out.println("레코드가 존재 하지 않습니다.");

    }

   

    out.println("<script>");

    out.println("location.href='member_list.jsp'");

    out.println("</script>");

   

    }catch(Exception e)

    {

    e.printStackTrace();

    }

    finally{

   

    try{

    pstmt.close();

    conn.close();

   

    }catch(Exception e){

    e.printStackTrace();

    }

    }

    %>

    <hr size="5" color="green">

    <A href="member_list.jsp">리스트로 돌아감</A>

    

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>


</body>

</html>

<삭제를 클릭합니다.>


<삭제 되는걸 확인할 수 있습니다.>

+ Recent posts