diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 30825c1..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Datasource local storage ignored files
-/../../../:\Web_JSP_Project\.idea/dataSources/
-/dataSources.local.xml
-# Editor-based HTTP Client requests
-/httpRequests/
diff --git a/.idea/artifacts/Web_JSP_Project_war_exploded.xml b/.idea/artifacts/Web_JSP_Project_war_exploded.xml
deleted file mode 100644
index 9f7652b..0000000
--- a/.idea/artifacts/Web_JSP_Project_war_exploded.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
- $PROJECT_DIR$/out/artifacts/Web_JSP_Project_war_exploded
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index 4987eca..0000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Java_EE_6_Java_EE_6.xml b/.idea/libraries/Java_EE_6_Java_EE_6.xml
deleted file mode 100644
index 034951d..0000000
--- a/.idea/libraries/Java_EE_6_Java_EE_6.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index e0844bc..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 63cb6f4..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml
deleted file mode 100644
index 0c1affd..0000000
--- a/.idea/sqldialects.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
deleted file mode 100644
index e96534f..0000000
--- a/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 94a25f7..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/webContexts.xml b/.idea/webContexts.xml
deleted file mode 100644
index 44c04ca..0000000
--- a/.idea/webContexts.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/action/CardDeleteAction.java b/src/action/CardDeleteAction.java
deleted file mode 100644
index 97f59db..0000000
--- a/src/action/CardDeleteAction.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package action;
-
-import action.Action;
-import dao.CardDAO;
-import service.CardDeleteService;
-import vo.ActionForward;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.PrintWriter;
-
-public class CardDeleteAction implements Action {
- @Override
- public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
- /*
- String ids = request.getParameter("id");
- int id = Integer.parseInt(ids);
- String password = request.getParameter("user_password");
- */
- int idx = 42;
- ActionForward forward = new ActionForward();
- CardDeleteService cardDeleteService = new CardDeleteService();
- /* boolean isWriteDelete = cardDeleteService.isChkCardUser(id); 패스워드까지 넘겨야함 자기만 자기 명함을 지울수있게 체크
- System.out.println(isWriteDelete);
- if(!isWriteDelete){
- request.setCharacterEncoding("UTF-8");
- PrintWriter out=response.getWriter();
- out.println("");
- out.close();
- }else*/
- boolean isDeleteChk = cardDeleteService.deletecard(idx);
- System.out.println("isChecke" + isDeleteChk);
- if(!isDeleteChk) {
- response.setContentType("text/html;charset=UTF-8");
- response.setContentType("text/html;charset=utf-8");
- PrintWriter out=response.getWriter();
- out.println("");
- out.close();
- }else{
- forward.setRedirect(true);
- forward.setPath("cardLists.bo");
- }
- return forward;
- }
-}
diff --git a/src/action/CreateAction.java b/src/action/CreateAction.java
index 43dc295..ce69fb5 100644
--- a/src/action/CreateAction.java
+++ b/src/action/CreateAction.java
@@ -8,6 +8,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
import java.io.PrintWriter;
public class CreateAction implements Action {
@@ -16,6 +17,7 @@ public class CreateAction implements Action {
public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
CardVO vo = new CardVO();
ActionForward forward = new ActionForward();
+ HttpSession session = request.getSession();
vo.setName(request.getParameter("name"));
vo.setPhone(request.getParameter("phone"));
vo.setEmail(request.getParameter("email"));
@@ -25,6 +27,7 @@ public ActionForward execute(HttpServletRequest request, HttpServletResponse res
vo.setUrl(request.getParameter("url"));
vo.setCompany(request.getParameter("company"));
vo.setPhoto_path(request.getParameter("photo_path"));
+ vo.setUid((String)session.getAttribute("id"));
CardAddService cardAddService = new CardAddService();
boolean isWriteSuccess = cardAddService.registcard(vo);
@@ -39,7 +42,7 @@ public ActionForward execute(HttpServletRequest request, HttpServletResponse res
out.close();
}else{
forward.setRedirect(true);
- forward.setPath("cardLists.bo");
+ forward.setPath("Main.bo");
}
return forward;
}
diff --git a/src/action/DeleteAction.java b/src/action/DeleteAction.java
new file mode 100644
index 0000000..56cdaeb
--- /dev/null
+++ b/src/action/DeleteAction.java
@@ -0,0 +1,33 @@
+package action;
+
+import service.DeleteService;
+import vo.ActionForward;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+
+public class DeleteAction implements Action {
+ @Override
+ public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ int idx = Integer.parseInt( request.getParameter("idx") ) ;
+ ActionForward forward = new ActionForward();
+ DeleteService deleteService = new DeleteService();
+ boolean isDeleteChk = deleteService.deleteCard(idx);
+ if(!isDeleteChk) {
+ response.setContentType("text/html;charset=UTF-8");
+ PrintWriter out=response.getWriter();
+ out.println("");
+ out.close();
+ }else{
+ forward.setRedirect(true);
+ forward.setPath("Main.bo");
+ }
+ return forward;
+ }
+}
diff --git a/src/action/DetailAction.java b/src/action/DetailAction.java
index 3c2e295..1dc60e8 100644
--- a/src/action/DetailAction.java
+++ b/src/action/DetailAction.java
@@ -13,8 +13,8 @@
public class DetailAction implements Action {
@Override
public ActionForward execute(HttpServletRequest request, HttpServletResponse response){
-
- int idx = Integer.parseInt( request.getParameter("idx") ) ;
+ int idx = Integer.parseInt(request.getParameter("idx"));
+ System.out.println(idx);
CardModifyService cardModifyViewService = new CardModifyService();
CardVO card = cardModifyViewService.ModifyView(idx);
request.setAttribute("card", card);
diff --git a/src/action/CardModifyAction.java b/src/action/ModifyAction.java
similarity index 53%
rename from src/action/CardModifyAction.java
rename to src/action/ModifyAction.java
index b72d00f..3553629 100644
--- a/src/action/CardModifyAction.java
+++ b/src/action/ModifyAction.java
@@ -12,31 +12,20 @@
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
-public class CardModifyAction implements Action {
+public class ModifyAction implements Action {
@Override
public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws IOException {
CardVO vo = new CardVO();
- int idx = 47;
- vo.setId(idx);
- vo.setName("김똥필");
- vo.setPhone("0102139210213");
- vo.setEmail("동팔동팔");
- vo.setPosition("똥팔");
- vo.setAddress("월성");
- vo.setFax("팩스팩스");
- vo.setUrl("///dongpal");
- vo.setCompany("고속도로");
- vo.setPhoto_path("폰없음");
-// vo.setId(request.getParameter("id"));
-// vo.setName(request.getParameter("name"));
-// vo.setPhone(request.getParameter("phone"));
-// vo.setEmail(request.getParameter("email"));
-// vo.setPosition(request.getParameter("position"));
-// vo.setAddress(request.getParameter("address"));
-// vo.setFax(request.getParameter("fax"));
-// vo.setUrl(request.getParameter("url"));
-// vo.setCompany(request.getParameter("company"));
-// vo.setPhoto_path(request.getParameter("photo_path"));
+ vo.setId(Integer.parseInt(request.getParameter("idx")));
+ vo.setName(request.getParameter("name"));
+ vo.setPhone(request.getParameter("phone"));
+ vo.setEmail(request.getParameter("email"));
+ vo.setPosition(request.getParameter("position"));
+ vo.setAddress(request.getParameter("address"));
+ vo.setFax(request.getParameter("fax"));
+ vo.setUrl(request.getParameter("url"));
+ vo.setCompany(request.getParameter("company"));
+ vo.setPhoto_path(request.getParameter("photo_path"));
CardModifyService cardModifyService = new CardModifyService();
boolean isModifyChk = cardModifyService.ModifyCards(vo);
@@ -52,7 +41,7 @@ public ActionForward execute(HttpServletRequest request, HttpServletResponse res
out.println("");
out.close();
} else {
- forward.setPath("/view/Login.jsp");
+ forward.setPath("Detail.bo");
}
return forward;
}
diff --git a/src/action/CardModifyViewAction.java b/src/action/ModifyFormAction.java
similarity index 65%
rename from src/action/CardModifyViewAction.java
rename to src/action/ModifyFormAction.java
index 1c7965b..be46126 100644
--- a/src/action/CardModifyViewAction.java
+++ b/src/action/ModifyFormAction.java
@@ -7,17 +7,14 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-public class CardModifyViewAction implements Action{
+public class ModifyFormAction implements Action{
public ActionForward execute(HttpServletRequest request, HttpServletResponse response) {
-// String ids = request.getParameter("id");
-// int id = Integer.parseInt(ids);
- int idx = 32;
-
+ int idx = Integer.parseInt(request.getParameter("idx"));
CardModifyService cardModifyViewService = new CardModifyService();
CardVO param = cardModifyViewService.ModifyView(idx);
- request.setAttribute("modList", param);
+ request.setAttribute("card", param);
ActionForward forward = new ActionForward();
- forward.setPath("/view/modifyForm.jsp");
+ forward.setPath("/view/Modify.jsp");
return forward;
}
}
diff --git a/src/controller/WebController.java b/src/controller/WebController.java
index 35cc0ad..fa8342a 100644
--- a/src/controller/WebController.java
+++ b/src/controller/WebController.java
@@ -74,7 +74,7 @@ else if(command.equals("/CreateProcess.bo")){
e.printStackTrace();
}
}
- if(command.equals("/Detail.bo")){
+ else if(command.equals("/Detail.bo")){
action = new DetailAction();
try {
forward = action.execute(request, response);
@@ -83,28 +83,28 @@ else if(command.equals("/CreateProcess.bo")){
}
}
else if(command.equals("/Modify.bo")){
-// action = new ModifyFormAction();
-// try {
-// forward = action.execute(request, response);
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
+ action = new ModifyFormAction();
+ try {
+ forward = action.execute(request, response);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
else if(command.equals("/ModifyProcess.bo")){
-// action = new ModifyAction();
-// try {
-// forward = action.execute(request, response);
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
+ action = new ModifyAction();
+ try {
+ forward = action.execute(request, response);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
else if(command.equals("/DeleteProcess.bo")){
-// action = new DeleteAction();
-// try {
-// forward = action.execute(request, response);
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
+ action = new DeleteAction();
+ try {
+ forward = action.execute(request, response);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
if (forward != null) {
diff --git a/src/dao/CardDAO.java b/src/dao/CardDAO.java
index 0884011..8ac2bdd 100644
--- a/src/dao/CardDAO.java
+++ b/src/dao/CardDAO.java
@@ -37,7 +37,7 @@ public int insertCard(CardVO param) {
int result = 0;
PreparedStatement ps = null;
- String sql = "INSERT INTO card (name, phone, email, position, address, fax, url, company, photo_path) VALUES (?,?,?,?,?,?,?,?,?)";
+ String sql = "INSERT INTO card (name, phone, email, position, address, fax, url, company, photo_path, uid) VALUES (?,?,?,?,?,?,?,?,?,?)";
try {
ps = con.prepareStatement(sql);
@@ -50,6 +50,7 @@ public int insertCard(CardVO param) {
ps.setString(7, param.getUrl());
ps.setString(8, param.getCompany());
ps.setString(9, param.getPhoto_path());
+ ps.setString(10, param.getUid());
result = ps.executeUpdate();
System.out.println("check");
} catch (Exception e) {
@@ -192,7 +193,7 @@ public int ModifyCard(CardVO vo) {
int result = 0;
String sql = "UPDATE card SET name=?, phone=?, email=?, position=?, "
- + "address=?, fax=?, url=?, company=?, photo_path=? WHERE id = ?";
+ + "address=?, fax=?, url=?, company=?, photo_path=? WHERE idx = ?";
try {
ps = con.prepareStatement(sql);
diff --git a/src/service/CardDetailService.java b/src/service/CardDetailService.java
deleted file mode 100644
index cca6108..0000000
--- a/src/service/CardDetailService.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package service;
-
-public class CardDetailService {
-}
diff --git a/src/service/CardDeleteService.java b/src/service/DeleteService.java
similarity index 90%
rename from src/service/CardDeleteService.java
rename to src/service/DeleteService.java
index 9d1d9f3..f08b903 100644
--- a/src/service/CardDeleteService.java
+++ b/src/service/DeleteService.java
@@ -4,8 +4,8 @@
import static db.DbBridge.*;
import java.sql.Connection;
-public class CardDeleteService {
- public boolean deletecard(int idx) throws Exception{ // 명함 삭제
+public class DeleteService {
+ public boolean deleteCard(int idx) throws Exception{ // 명함 삭제
boolean isDeleteSuccess = false;
CardDAO cardDAO = CardDAO.getInstance();
Connection con = getConnection();
diff --git a/web/css/Join.css b/web/css/Join.css
new file mode 100644
index 0000000..3192f2d
--- /dev/null
+++ b/web/css/Join.css
@@ -0,0 +1,96 @@
+:root {
+ --success-color: #2ecc71;
+ --error-color: #e74c3c;
+}
+
+* {
+ box-sizing: border-box;
+}
+
+body {
+ background-color: #f9fafb;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ min-height: 100vh;
+ margin: 0;
+}
+
+.container {
+ background-color: #fff;
+ border-radius: 5px;
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
+ width: 400px;
+}
+
+h2 {
+ text-align: center;
+ margin: 0 0 50px;
+}
+
+.form {
+ padding: 50px 40px;
+}
+
+.form-control {
+ margin-bottom: 10px;
+ padding-bottom: 20px;
+ position: relative;
+}
+
+.form-control label {
+ color: #777;
+ display: block;
+ margin-bottom: 5px;
+}
+
+.form-control input {
+ border: 2px solid #f0f0f0;
+ border-radius: 5px;
+ display: block;
+ width: 100%;
+ padding: 10px;
+ font-size: 14px;
+}
+
+.form-control input:focus {
+ outline: 0;
+ border-color: #777;
+}
+
+.form-control.success input {
+ border-color: var(--success-color);
+}
+
+.form-control.error input {
+ border-color: var(--error-color);
+}
+
+.form-control small {
+ color: var(--error-color);
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ visibility: hidden;
+}
+
+.form-control.error small {
+ visibility: visible;
+}
+
+.btn {
+ display: flex;
+ justify-content: space-around;
+}
+
+button {
+ cursor: pointer;
+ background-color: #3498db;
+ border: 2px solid #3498db;
+ border-radius: 4px;
+ color: #fff;
+ font-size: 16px;
+ padding: 10px;
+ margin-top: 30px;
+ width: 45%;
+}
\ No newline at end of file
diff --git a/web/css/Login.css b/web/css/Login.css
new file mode 100644
index 0000000..bafe4be
--- /dev/null
+++ b/web/css/Login.css
@@ -0,0 +1,85 @@
+:root {
+ --success-color: #2ecc71;
+ --error-color: #e74c3c;
+}
+
+* {
+ box-sizing: border-box;
+}
+
+body {
+ background-color: #f9fafb;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ min-height: 100vh;
+ margin: 0;
+}
+
+.container {
+ background-color: #fff;
+ border-radius: 5px;
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
+ width: 400px;
+}
+
+h2 {
+ text-align: center;
+ margin: 0 0 50px;
+}
+
+.form {
+ padding: 50px 40px;
+}
+
+.form-control {
+ margin: 10px;
+ position: relative;
+}
+
+.form-control input {
+ border: 2px solid #f0f0f0;
+ border-radius: 5px;
+ display: block;
+ width: 100%;
+ padding: 15px;
+ font-size: 14px;
+}
+
+.form-control input:focus {
+ outline: 0;
+ border-color: #777;
+}
+
+.form-control.error input {
+ border-color: var(--error-color);
+}
+
+.form-control small {
+ color: var(--error-color);
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ visibility: hidden;
+}
+
+.form-control.error small {
+ visibility: visible;
+}
+
+.btn {
+ margin-top: 50px;
+ text-align: center;
+}
+
+button {
+ cursor: pointer;
+ background-color: #3498db;
+ border: 2px solid #3498db;
+ border-radius: 4px;
+ color: #fff;
+ font-size: 16px;
+ padding: 10px;
+ margin-top: 20px;
+ width: 80%;
+}
\ No newline at end of file
diff --git a/web/js/Join.js b/web/js/Join.js
new file mode 100644
index 0000000..f8f6f85
--- /dev/null
+++ b/web/js/Join.js
@@ -0,0 +1,70 @@
+const form = document.getElementById('form');
+const id = document.getElementById('id');
+const password = document.getElementById('password');
+const nickname = document.getElementById('nickname');
+const join_btn = document.getElementById('join');
+
+// Show input error message
+function showError(input, message) {
+ const formControl = input.parentElement;
+ formControl.className = 'form-control error';
+ const small = formControl.querySelector('small');
+ small.innerText = message;
+}
+
+// Show success outline
+function showSuccess(input) {
+ const formControl = input.parentElement;
+ formControl.className = 'form-control success';
+}
+
+// Check required fields
+function checkRequired(inputArr) {
+ let isOk = true;
+ inputArr.forEach(function(input) {
+ if (input.value.trim() === '') {
+ showError(input, `${getFieldName(input)} 을 입력하세요`);
+ isOk = false;
+ } else {
+ isOk = isOk && true;
+ }
+ });
+
+ return isOk;
+}
+
+// Check input length
+function checkLength(input, min, max) {
+ if (input.value.length < min) {
+ showError(input, `최소 ${min} 글자를 입력하세요`);
+ } else if (input.value.length > max) {
+ showError(input, `최대 ${max} 글자를 입력할 수 있습니다`);
+ } else {
+ showSuccess(input);
+ return 1;
+ }
+}
+
+// Get fieldname
+function getFieldName(input) {
+ return input.id.charAt(0).toUpperCase() + input.id.slice(1);
+}
+
+// Event listeners
+function join(e) {
+ e.preventDefault();
+
+ let successCnt = 0;
+
+ if(checkRequired([id, password, nickname])){
+ successCnt += checkLength(id, 6, 15);
+ successCnt += checkLength(password, 8, 15);
+ successCnt += checkLength(nickname, 2, 15);
+
+ if(successCnt === 3) {
+ form.submit();
+ }
+ }
+};
+
+join_btn.addEventListener('click', (e) => join(e))
\ No newline at end of file
diff --git a/web/js/Login.js b/web/js/Login.js
new file mode 100644
index 0000000..a726577
--- /dev/null
+++ b/web/js/Login.js
@@ -0,0 +1,41 @@
+const form = document.getElementById('form');
+const id = document.getElementById('id');
+const password = document.getElementById('password');
+const login_btn = document.getElementById('login');
+
+// Show input error message
+function showError(input) {
+ const formControl = input.parentElement;
+ formControl.className = 'form-control error';
+}
+
+// Check required fields
+function checkRequired(inputArr) {
+ let isOk = true;
+ inputArr.forEach(function(input) {
+ if (input.value.trim() === '') {
+ showError(input);
+ isOk = false;
+ } else {
+ isOk = isOk && true;
+ }
+ });
+
+ return isOk;
+}
+
+// Get fieldname
+function getFieldName(input) {
+ return input.id.charAt(0).toUpperCase() + input.id.slice(1);
+}
+
+// Event listeners
+function login(e) {
+ e.preventDefault();
+
+ if(checkRequired([id, password])){
+ form.submit();
+ }
+};
+
+login_btn.addEventListener('click', (e) => login(e))
\ No newline at end of file
diff --git a/web/view/CreateForm..jsp b/web/view/CreateForm.jsp
similarity index 50%
rename from web/view/CreateForm..jsp
rename to web/view/CreateForm.jsp
index b884b13..c16e973 100644
--- a/web/view/CreateForm..jsp
+++ b/web/view/CreateForm.jsp
@@ -11,16 +11,17 @@
Title
+