오늘은 Java Servlet 기반 웹 프로젝트에서 다음 두 가지 기능을 새롭게 구현하고 테스트했다.
삭제 기능 구현 중 발생한 404 에러 문제도 직접 분석하고 해결했다.
UserLogin.java
Member
객체로 변환 후 MemberService
에 전달String userId = request.getParameter("userId");
...
Member insMember = new Member();
insMember.setMemberId(userId);
insMember.setMemberPw(userPw);
insMember.setMemberName(userName);
insMember.setMemberPhone(userPhone);
insMember.setMemberAddr(userAddr);
int result = mService.joinMember(insMember);
✅ 회원가입 성공: “회원가입이 완료되었습니다.”
⚠️ 아이디 중복: “입력하신 아이디와 중복되는 회원이 이미 존재합니다.”
❌ 오류 발생: “회원 가입 중 오류가 발생하였습니다.”
DeleteFormServlet.java
DeleteServlet.java
회원 리스트를 테이블 형식으로 출력
각 행에 삭제 링크 추가 → 회원 번호 기반 삭제 요청
DeleteServlet에서 memberNo 받아 DB에서 삭제 수행
현재는 Servlet 내의 PrintWriter 출력이기 때문에 문자열 그대로 출력됨
따라서 링크가 실제 경로가 아닌 /server_02_servlet/${pageContext...}로 만들어져 404 발생
request.getContextPath()는 Servlet에서 context 경로를 동적으로 가져오는 정석적인 방법
파일명 | 역할 |
---|---|
UserLogin.java | 회원가입 처리 Servlet |
DeleteFormServlet.java | 삭제 링크 포함 회원 목록 출력 |
DeleteServlet.java | 회원 삭제 수행 Servlet |
MemberService.java | 비즈니스 로직 처리 |
MemberDao.java | DB 작업 수행 |
EL 표현식은 JSP에서만 사용해야 하며, Servlet에서는 반드시 request.getContextPath() 같은 메서드를 통해 직접 경로를 구성해야 한다는 점을 명확히 배웠다.
URL 구성 실수 하나로 기능이 완전히 작동하지 않음을 경험하면서, URL 동적 구성의 중요성을 체감했다.
기능 구현은 물론, 발생한 오류를 직접 디버깅하고 해결함으로써 자신감을 얻었다.
Back-End: Java Servlet
Database: Oracle XE
JDBC Utility: 커스텀 JDBCTemplate 클래스