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>
<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>
<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>
<삭제를 클릭합니다.>
<삭제 되는걸 확인할 수 있습니다.>
'JSP(Java Server Pages)' 카테고리의 다른 글
14. JSTL SQL QUERY, update, dataParam, function (0) | 2017.02.28 |
---|---|
13. JSTL(JSP Standard Tag Library), EL(Expression Language) (0) | 2017.02.27 |
11. Java Beans StudentDataBase 를 이용한 테이블 STUDENT 조회 프로그램 (0) | 2017.02.23 |
10. Oracle Database 연동 테스트 (0) | 2017.02.22 |
9. <JSP> 데이터베이스 연동, Insert, Select, Update, Delete (0) | 2017.02.21 |