Project.zip



MYSQL Gate를 열어 아래를 작성 해서 프로시져 생성.

CREATE PROCEDURE getZipcode

(IN keyword VARCHAR(100))

BEGIN

  SELECT zipcode, sido, gugun,dong, bunji

  FROM zipcode

  WHERE dong LIKE CONCAT('%',keyword,'%');

END

그러면 왼쪽 Procedures에 추가되면 우측버튼을 눌러 excute해서 들어가지면

value에 값을 입력해서 ok하면, DELIMITER가 작성되어있고 run하면 value 값에 쓴 것을 검색한다.

-----

어제 우편번호 검색을 스토드 프로시져로 바꿔보면

SelectService.java

package kr.co.javaexpert.libs.model;


import java.sql.Connection;

import java.sql.SQLException;

import java.util.Vector;


public class SelectService {

public Vector<ZipcodeBean> select(String keyword){

Vector<ZipcodeBean> vector = null;

Connection conn = null;

try {

conn = DBConnection.getConnection("pool");

vector = ZipcodeDAO.select(conn, keyword);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return vector;

}

}


ZipcodeDAO.java

package kr.co.javaexpert.libs.model;


import java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Vector;


public class ZipcodeDAO {

public static Vector<ZipcodeBean> select(Connection conn, String keyword)

throws SQLException {

String sql = "{call getZipcode(?)}";

CallableStatement cstmt = conn.prepareCall(sql);

cstmt.setString(1, keyword);

ResultSet rs = cstmt.executeQuery();

Vector<ZipcodeBean> vector = new Vector<ZipcodeBean>(1,1);

while(rs.next()){

ZipcodeBean zip = new ZipcodeBean();

zip.setZipcode(rs.getString("zipcode"));

zip.setSido(rs.getString("sido"));

zip.setGugun(rs.getString("gugun"));

zip.setDong(rs.getString("dong"));

zip.setBunji(rs.getString("bunji"));

vector.addElement(zip);

}

if(rs != null) rs.close();

if(cstmt != null) cstmt.close();

return vector;

}

}

위 두개만 바꾸면 된다.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

========================================

회원가입

erwin 켜서 테이블 만들고 Database - Database connection 해주고,

Tools - Forward Enginner - Schema Generation 누르고 preview 눌러서 디스크모양 눌러 저장함.

CentOS의 바탕화면으로 옮겨서

su 

mysql -u root -p

use test;

source /home/mino/Desktop/Member.sql

desc Member; 로 잘 구워졌나 확인.

C:\Windows\System32\drivers\etc폴더의 hosts파일을

192.168.89.151 localhost

192.168.89.151 www.javasoft.com

윈도우즈 아이피 추가 후 저장.

프로젝트 할 때는 웹 서버의 아이피를 적으면 됨.

그리고 브라우저에서 www.javasoft.com 으로 접속하면 나의 WebHome의 파일을 볼 수 있음.

Server 프로젝트에서 server.xml에 

      <Context docBase="Project" path="/Project" reloadable="true" source="org.eclipse.jst.jee.server:Project">

      <Resource auth="Container" 

                       driverClassName="com.mysql.jdbc.Driver" 

                       maxActive="10" 

                       maxIdle="10" 

                       maxWait="10000" 

                       name="jdbc/project" 

                       password="javamysql" 

                       type="javax.sql.DataSource" 

                       url="jdbc:mysql://192.168.228.133:3306/test" 

                       username="root"/>

      </Context>

추가해주고,

작업 프로젝트의 web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

  <display-name>Project</display-name>

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

  

  <resource-ref>

  <description>Project JNDI</description>

  <res-ref-name>jdbc/project</res-ref-name>

  <res-type>javax.sql.DataSource</res-type>

  <res-auth>Container</res-auth>

  </resource-ref>

</web-app>


com.javasoft.libs.model 패키지의

DBConnection.java

package com.javasoft.libs.model;


import java.sql.Connection;

import java.sql.SQLException;


import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.sql.DataSource;


public class DBConnection {

public static Connection getConnection(){

Connection conn = null;

try{

Context context = new InitialContext();

Context other = (Context)context.lookup("java:comp/env");

DataSource ds = (DataSource)other.lookup("jdbc/project");   

conn = ds.getConnection();

}catch(NamingException ex){

System.out.println(ex.toString());

}catch(SQLException ex){

System.out.println(ex.toString());

}

return conn;

}

}


DBClose.java

package com.javasoft.libs.model;


import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;


public class DBClose {

public static void close(Connection conn){

try {

if(conn != null) conn.close();

} catch (SQLException e) {

System.out.println(e.toString());

}

}

}


연결이 잘되었는지 EclipseEE에 Data Source Explorer 에 My Mysql을 접속.



회원정보 하나 넣어주고

INSERT INTO Member

VALUES('javaexpert','1234556','조성모','446-769','경기도 용인시 기흥구 상하동','aaa@aaaa.com');

프로시져 하나 만들어주고,

CREATE PROCEDURE `test`.`isMember`(IN param_userid VARCHAR(12))

BEGIN

