회원가입

오늘도 코딩중!·2023년 4월 2일
0

Servlet

목록 보기
4/4

들어가기에 앞서

회원가입을 하기 위해서 간단한 흐름을 구현해본다.

  • 간단하게 구현한 흐름은 이러하다

여기서 이용할 JSTL, Jquery등 구현하기 위해서는 라이브러리를 선언해주어야 한다.

Jquery로 ${contextPath}를 사용할 예정.

1. JSP에서 JSP로 이동하기.

왜 HTML과는 다르게 JSP에서 JSP로 바로 이동하지 못할 까.

  • HTML에서는 a 태그등을 이용해서 우리가 원하는 경로로 이동할 수 있었다. 하지만 JSP에서는 다르다. JSP에서 JSP로 이동하는 것은 불가능 하다. 왜냐하면 JSP는 HTML과 자바 코드가 혼합되어 있는 동적 웹페이지를 만들기 위한 언어인데, 이때 JSP는 서블릿으로 변환되어 명령을 수행하게 된다.

    서블릿은 동적기능을 담당하는 역할을 진행하며, HTTP에 대한 요청의 처리를 하는데 여기서 데이터베이스의 연결과 파일의 입출력 등을 수행한다.

    그래서 서블릿 영역에 파일 이동에 대한 명령문 req.sendRedirect("요청주소")를 쓰게 되면 파일을 이동할 수 있다.


  • 예시

이 기능을 응용하면 우리는 회원가입으로 만든 jsp로 이동할 수 있다.

2. 회원가입 서블릿 만들기.

이동을 하면, 우리는 jsp와 css로 멋들어진 홈페이지 회원가입 창을 만들 수 있을 것이다.

이렇게 만들었다.

필요한 기능을 생각해보자.

  1. 아이디가 중복이 되는 지 안되는지에 대한 여부, 메시지 보내기(동적)

  2. 인증번호를 받아와서 인증번호가 맞는 지 인증번호가 올라간 데이터베이스에 대한 접속(JDBC)

  3. 닉네임 중복여부(JS 정규표현식)

  4. 전화번호 정규표현식

  5. 가입버튼을 눌렀을 시 POST방식으로 송신할 form의 onsubmit 함수를 만들기- 여기서 유효성 여부를 검사할 것이다.

  6. 세션 시간 설정. (로그인 만료 설정)

인증번호를 만들고 인증번호를 내부에 뿌려주는 기능을 전 포스트를 참고하자.

링크: https://velog.io/@kks4116/Servlet-메일-보내기

JDBC연결

JDBCTemplate으로 만들어서 comit과 rollback 그리고 jdbc를 연결하기 위한 conn의 세팅을 만드는 방법이 있다.

우리는 그곳에 Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(jdbc:연결할 데이터베이스:연결 언어 타입:@접속할 아이피:포트번호:리스너);를 집어넣어
jdbc를 만든다.

jdbc를 만든 후 mvc패턴을 적용하여 service와 dao를 만들어 service에서 결과에 따라 connection 객체를 rollback할지 commit할지를 설정하고, dao에서는 데이터베이스에서 실행될 문법을 xml파일에서 Property로 가져온다.

자세한 설명은 여기 링크 참고

https://velog.io/@kks4116/JDBC

여기서 적용할 JDBC는 insert문과 select문으로 select문으로 가져온 값은 ResultSet으로 가져오고 insert문은 int문으로 가져오니 기억해두길 추천.

정규표현식, setInterval, $.ajax 그리고 모든 유효성 검사를 완료하고 나면 Post방식으로 Database에 넣을 Parameter를 req를 통해 가져온다.
@WebServlet("/member/signUp")

가져올 때 사용하는 "memberEmail"은 Parameter의 name속성 value값이므로 참고!

Service

DAO

를 통해서 return 값이 1이 되면 성공하였다는 message를 설정.
이때 jstl인

<c:if test="${ !empty sessionScope.message }">

    <script>
        alert("${message}");
        // EL 작성 시 scope를 지정하지 않으면
        // page -> reques   t -> session -> application 순서로 검색하여
        // 일치하는 속성이 있으면 출력
    </script>
    <%-- message 1회 출력 후 session에서 제거 --%>
    <c:remove var="message" scope="session"/>
</c:if> 

을 사용하면 세션에 설정해둔 메시지를 출력할 수 있음 세션에 메시지를 설정하는 방법은 아래와 같다.

HttpSession session = req.getSession();
session.setAttribute("message", "가입되었습니다.");

이 메시지가 존재하면 sendRedirect전에 실행되게 하여 jsp에 나타나게 한다.
<c:if>라는 jstl을 사용하고, ${message}라는 jquery를 사용.

이렇게 하면 db에 사용자가 들어간 것을 확인 할 수 있다.

END

profile
늦은만큼 코막고 달려!

0개의 댓글