개인프로젝트 회원가입페이지 가상경로 띄우고 데이터 전송까지
회원가입버튼 클릭시
회원정보를 입력할 수 있는 페이지를 띄우려고한다.
회원가입에 링크를 걸어 .do라는 가상경로로 접속할수있게 한다.
web.xml파일을 만들어
페이지 링크의 매핑 대상을 정한다.
servlet-class의 controller경로를 package부터 정확히 작성해준다.
url-pattern은 *.do → * : 모든 / .do라고 되어있는 링크
쉽게 말해 .do라고 되어있는 모든 페이지이다.
FrontController에서 가상경로를 추출하여 경로의 자리수를 구해 슬래시(/)를 기준으로 배열에 담는다.
슬래시를 기준으로 1번째 인덱스가 'user'일 경우 UserController객체를 생성하여
2번째 인덱스로 들어오는 경로를 변수에 담는다.
FrontController를 거쳐
UserController에서 action의 경로가 Join.do(가상경로) 이면 Join.jsp(실제경로)로 이동한다.
회원가입 버튼 클릭시 회원정보를 입력하는 페이지가 뜨는것을 확인할 수 있다.
가상경로지정을 하고 컨트롤러에서 호출하는 구문까지 맞게작성했는데
회원정보입력 페이지가 안떠서 애먹던 도중에
문제는 web.xml 파일의 파일명을 바꾼게 잘못이었다는것을 알게되었다.
web.xml 파일명을 바꾸게 되면 tomcat에서 읽어들이지를 못해 실행이안된다.
정말 간단하고 단순한 이유였지만 절대 혼자서 알아낼수없었을 문제였다.
이 문제로 꼬박 하루를 잡아먹었는데 그래도 해결해서 다행이다 휴,,,,,,,,,,,,
이제!! 입력한 정보를 데이터로 옮길차례!
그 전에 자바와 오라클을 연결
package service2;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import dbconn2.Datebconn;
import domain2.UserVo;
public class UserDao {
private PreparedStatement pstmt;
private Connection conn;
public UserDao() {
Datebconn datebconn = new Datebconn();
this.conn = datebconn.getConnect();
}
public int userInsert(UserVo uv) {
int value = 0;
String sql = "INSERT INTO tableproject0919(MIDX,MEMBERID,MEMBERPWD,MEMBERNAME,MEMBERBIRTH,MEMBERPHONE,MEMBEREMAIL,IP)"
+ " VALUES(TB_MIDX_SEQ.NEXTVAL,?,?,?,?,?,?,?)";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,uv.getMemberId());
pstmt.setString(2,uv.getMemberPwd());
pstmt.setString(3,uv.getMemberName());
pstmt.setString(4,uv.getMemberBirth());
pstmt.setString(5,uv.getMemberPhone());
pstmt.setString(6,uv.getMemberEmail());
pstmt.setString(7,uv.getIp());
value = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return value;
}
}
객체 연결
쿼리문의 ? 값으로 들어올 값 작성
입력된 내용을 데이터 전송한다.
1.2 번은 sql에서 직접 입력한 데이터이고
3번에 있는 데이터가 회원정보입력폼에서 데이터로 넘어온 결과이다!
근 2일만에 드디어 회원가입 완료!!!!!