IT/Backend

Session + Application으로 회원가입, 로그인 구현하기

_KH_ 2025. 2. 23. 19:29
아이디   _____
비밀번호   _____
   [로그인] [회원가입]

로그인 성공
   >> 메인 화면으로 이동
로그인 실패
   >> 로그인 화면에 남아있음

++++++++++++++++++++++++++++++++

xxx님의 정보   << 웹 폰트 적용해보기
전화번호   010-1234-1234
이메일   xxxxx@naver.com

++++++++++++++++++++++++++++++++

회원가입 화면
아이디   xxxxx
비밀번호   xxxxx
전화번호   010-1234-1234   << 정규식 적용해보기
이메일   xxxxx@naver.com   << HTML 구성

※ 로그인 정보 >> session
※ 가입한 회원들의 정보 >> application

 

Session > 로그인

Application > 회원가입

 


[공부 중 추가로 찾아본 것]

1. Login.jsp에서 submit으로 설정된 버튼을 누를 시 페이지를 form action = "Join.jsp"로 보내고 있는데, 회원가입 버튼을 눌렀을 때도 다른 페이지로 보내도록 구현할 수 있는지

>> 가능. 자바스크립트로 처리한다.

<input type ="submit" value = "회원가입" onclick="window.location.href='Join.jsp';">

 

onclick : 버튼 클릭 시 브라우저가 실행할 JS 코드 작성.

■ window : 브라우저 창과 관련된 기능 제공

■ href = "주소" : 해당 URL로 이동시

자바 스크립트로 처리하니 잘 넘어가진다.


2. HTML  <input> 태그의 속성 중 submit과 button의 차이

type = "submit"

□ 폼 제출 : 버튼을 클릭할 시 속해 있는 폼(form)의 데이터를 서버로 전송한다. 전송할 서버는 form action = ""으로 설정.

□ 폼 내용 검증 : 폼에 required 등의 유효성 속성이 있을 경우, 폼을 제출하기 전에 미리 알맞게 작성하도록 검증함

 

type = "button"

□ 아무런 기능이 없다. 클릭해도 아무런 일이 일어나지 않음. (폼 내용이 제출되지도 않는다.)

□ 페이지 이동 등의 기능을 추가하려면 자바스크립트로 이벤트 핸들러인 onclick() 을 작성해야 한다.

□ button으로 폼 내용 제출하고 싶으면 submit 속성을 사용하거나 자바스크립트로 따로 구현할 것


3. session.getAttribute("id"); 실행 시 닉네임 정보에서 null이 표시되는 이유

: setAttribute("") 로 id 값을 세션에 저장해주지 않아서.

 

id 값을 출력해도 웹으로 실행해보면 정보에 null만 떠있는 상황 발생.

알고보니 LoginAction.jsp 파일 내에서 session에 id를 저장해주지 않은 것.

위에서 request.getParameter("id")로 가져왔기에 자동으로 들어간다고 생각했는데 단지 요청으로 가져온 값일 뿐 세션에는 자동으로 저장되지 않는 사실을 알았다.

즉, request로 가져온 id는 해당 jsp 내에서만 존재할 뿐, url 이동 시 세션에는 담겨있지 않아 다른 페이지에서 null값으로 남는다.

 

그래서 그냥 LoginAction.jsp에서 id를 세션에 저장하도록 수정하고,

main.jsp에서는 저장된 id를 출력하도록 고쳐주었다.


4. location.href, response.sendRedirect, history.go(-1) 차이

-1) location.href(" "); : 

■ 자바스크립트 방식

■  back 불가능.

 

-2) sendRedirect(" ");

■ 단순 페이지 이동만.

■ back 버튼 가능

 

+))) forword("") : 페이지 이동 및 값 전달 가능.

 

>> 특정 URL 강제 이동에 사용

-3) history.go(-1);

■ 자바스크립트 방식

■ 브라우저의 방문 기록을 이용하여 이전 페이지로 돌아감. 

>> 뒤로가기에 사용


5. getAttribute(), getParameter() 차이

-1) getAttribute()

■ 웹에서 전송받은 request 값을 읽어오는 역할을 한다.

■ HTML 데이터 추출

타입은 String

-2) getParameter()

모든 객체를 담을 수 있음. 주로 빈 객체나 다른 클래스를 받아올 때 사

getAttribute를 사용해 session 변수를 검색할 수 있으나, setAttribute를 통해 값을 설정해주지 않으면 null값이 출력

타입은 Object

이전에 다른 JSP 또는 Servlet 페이지에 설정된 매개 변수를 가져 오는 데 사용

■ page, request, response, session, application 같은 영역에서 임의의 속성값을 저장하고 가져올 때 사용

■ setAttribute는 해쉬맵 방식으로 key값, value 값을 이용해서 저장, getAttribute를 통해 값 반환


 

추가 수정

+ 1) 내용이 입력되어있으면 회원가입을 선택해도 로그인 처리됨.

<input type = "submit" value = "로그인">
<input type ="submit" value = "회원가입" onclick="window.location.href='Join.jsp';">

원래 이랬던 코드를

<input type="submit" value="로그인">
<input type="button" value="회원가입" onclick="window.location.href='Join.jsp';">

아래와 같이 변경

 

이렇게 수정하니 로그아웃 버튼을 눌렀을 시 폼을 제출하지 않고 회원가입 폼으로 리다이렉션하게 된다!

submit은 폼을 제출하는 속성이기 때문에 submit에서 button으로 바꾸고 자바스크립트의 onclick을 이용했다.

'IT > Backend' 카테고리의 다른 글

예제 (JSP)  (0) 2025.03.03
JSP + Servlet  (0) 2025.03.02