  SELECT userid FROM Member

  WHERE userid = param_userid;

END 

프로시져 하나 더 만들어주고

CREATE PROCEDURE insertMember 

(

IN v_userid VARCHAR(12),

    IN v_passwd VARCHAR(12),

    IN v_name VARCHAR(20),

    IN v_zipcode CHAR(7),

    IN v_address VARCHAR(200),

    IN v_email VARCHAR(20)

)

BEGIN

INSERT INTO Member(userid, passwd, name, zipcode, address, email)

    VALUES(v_userid, v_passwd, v_name, v_zipcode, v_address, v_email);

END

프로시져 추가.

CREATE PROCEDURE checkMember

(

IN v_userid VARCHAR(12)

)

BEGIN

SELECT passwd

    FROM Member

    Where userid = v_userid;

END

프로시져 추가.

CREATE PROCEDURE `test`.`getUserName`(

 IN v_userid VARCHAR(12)

)

BEGIN

SELECT name

    FROM Member

    WHERE userid = v_userid;

END

프로시져 추가.

CREATE PROCEDURE `test`.`loginMember`(

IN v_userid VARCHAR(12),

    IN v_passwd VARCHAR(12)

)

BEGIN

SELECT userid, passwd

FROM Member

WHERE userid = v_userid AND passwd = v_passwd;

END

프로시져 추가.

CREATE PROCEDURE `test`.`checkUserid`(

IN v_userid VARCHAR(12)

)

BEGIN

SELECT userid

FROM Member

WHERE userid = v_userid;

END

-----


com.javasoft.libs.controller 패키지

InsertService.java

package com.javasoft.libs.controller;


import java.sql.Connection;

import java.sql.SQLException;


import com.javasoft.libs.model.DBClose;

import com.javasoft.libs.model.DBConnection;

import com.javasoft.libs.model.MemberDAO;

import com.javasoft.libs.model.MemberDTO;


public class InsertService {

public boolean insert(MemberDTO member){

boolean flag = false;  

Connection conn = null;

try {

conn = DBConnection.getConnection();

flag = MemberDAO.insert(conn, member);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return flag;

}

}


SelectService.java

package com.javasoft.libs.controller;


import java.sql.Connection;

import java.sql.SQLException;

import java.util.Vector;


import com.javasoft.libs.model.DBClose;

import com.javasoft.libs.model.DBConnection;

import com.javasoft.libs.model.MemberDAO;

import com.javasoft.libs.model.ZipcodeDAO;

import com.javasoft.libs.model.ZipcodeDTO;


public class SelectService {

public String getUserName(String userid){

String name = null;

Connection conn = null;

try {

conn = DBConnection.getConnection();

name = MemberDAO.getUserName(conn, userid);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return name;

}

public int checkMember(String userid, String passwd) {

int number = 0;

Connection conn = null;

try {

conn = DBConnection.getConnection();

number = MemberDAO.memberLogin(conn, userid, passwd);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return number;

}

public boolean isMember(String userid){

boolean isExists = true;  //사용할 수 없음.

Connection conn = null;

try {

conn = DBConnection.getConnection();

isExists = MemberDAO.isMember(conn, userid);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return isExists;

}

public Vector<ZipcodeDTO> select(String keyword){

Vector<ZipcodeDTO> vector = null;

Connection conn = null;

try {

conn = DBConnection.getConnection();

vector = ZipcodeDAO.select(conn, keyword);

} catch (SQLException e) {

System.out.println(e.toString());

} finally{

DBClose.close(conn);

}

return vector;

}

}


com.javasoft.libs.model 패키지

DBConnection.java

package com.javasoft.libs.model;


import java.sql.Connection;

import java.sql.SQLException;


import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.sql.DataSource;


public class DBConnection {

public static Connection getConnection(){

Connection conn = null;

try{

Context context = new InitialContext();

Context other = (Context)context.lookup("java:comp/env");

DataSource ds = (DataSource)other.lookup("jdbc/project");

conn = ds.getConnection();

}catch(NamingException ex){

System.out.println(ex.toString());

}catch(SQLException ex){

System.out.println(ex.toString());

}

return conn;

}

}


DBCloses.java

package com.javasoft.libs.model;


import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;


public class DBClose {

public static void close(Connection conn){

try {

if(conn != null) conn.close();

} catch (SQLException e) {

System.out.println(e.toString());

}

}

}


MemberDTO,java

package com.javasoft.libs.model;


public class MemberDTO {

private String userid;

private String passwd;

private String name;

private String zipcode;

private String address;

private String email;

public MemberDTO(){}

public String getUserid() {

return userid;

}

public void setUserid(String userid) {

this.userid = userid;

}

public String getPasswd() {

return passwd;

}

public void setPasswd(String passwd) {

this.passwd = passwd;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getZipcode() {

return zipcode;

}

public void setZipcode(String zipcode) {

this.zipcode = zipcode;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

}


MemberDAO.java

package com.javasoft.libs.model;


import java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;


public class MemberDAO {

public static String getUserName(Connection conn, String userid)

throws SQLException{

String name = null;

String sql = "{call getUserName(?)}";

CallableStatement cstmt = conn.prepareCall(sql);

cstmt.setString(1, userid);

ResultSet rs = cstmt.executeQuery();

rs.next();

name = rs.getString("name"); 

return name;

}

//0:아이디가 없을 때, 1: 아이디는 있는데, 패스워드가 틀릴 때, 2:둘다 맞을 때

public static int memberLogin(Connection conn, String userid, String passwd)

throws SQLException {

int number = 0;

String sql = "{call checkMember(?)}";

CallableStatement cstmt = conn.prepareCall(sql);

cstmt.setString(1, userid.trim());

ResultSet rs = cstmt.executeQuery();

if(rs.next()){

String dbpwd = rs.getString("passwd").trim();

if(dbpwd.equals(passwd)) number = 2;

else number = 1;

}else

number = 0;

return number;

}

public static boolean insert(Connection conn, MemberDTO member)

throws SQLException{

boolean flag = false;

String sql = "{call insertMember(?,?,?,?,?,?)}";

CallableStatement cstmt = conn.prepareCall(sql);

cstmt.setString(1, member.getUserid());

cstmt.setString(2, member.getPasswd());

cstmt.setString(3, member.getName());

cstmt.setString(4, member.getZipcode());

cstmt.setString(5, member.getAddress());

cstmt.setString(6, member.getEmail());

int cnt = cstmt.executeUpdate();

if(cnt > 0) flag = true;

if(cstmt != null) cstmt.close();

return flag;

}

public static boolean isMember(Connection conn, String userid)

throws SQLException {

String sql = "{call isMember(?)}";

CallableStatement cstmt = conn.prepareCall(sql);

cstmt.setString(1, userid);

ResultSet rs = cstmt.executeQuery();

boolean isExists = rs.next();

//isExists 가 true이면 사용할 수 없는 아이디, false 이면 사용할 수 있다.

if(rs != null) rs.close();

if(cstmt != null) cstmt.close();

return isExists;

}

}


ZipcodeDTO.java

package com.javasoft.libs.model;


public class ZipcodeDTO {

private String zipcode;

private String sido;

private String gugun;

private String dong;

private String bunji;

public String getZipcode() {

return zipcode;

}

public void setZipcode(String zipcode) {

this.zipcode = zipcode;

}

public String getSido() {

return sido;

}

public void setSido(String sido) {

this.sido = sido;

}

public String getGugun() {

return gugun;

}

public void setGugun(String gugun) {

this.gugun = gugun;

}

public String getDong() {

return dong;

}

public void setDong(String dong) {

this.dong = dong;

}

public String getBunji() {

return bunji;

}

public void setBunji(String bunji) {

this.bunji = bunji;

}

@Override

public String toString(){

return String.format("(%s) %s %s %s", zipcode, sido, gugun, dong);

}

}


ZipcodeDAO.java

package com.javasoft.libs.model;


import java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Vector;


public class ZipcodeDAO {

public static Vector<ZipcodeDTO> select(Connection conn, String keyword)

throws SQLException {

String sql = "{call getZipcode(?)}";

CallableStatement cstmt = conn.prepareCall(sql);

cstmt.setString(1, keyword);

ResultSet rs = cstmt.executeQuery();

Vector<ZipcodeDTO> vector = new Vector<ZipcodeDTO>(1,1);

while(rs.next()){

ZipcodeDTO zip = new ZipcodeDTO();

zip.setZipcode(rs.getString("zipcode"));

zip.setSido(rs.getString("sido"));

zip.setGugun(rs.getString("gugun"));

zip.setDong(rs.getString("dong"));

zip.setBunji(rs.getString("bunji"));

vector.addElement(zip);

}

if(rs != null) rs.close();

if(cstmt != null) cstmt.close();

return vector;

}

}


com.javasoft.libs.util 패키지

CharConversion.java

package com.javasoft.libs.util;


public class CharConversion {

public static String entoutf8(String en){

String utf8 = null;

try{

utf8 = new String(en.getBytes("ISO8859_1"), "utf-8");

}catch(java.io.UnsupportedEncodingException ex){}

return utf8;

}

public static String utf8toen(String utf8){

String en = null;

try{

en = new String(utf8.getBytes("utf-8"), "ISO8859_1");

}catch(java.io.UnsupportedEncodingException ex){}

return en;

}

}


WebContent 폴더의

common 폴더

style.css

@CHARSET "UTF-8";

/* 스크롤바 설정 */

body {

    scrollbar-face-color: #ffffff; 

    scrollbar-shadow-color: #003366;

    scrollbar-highlight-color: #003366;

    scrollbar-3dlight-color: #ffffff; 

    scrollbar-darkshadow-color: #dddddd; 

scrollbar-track-color: #003366;

    scrollbar-arrow-color: #003366;

    }


/* 링크 설정 */

  a:link        {color:#003399;text-decoration:none}

  a:visited     {color:midnightblue;text-decoration:none}

  a:hover       {color:black;text-decoration:underline}


/* Input 설정 */

.input  

{font:10pt tahoma; color:#444444; border:solid 1 #d6d3ce; background-color:white}

.inputb 

{font:9pt tahoma; color:#444444; border:solid 1px #888888 #d6d3ce; background-color:#ffffff}

.inputa 

{font:10pt tahoma; color:#444444; width:70px; height:20px; border:solid 1px #888888;background-color:#eeeeef}


/* Top Menu 설정 */

.menu   

{font:bold 9pt 굴림;color:#adc7de; text-align:right;background-color:#4a79a5}

.menu1  

    {font:bold 18pt 굴림; color:#ffffff; background-color:#003366} 


/* Left 설정 */

.left

    {Font:bold 14pt 굴림; color:#444444; border:1px; border-style:solid; border-color:#ffffff; background-color:#ffffff}

.left1

    {border:1px; border-style:none solid solid solid; border-color:#a5bece}

.left2

    {border:1px; border-style:none solid none solid; border-color:#a5bece}


/* Main 설정 */

.main

{font:bold 10pt 굴림; color:#444444; border:1px; border-style:solid; border-color:silver;background-color:#ffffff}

.main1

    {left:180px}


/* Font 설정 */

.fonta  

    {font:bold 16pt 굴림; color:#222222}

.fontb  

    {font:bold 8pt 굴림; color:#000099}

.fontc  

    {font:bold 9pt 굴림; color:#ffffff;background-color:#004080;padding-left:15}

.fontd  

    {font:bold 8pt tahoma; color:#444444}

.fonte

    {font:bold 9pt tahoma; color:#444444}



/* Member 설정 */

.boarda

{font:bold 12pt tahoma; text-align:center; color:#ffffff; border:1px; border-style:solid; border-color:silver;background-color:#1065b5}

.boardb

{font:bold 9pt tahoma; text-align:center; color:#444444; border:1px; border-style:solid none; border-color:silver;background-color:#f7f3f7}

.boardc

{font:bold 8pt tahoma;color:#444444; border:1px; border-style:none none dashed; border-color:silver;padding-left:28}

.boardd

{font:bold 9pt 굴림; color:#222222; border:1px; border-style:solid none; border-color:silver}


/* 게시판 설정 */

.bo1    

{font:bold 14pt tahoma ; color:#ffffff; text-align:center; background-color:#006F9B}

.bo2

{font:bold 10pt 굴림;text-align:center;color:#444444; border:1px; border-style:solid none; border-color:silver; background-color:#dddddd}

.bo3

{font:bold 9pt 굴림;text-align:center;color:#444444; border:1px; border-style:none none solid; border-color:silver;background-color:#efefef}

.bo3-1

{font:9pt 굴림;text-align:center;color:#444444; border:1px; border-style:none none solid; border-color:silver}

.bo4

{font:9pt 굴림; color:#444444; border:1px; border-style:none none solid;padding-left:15}

.bo5

{font:9pt 굴림; color:#444444; border:solid 1 #d6d3ce; background-color:white}

.bo6

    {padding-left:30; padding-right:30; padding-top:10; padding-bottom:10}

.bo6-1

    {font:bold 9pt 굴림; color:#444444; padding-left:30; padding-right:30; padding-top:30; padding-bottom:30}

.bo7

{font:bold 9pt tahoma; text-align:center; color:#444444; border:2px; border-style:solid none; border-color:silver}

.bo8

{font:bold 9pt 굴림;text-align:center;color:#444444; border:1px; border-style:none none dashed; border-color:silver;background-color:#efefef}

.bo9

{font:9pt 굴림; color:#444444; border:1px; border-style:none none dashed;padding-left:20}

.bo

{font:bold 9pt tahoma; text-align:center; color:#444444; border:1px; border-style:solid none dashed none; border-color:silver;background-color:#f7f3f7}



/* 공백 설정 */

.nbsp  

    {font:bold 5pt tahoma}

.nbspa   

{font:bold 5pt 굴림; color:#222222; border:2px; border-style:none none solid}



style1.css

a:active {  font-size: 9pt; text-decoration: none; color: #000000}

a:link {  font-size: 9pt; text-decoration: none; color: #000000}

a:visited {  font-size: 9pt; text-decoration: none; color: #000000}

a:hover {  font-size: 9pt; text-decoration: underline; color: #000000}

td, div, body {  font-size: 9pt}


textarea{

    font-family:굴림체; font-size:9pt; color:#555555; 

background:#FFFFFF; BORDER: 1px solid; 

PADDING:4px;

         scrollbar-track-color:#FFFFFF; 

scrollbar-face-color:#FFFFFF;

         scrollbar-3dlight-color:#FFFFFF; 

scrollbar-highlight-color:#FFFFFF;

         scrollbar-shadow-color:#FFFFFF; 

scrollbar-darkshadow-color:#FFFFFF;

         scrollbar-arrow-color:#DDDDDD;

}

input { font-size: 9pt; border: 1px solid; 

       background: #FFFFFF; height:18px

}

td { font-size:10pt; font-color:#ffffff }


top_menu.jsp

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

    pageEncoding="UTF-8"%>

<table width="760" height="114" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="752" height="76">

<img src="../images/top_main.gif" border="0" />

</td>

<td rowspan="3" width="8" height="114">

<img src="../images/top_right.gif" border="0" />

</td>

</tr>

<tr height="30">

<td>

<table cellspacing="0" cellpadding="0" border="0" width="752">

<tr>

<td width="500" class="menu" valign="middle">

<font size="5" color="white"><b>

<%

if(session.getAttribute("username") == null)

out.println("방문자");

else

out.println((String)session.getAttribute("username"));

%>

</b></font>

</td>

<td >

<img src="../images/wel.gif" border="0" width="250">

</td>

<td width="10" class="menu">&nbsp;</td>

</tr>

</table>

</td>

</tr>

<tr height="8">

<td width="752">

<img src="../images/top_down.gif" border="0" />

</td>

</tr>

</table>



left_menu.jsp

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

    pageEncoding="UTF-8"%>

<table width="132" border="0" bordercolor='orange' cellpadding="0" cellspacing="0">

<tr>

<td>

<table width="132" border="0" cellpadding="0" cellspacing="0" bordercolor='red'>

<tr>

<td><img src="../images/left_maintop.gif" border="0"></td>

</tr>

<tr>

<td><img src="../images/left_main3.gif" border="0"></td>

</tr>

<tr>

<td height="35" class="left2">

<!-- 총 방문자 수 들어갈 공간 -->

</td>

</tr>

<tr>

<td colspan="2"><img src="../images/left_main4.gif" border="0"></td>

</tr>

<tr>

<td height="35" class="left1">

<!--  현재 방문자 수 들어갈 공간 -->

</td>

</tr>

</table>

</td>

</tr>

<tr height="10" width="132">

<td>&nbsp;</td>

</tr>

<tr class="left">

<td>

<table width="132" border="0" bordercolor='green' cellpadding="0" cellspacing="0">

<tr>

<td align="right">

<% if(session.getAttribute("userid") == null){ %>

<a href="../member/login.jsp"><img src="../images/login.gif" border="0"></a>

<% }else{ %>

<img src="../images/logout.gif" border="0">

<% } %>

</td>

</tr>

</table>

</td>

</tr>

</table>


member 폴더

login.jsp

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

    pageEncoding="UTF-8"%>

<%

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

if(userid == null) userid = "";

%>    

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Welcome to Javasoft.com, inc.</title>

<link rel="stylesheet" type="text/css" href="../common/style.css">

<script>

function confirm(){

var f = document.forms[0];

if(!f.userid.value){

alert("아이디를 넣어주세요");

f.userid.focus();

return false;

}

if(!f.passwd.value){

alert("패스워드를 넣어주세요");

f.passwd.focus();

return false;

}

f.submit();

}

</script>

</head>

<body topmargin="0">

<table width="760" height="100%" cellpadding="0" cellspacing="0" border="0" align="center">

<tr>

<td colspan="3">

<jsp:include page="../common/top_menu.jsp" />

</td>

</tr>

<tr>

<td width="132" height="520" valign="top">

<jsp:include page="../common/left_menu.jsp" flush="false" />

</td>

<td width="8" height="520">&nbsp;</td>

<td height="520">

<!--  main 영역 -->

<table width="620" cellpadding="0" cellspacing="0" border="0" bordercolor="red">

<tr>

<td>

<!-- main영역은 좌로부터 40px 더 들여서 한다. -->

<table cellpadding="0" cellspacing="0" border="0">

<tr>

<td width="40">&nbsp;</td>

<td>

     <!-- main 시작 -->

     <form action="login_ok.jsp" method="post">

      <table cellspacing="5" style="width:260px;margin:5% 50% 50% 50%;border:1px solid black">

      <tr>

      <th>아이디</th>

      <td><input type="text" name="userid" value="<%=userid%>" required></td>    

      </tr>

      <tr>

      <th>패스워드</th>

      <td><input type="password" name="passwd" required></td>

      </tr>

      <tr>

      <td colspan="2" align="center">

      <a href="#" onclick="javascript:confirm()"><img src="../images/btn_login2.gif" border="0" /></a>&nbsp;&nbsp;     

      <a href="member.jsp"><img src="../images/bt_join.gif" border="0" /></a>

      </td>

      </tr>

     

      </table>

     </form>   

     <!-- main 끝 -->

</td>

</tr>

</table>

</td>

</tr>

</table>

</td>

</tr>

</table>

</body>

</html>


member.jsp

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

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Welcome to Javasoft.com, inc.</title>

<link rel="stylesheet" type="text/css" href="../common/style.css">

<script>

function confirm(){

var f = document.forms[0];

if(!f.userid.value){

alert("아이디가 빠졌습니다.");

f.userid.focus();

return false;

}

if(!f.passwd.value){

alert("패스워드가 빠졌습니다.");

f.passwd.focus();

return false;

}

if(!f.name.value){

alert("이름이 빠졌습니다.");

f.name.focus();

return false;

}

if(!f.email.value){

alert("Email이 빠졌습니다.");

f.email.focus();

return false;

}

f.submit();

}

function zipopen(){

window.open("zipsearch.jsp", "", 

"left=500,top=400,width=600,height=300,menubar=0,resizable=0,scrollbars=0");

}

function idcheck(){

var str = document.getElementById("userid").value;

window.open("idCheck.jsp?userid=" + str, "", 

    "left=500,top=400,width=400,height=150,menubar=0,resizable=0,scrollbars=0");

}

</script>

</head>

<body topmargin="0">

<table width="760" height="100%" cellpadding="0" cellspacing="0" border="0" align="center">

<tr>

<td colspan="3">

<jsp:include page="../common/top_menu.jsp" />

</td>

</tr>

<tr>

<td width="132" height="520" valign="top">

<jsp:include page="../common/left_menu.jsp" />

</td>

<td width="8" height="520">

&nbsp;

</td>

<td width="620" height="520" valign="top">

<!--  main 영역 -->

<table width="620" cellpadding="0" cellspacing="0" border="0" bordercolor='orange'>

<tr>

<td>

<!-- main영역은 좌로부터 40px 더 들여서 한다. -->

<table cellpadding="0" cellspacing="0" border="0">

<tr>

<td width="40">&nbsp;</td>

<td>

     <!-- 진짜 메인 영역 -->

     <form action="member_ok.jsp" method="post">

      <img src="../images/register.gif" border="0" />

      <table border="1" width="600" bordercolor="#c0c0c0" cellpading="0" cellspacing="0">

      <tr>

      <td>

      <table bordercolor="#c0c0c0" width="595" height="300" border="1" cellpading="0" cellspacing="0">

      <tr height="30" bgcolor="#f0f0f0">

      <td width="100" align="right">

      <font color="#000000"><b>아이디</b></font>

      </td>

      <td>

      <input type="text" name="userid" maxlength="12" id="userid" size="20">

      <a href="#" onclick="javascript:idcheck()"><img src="../images/bt_duplicationcheck.gif" align="absmiddle" /></a>      

      </td>

      </tr>

      <tr height="30" bgcolor="#f0f0f0">

      <td width="100" align="right">

      <font color="#000000"><b>비밀번호</b></font>

      </td>

      <td>

      <input type="password" name="passwd" maxlength="12" id="passwd" size="20">

      &nbsp;&nbsp;

      비밀번호 확인

      <input type="password" maxlength="12" size="20">

      </td>

      </tr>

      <tr height="30" bgcolor="#f0f0f0">

      <td width="100" align="right">

      <font color="#000000"><b>이름</b></font>

      </td>

      <td>

      <input type="text" name="name" maxlength="20" id="name" size="25">      

      </td>

      </tr>

      <tr height="30" bgcolor="#f0f0f0">

      <td width="100" align="right">

      <font color="#000000"><b>우편번호</b></font>

      </td>

      <td>

      <input type="text" name="zip1" id="zip1" maxlength="3" size="3" readonly> - 

      <input type="text" name="zip2" id="zip2" maxlength="3" size="3" readonly>&nbsp;&nbsp;

      <a href="#" onclick="javascript:zipopen()"><img src="../images/bt_search.gif" border="0" align="absmiddle"/></a>

      </td>

      </tr>

      <tr height="30" bgcolor="#f0f0f0">

      <td width="100" align="right">

      <font color="#000000"><b>주소</b></font>

      </td>

      <td>

      <input type="text" name="address1" id="address1" size="60" readonly>      

      </td>

      </tr>

      <tr height="30" bgcolor="#f0f0f0">

      <td width="100" align="right">

      <font color="#000000"><b>나머지 주소</b></font>

      </td>

      <td>

      <input type="text" name="address2" size="50">      

      </td>

      </tr>

      <tr height="30" bgcolor="#f0f0f0">

      <td width="100" align="right">

      <font color="#000000"><b>Email</b></font>

      </td>

      <td>

      <input type="text" name="email" size="40">      

      </td>

      </tr>

      <tr height="30" bgcolor="#f0f0f0">

      <td colspan="2" align="center">

      <a href="javascript:confirm()"><img src="../images/bt_join.gif" border="0"></a>&nbsp;&nbsp;

      <a href="javascript:history.go(-1);"><img src="../images/bt_cancel.gif" border="0"></a>

      </td>

      </tr>

      </table>

      </td>

      </tr>

      </table>      

     </form>

</td>

</tr>

</table>

</td>

</tr>

</table>

</td>

</tr>

</table>

</body>

</html>



idCheck.jsp

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

    pageEncoding="UTF-8"%>

<jsp:directive.page import="com.javasoft.libs.controller.SelectService" />

<jsp:useBean id="ss" class="com.javasoft.libs.controller.SelectService" />

<%

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

if(userid == null) userid = "";

%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>아이디 중복 검색 창</title>

<script type='text/javascript'>

function Close(evt){

if(document.getElementById('isClose').value == "false"){

opener.document.getElementById('userid').value = document.getElementById('userid').value;

self.close();

}else{

alert("아이디를 사용할 수 없어서 창을 닫을 수 없습니다.");

return false;

}

}

function Click(){

if(!document.getElementById('userid').value){

alert("아이디를 입력하세요");

document.getElementById('userid').focus();

return false;

}

document.forms[0].submit();

}

</script>

</head>

<body>

    <%

    boolean flag = true;  //사용할 수 없는 아이디

    if(!userid.equals("")){

    flag = ss.isMember(userid.trim());

    }

    %>

    <div style="text-align:center">

    <% if(flag && !userid.equals("")){    %>

     <script>

    document.getElementById('isClose').value = true;

    </script>

    <font color='red' size='4'>

    [<%=userid %>]는 이미 사용중입니다.

    </font>

    <%}else if(!flag && !userid.equals("")){ 

            flag = false;

    %>

    <script>

    document.getElementById('isClose').value = false;

    </script>

    <font color='green' size='4'>

    [<%=userid %>]는 사용가능합니다.

    </font>

    <% } %>

    </div>

    <hr />

<form method="get" action="idCheck.jsp">

<input type="hidden" value="<%=flag %>" id="isClose" />

<table style="margin:auto">

<tr>

<td>

아이디 : <input type="text" id="userid" name="userid" value="<%=userid %>" />

<input type="button" value="중복검사" id="btn" onclick="Click()">

</td>

</tr>

<tr>

<td align='center'>

<a href="javascript:Close()"><img src="../images/bt_ok.gif" border="0" id="closebtn" /></a>

</td>

</tr>

</table>

</form>

</body>

</html>


zipsearch.jsp

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

    pageEncoding="UTF-8"%>

<%@ page import="com.javasoft.libs.util.CharConversion" %>

<%@ page import="java.util.Vector" %>

<%@ page import="com.javasoft.libs.model.ZipcodeDTO" %>

<%@ page import="com.javasoft.libs.controller.SelectService" %>

<%

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

if(keyword == null) keyword = "";

//else keyword = CharConversion.entoutf8(keyword);

%>    

<!DOCTYPE html>

<html lang="ko">

<head>

<meta charset="UTF-8">

<title>우편번호 검색 창</title>

<script>

window.onload = setup;

function setup(){

document.getElementById('btnClose').onclick = Close;

}

function Close(evt){

var ziplist = document.getElementById('ziplist');

var idx = ziplist.selectedIndex;

var str = ziplist.options[idx].value;

opener.document.getElementById('zip1').value = str.substring(1, 4);

opener.document.getElementById('zip2').value = str.substring(5, 8);

opener.document.getElementById('address1').value = str.slice(10);

self.close();

}

</script>

</head>

<jsp:useBean id="ss" class="com.javasoft.libs.controller.SelectService" />

<%

Vector<ZipcodeDTO> vector = null;

if(!keyword.equals("")){

vector = ss.select(keyword);

}

%>

<body>

<h1 align="center">우편번호 검색</h1>

<form method="get">

<table style="border-width:0;margin-left:auto;margin-right:auto;width:500px">

<caption>찾고자 하시는 동/읍/면 이름을 입력해 주세요.</caption>

<tr>

<td align='center'> 동이름 : 

<input type="text" name="keyword" id="keyword" placeholder="상하동" required value="<%=keyword%>" />

&nbsp;&nbsp;

<input type="submit" value="검색하기" />

</tr>

<%

if(vector != null && vector.size() == 0){

%>

<script>

alert("검색결과가 없습니다. \n확인 후 다시 검색해 주세요");

history.go(-1);

</script>

<%

}else if(vector != null && vector.size() > 0){

%>

<tr>

<td align='center'>

<select id="ziplist">

<option>--선택--</option>

<%

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

ZipcodeDTO zb = vector.get(i);

out.print("<option value='" + zb + "'>");

out.print(zb.toString() + zb.getBunji());

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

}

%>

</select>

</td>

</tr>

<% } %>

<tr>

<td align='center'><input type="button" id="btnClose" value="창닫기" /></td>

</tr>

</table>

</form>

</body>

</html>


member_ok.jsp

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

    pageEncoding="UTF-8"%>

<jsp:directive.page import="com.javasoft.libs.controller.InsertService" />

<jsp:directive.page import="com.javasoft.libs.controller.SelectService" />

<jsp:directive.page import="com.javasoft.libs.model.MemberDTO" />    


<% request.setCharacterEncoding("utf-8"); %>


<jsp:useBean id="ss" class="com.javasoft.libs.controller.SelectService" />

<%

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

boolean isExists = ss.isMember(userid);

if(isExists){

%>

<script>

alert("이미 사용중인 아이디입니다.\n확인 후 다시 입력해 주세요");

history.back();

</script>

<% } %>


<jsp:useBean id="member" class="com.javasoft.libs.model.MemberDTO" />

<jsp:setProperty name="member" property="userid" value="<%=userid %>" />

<jsp:setProperty name="member" property="passwd" param="passwd" />

<jsp:setProperty name="member" property="name" param="name" />

<%

String zipcode = request.getParameter("zip1") + "-" + 

                                 request.getParameter("zip2");

%>

<jsp:setProperty name="member" property="zipcode" value="<%=zipcode%>" />

<%

String address = request.getParameter("address1") + " " +

                              request.getParameter("address2");

%>

<jsp:setProperty name="member" property="address" value="<%=address%>" />

<jsp:setProperty name="member" property="email" param="email" />


<jsp:useBean id="is" class="com.javasoft.libs.controller.InsertService" />

<%

boolean flag = is.insert(member);

if(!flag){

%>

<script>

alert("회원 가입에 실패했습니다.");

history.go(-1);

</script>

   <% }else{ %>

<script>

alert("<%=userid%>님! 회원가입을 축하합니다.");

location.href = "login.jsp?userid=<%=userid%>";

</script>   

   <%} %>


member_index.jsp

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

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Welcome to Javasoft.com, inc.</title>

<link rel="stylesheet" type="text/css" href="../common/style.css">

</head>

<body topmargin="0">

<table width="760" height="100%" cellpadding="0" cellspacing="0" border="0" align="center">

<tr>

<td colspan="3">

<jsp:include page="../common/top_menu.jsp" />

</td>

</tr>

<tr>

<td width="132" height="520" valign="top">

<jsp:include page="../common/left_menu.jsp" />

</td>

<td width="8" height="520">

&nbsp;

</td>

<td width="620" height="520">

<!--  main 영역 -->

<table width="620" cellpadding="0" cellspacing="0" border="0">

<tr>

<td>

<!-- main영역은 좌로부터 40px 더 들여서 한다. -->

<table cellpadding="0" cellspacing="0" border="0">

<tr>

<td width="40">&nbsp;</td>

<td>

     <!-- 진짜 메인 영역 -->

</td>

</tr>

</table>

</td>

</tr>

</table>

</td>

</tr>

</table>

</body>

</html>



WebContent 폴더의 index.jsp

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

    pageEncoding="UTF-8"%>

<script>

location.href = "member/member_index.jsp";

</script>


web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

  <display-name>Project</display-name>

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

  

  <resource-ref>

  <description>Project JNDI</description>

  <res-ref-name>jdbc/project</res-ref-name>

  <res-type>javax.sql.DataSource</res-type>

  <res-auth>Container</res-auth>

  </resource-ref>

</web-app>


회원가입후 로그인하면 일단은 오류가 발생하는데. http://localhost:8080/Project/member/member_index.jsp 로 접속하면 접속된 것을 볼 수 있다.

+ Recent posts