MemberVO
~~
Controller
private MemberDAO mdao = null;
public MemberRegister(){
mdao = new MemberDAO_imple();
}
@Override
public void execute(HttpServletRequest request, HttpServletResponse response) throws Exception{
String method = request.getMethod();
if("GET".equalsIgnoreCase(method)){
super.setRedirect(false);
super.setViewPage("/WEB-INF/member/memberRegister.jsp");
}
else{
String name = request.getParameter("name");
String userid = request.getParameter("userid");
String pwd = request.getParameter("pwd");
...
MemberVO member = new MemberVO();
member.setUserid(userid);
member.setPwd(pwd);
member.setName(name);
...
String message = "";
String location = "";
try{
int n = mdao.registerMember(member);
if(n==1){
message = "회원가입 성공^-^";
location = request.getContextPath() + "/index.do";
}
} catch(SQLException e) {
message = "회원가입 실패ㅠㅠ";
location = "javascript:history.back()";
e.printStackTrace();
}
request.setAttribute("message",message);
request.setAttribute("location",location);
super.setRedirect(false);
super.setViewPage("/WEB-INF/msg.jsp");
}
}
JSP ( Get - Register)
<%
String ctxPath = request.getContextPath();
%>
<%-- 직접 만든 CSS --%>
<link rel="stylesheet" type="text/css" href="<%= ctxPath%>/css/member/memberRegister.css" />
<script src="https://t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js"></script>
<%-- 직접 만든 JS --%>
<script type="text/javascript" src="<%= ctxPath%>/js/member/memberRegister.js"></script>
<jsp:include page="../header.jsp" />
... ( 내용물 )
<jsp:include page="../footer.jsp" />
JSP ( Post - Message )
<script type="text/javascript">
alert("${requestScope.message}");
location.href = "${requestScope.location}";
</script>
Security
- Sha256 ( 암호화 )
- AES256 ( 암호화 - 복호화 )
- SecretMyKey
DAO
int registerMember(MemberVO member) throws SQLException;
DAO_imple
private DataSource ds;
private Connection conn;
private PreparedStatement pstmt;
private ResultSet rs;
private AES256 aes;
public MemberDAO_imple(){
try{
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
ds = (DataSource)envContext.lookup("jdbc/myoracle");
aes = new AES256(SecretMyKey.key);
} catch(NamingException e){
e.printStackTrace();
} catch(UnsupportedEncodingException e){
e.printStackTrace();
}
}
private void close(){
try{
if(rs != null){
rs.close();
rs=null;
}
if(pstmt != null){
pstmt.close();
pstmt=null;
}
if(conn != null){
conn.close();
conn=null;
}
} catch(SQLException e){
e.printStackTrace();
}
}
public int registerMember(MemberVO member) throws SQLException{
int result = 0;
try{
conn = ds.getConnection();
String sql = " insert into 테이블명(userid, pwd, name, ... 컬럼명) "
+ " values( ?, ?, ? ...) ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, member.getUserid());
pstmt.setString(2, Sha256.encrypt(member.getPwd()));
pstmt.setString(3, member.getName());
pstmt.setString(4, aes.encrypt(member.getEmail()));
...
result = pstmt.executeUpdate();
} catch(UnsupportedEncodingException | GeneralSecurityException e){
e.printStackTrace();
} finally{
close();
}
return result;
}