front-end
member source code
lvher
2020. 11. 1. 23:50
MemberVO.java
package com.member.bean;
import java.util.Date;
public class MemberVO {
private int sid;
private String userid;
private String username;
private String password;
private String email;
private String blogurl;
private String photo;
private String detail;
private Date regdate;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getBlogurl() {
return blogurl;
}
public void setBlogurl(String blogurl) {
this.blogurl = blogurl;
}
public String getPhoto() {
return photo;
}
public void setPhoto(String photo) {
this.photo = photo;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
public Date getRegdate() {
return regdate;
}
public void setRegdate(Date regdate) {
this.regdate = regdate;
}
}
JDBCUtil.java
package com.member.common;
import java.sql.Connection;
import java.sql.DriverManager;
public class JDBCUtil {
public static Connection getConnection(){
Connection con=null;
try{
Class.forName("com.mysql.jdbc.Driver");
con= DriverManager.getConnection("jdbc:mysql://db4free.net:3306/lvher1","lvher1","imgmin8689");
}catch(Exception e){
System.out.println(e);
}
return con;
}
// public static void main(String ars[]) {
// Connection conn = getConnection();
// if(conn != null)
// System.out.println("DB 연결됨!");
// else
// System.out.println("DB 연결중 오류 !");
// }
}
MemberDAO.java
package com.member.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.member.bean.MemberVO;
import com.member.common.JDBCUtil;
public class MemberDAO {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
private final String M_INSERT = "insert into member(userid, password, username, email, photo, detail)" +"values (?,sha1(?),?,?,?,?)";
private final String M_UPDATE = "update member set username = ?, email = ?, photo = ?, detail = ?" +"where sid=?";
private final String M_DELETE = "delete from member where sid=?";
private final String M_SELECT = "select * from member where sid=?";
private final String M_LIST = "select * from member order by regdate desc";
public int insertMember(MemberVO vo) {
System.out.println("===> JDBC로 insertM() 기능 처리");
try {
conn = JDBCUtil.getConnection();
stmt = conn.prepareStatement(M_INSERT);
stmt.setString(1, vo.getUserid());
stmt.setString(2, vo.getPassword());
stmt.setString(3, vo.getUsername());
stmt.setString(4, vo.getEmail());
stmt.setString(5, vo.getPhoto());
stmt.setString(6, vo.getDetail());
stmt.executeUpdate();
return 1;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
// 글 삭제
public void deleteMember(MemberVO vo) {
System.out.println("===> JDBC로 deleteM() 기능 처리");
try {
conn = JDBCUtil.getConnection();
stmt = conn.prepareStatement(M_DELETE);
stmt.setInt(1, vo.getSid());
stmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
}
public int updateMember(MemberVO vo) {
System.out.println("===> JDBC로 updateM() 기능 처리");
try {
conn = JDBCUtil.getConnection();
stmt = conn.prepareStatement(M_UPDATE);
stmt.setString(1, vo.getUsername());
stmt.setString(2, vo.getEmail());
stmt.setString(3, vo.getPhoto());
stmt.setString(4, vo.getDetail());
stmt.setInt(5, vo.getSid());
System.out.println(vo.getUsername() + "-" + vo.getEmail() + "-" + vo.getPhoto() + "-" + vo.getDetail() + "-" + vo.getSid());
stmt.executeUpdate();
return 1;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
public MemberVO getOne(int sid) {
MemberVO one = new MemberVO();
conn = JDBCUtil.getConnection();
System.out.println("===> JDBC로 getM() 기능 처리");
try {
conn = JDBCUtil.getConnection();
stmt = conn.prepareStatement(M_SELECT);
stmt.setInt(1, sid);
rs = stmt.executeQuery();
if(rs.next()) {
one.setSid(rs.getInt("sid"));
one.setUserid(rs.getString("userid"));
one.setUsername(rs.getString("username"));
one.setEmail(rs.getString("email"));
one.setPhoto(rs.getString("photo"));
one.setDetail(rs.getString("detail"));
one.setRegdate(rs.getDate("regdate"));
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
return one;
}
public List<MemberVO> getMemberList(){
ArrayList<MemberVO>list = new ArrayList<MemberVO>();
conn = JDBCUtil.getConnection();
System.out.println("===> JDBC로 getMList() 기능 처리");
try {
conn = JDBCUtil.getConnection();
stmt = conn.prepareStatement(M_LIST);
rs = stmt.executeQuery();
while(rs.next()) {
MemberVO one = new MemberVO();
one.setSid(rs.getInt("sid"));
one.setUserid(rs.getString("userid"));
one.setUsername(rs.getString("username"));
one.setEmail(rs.getString("email"));
one.setRegdate(rs.getDate("regdate"));
list.add(one);
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
}
addpostform.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Add New Post</h1>
<form action="addpost.jsp" method="post">
<table>
<tr><td>ID:</td><td><input type="text" name="userid"/></td></tr>
<tr><td>Name:</td><td><input type="text" name="username"/></td></tr>
<tr><td>Photo:</td><td><input type="text" name="photo"/></td></tr>
<tr><td>Email:</td><td><input type="text" name="email"/></td></tr>
<tr><td>Detail:</td><td><textarea cols="50" rows="5" name="detail"></textarea></td></tr>
<tr><td><a href="list.jsp">View All Records</a></td><td align="right"><input type="submit" value="Add Post"/></td></tr>
</table>
</form>
</body>
</html>
addpost.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="com.member.dao.MemberDAO"%>
<% request.setCharacterEncoding("utf-8"); %>
<jsp:useBean id="u" class="com.member.bean.MemberVO" />
<jsp:setProperty property="*" name="u"/>
<%
MemberDAO memberDAO = new MemberDAO();
int i = memberDAO.insertMember(u);
String msg = "데이터 추가 성공 !";
if(i == 0) msg = "[에러] 데이터 삭제 ";
%>
<script>
alert('<%=msg%>');
location.href='list.jsp';
</script>
deletepost.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="com.member.dao.MemberDAO,com.member.bean.MemberVO"%>
<%
String sid = request.getParameter("id");
if (sid != ""){
int id = Integer.parseInt(sid);
MemberVO u = new MemberVO();
u.setSid(id);
MemberDAO MemberDAO = new MemberDAO();
MemberDAO.deleteMember(u);
}
response.sendRedirect("list.jsp");
%>
editpost.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="com.member.dao.MemberDAO"%>
<% request.setCharacterEncoding("utf-8"); %>
<jsp:useBean id="u" class="com.member.bean.MemberVO" />
<jsp:setProperty property="*" name="u"/>
<%
MemberDAO MemberDAO = new MemberDAO();
int i=MemberDAO.updateMember(u);
response.sendRedirect("list.jsp");
%>
editform.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="com.member.dao.MemberDAO,com.member.bean.MemberVO"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Edit Form</title>
</head>
<body>
<%
MemberDAO MemberDAO = new MemberDAO();
String id=request.getParameter("id");
MemberVO u=MemberDAO.getOne(Integer.parseInt(id));
%>
<h1>Edit Form</h1>
<form action="editpost.jsp" method="post">
<input type="hidden" name="sid" value="<%=u.getSid() %>"/>
<table>
<tr><td>ID:</td><td><%= u.getUserid()%></td></tr>
<tr><td>Name:</td><td><input type="text" name="username" value="<%= u.getUsername()%>"/></td></tr>
<tr><td>Photo:</td><td><input type="text" name="photo" value="<%=u.getPhoto()%>"/></td></tr>
<tr><td>Email:</td><td><input type="text" name="email" value="<%= u.getEmail()%>" /></td></tr>
<tr><td>Detail:</td><td><textarea cols="50" rows="5" name="detail"><%= u.getDetail()%></textarea></td></tr>
<tr><td colspan="2"><input type="submit" value="Edit Post"/>
<input type="button" value="Cancel" onclick="history.back()"/></td></tr>
</table>
</form>
</body>
</html>
fileform.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method ='post' action="fileupload.jsp"enctype="multipart/form-data">
<input type='file' name='photo'>
<input type='submit' value='upload'>
</form>
<jsp:forward page="list.jsp" />
</body>
</html>
fileupload.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="com.member.dao.MemberDAO, com.member.bean.MemberVO ,java.util.*"%>
<%@page import="com.member.common.*,java.io.File" %>
<%@page import="com.oreilly.servlet.*" %>
<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy" %>
<%
String filename="";
int sizeLimit = 15*1024*1024;
String realPath =request.getServletContext().getRealPath("upload");
File dir = new File(realPath);
if(!dir.exists())dir.mkdirs();
MultipartRequest multipartRequest = null;
multipartRequest = new MultipartRequest(request,realPath, sizeLimit,"utf-8",new DefaultFileRenamePolicy());
filename = multipartRequest.getFilesystemName("photo");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
파일명: <%=filename%><br />
<img src = "${pageContext.request.contextPath}/upload/<%=filename %>">;
<jsp:forward page="list.jsp" />
</body>
</html>
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<jsp:forward page="list.jsp" />
</body>
</html>
list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="com.member.dao.MemberDAO, com.member.bean.MemberVO ,java.util.*"%>
<%@ taglib uri= "http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>free Member</title>
<style>
#list {
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
}
#list td, #list th {
border: 1px solid #ddd;
padding: 8px;
text-align:center;
}
#list tr:nth-child(even){background-color: #f2f2f2;}
#list tr:hover {background-color: #ddd;}
#list th {
padding-top: 12px;
padding-bottom: 12px;
text-align: center;
background-color: #006bb3;
color: white;
}
</style>
<script>
function delete_ok(id){
var a = confirm("정말로 삭제하겠습니까?");
if(a) location.href='deletepost.jsp?id=' + id;
}
</script>
</head>
<body>
<h1>회원 목록</h1>
<table id="list" width="90%">
<tr>
<th>ID</th>
<th>Name</th>
<th>E-mail</th>
<th>Regdate</th>
<th>View</th>
<th>Edit</th>
<th>Delete</th>
</tr>
<%
MemberDAO memberDAO = new MemberDAO();
List<MemberVO> list = memberDAO.getMemberList();
request.setAttribute("list",list);
%>
<c:forEach items="${list}" var="u">
<tr>
<td>${u.getUserid()}</td>
<td>${u.getUsername()}</td>
<td>${u.getEmail()}</td>
<td>${u.getRegdate()}</td>
<td><a href="view.jsp?id=${u.getSid()}">View</a></td>
<td><a href="editform.jsp?id=${u.getSid()}">Edit</a></td>
<td><a href="javascript:delete_ok('${u.getSid()}')">Delete</a></td>
</tr>
</c:forEach>
</table>
<br/><a href="addpostform.jsp">Add New Post</a>
</body>
</html>
view.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="com.member.dao.MemberDAO,com.member.bean.MemberVO"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Edit Form</title>
</head>
<body>
<%
MemberDAO MemberDAO = new MemberDAO();
String id=request.getParameter("id");
MemberVO u=MemberDAO.getOne(Integer.parseInt(id));
%>
<h1>Edit Form</h1>
<form action="editpost.jsp" method="post">
<input type="hidden" name="seq" value="<%=u.getSid() %>"/>
<table>
<tr><td>ID:</td><td><%= u.getUserid()%></td></tr>
<tr><td>Name:</td><td><%= u.getUsername()%></td></tr>
<tr><td>Photo:</td><td><%= u.getEmail()%></td></tr>
<tr><td>Detail:</td><td><%= u.getDetail()%></td></tr>
<tr><td><input type="button" value="Cancel" onclick="history.back()"/></td></tr>
</table>
</form>
</body>
</html>
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>CRUDProject</groupId>
<artifactId>CRUDProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<release>14</release>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.jfinal/cos -->
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>cos</artifactId>
<version>2020.4</version>
</dependency>
</dependencies>
</project>
system.properties
java.runtime.version = 14