21.01.18 JSPCommunity 프로젝트(EL, JSTL도입, 회원가입,로그인 기능 추가(feat.form check()))
2021. 1. 18. 17:58ㆍJAVA/JSP Community 사이트 프로젝트
<UsrMemberController.java>
package com.sbs.example.jspCommunity.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sbs.example.jspCommunity.container.Container;
import com.sbs.example.jspCommunity.dto.Member;
import com.sbs.example.jspCommunity.service.MemberService;
public class UsrMemberController {
private MemberService memberService;
public UsrMemberController() {
memberService = Container.memberService;
}
// 회원가입 폼
public String doJoinForm(HttpServletRequest request, HttpServletResponse response) {
return "usr/member/doJoinForm";
}
// 회원가입
public String doJoin(HttpServletRequest request, HttpServletResponse response) {
String loginId = request.getParameter("loginId");
String loginPw = request.getParameter("loginPw");
String name = request.getParameter("name");
String nickname = request.getParameter("nickname");
String email = request.getParameter("email");
String cellPhoneNo = request.getParameter("cellPhoneNo");
/* form check 도입으로 여기서 실행할 필요 없음
* // 정보가 하나라도 입력안되면 리턴 if (loginId == null || loginPw == null || name == null
* || nickname == null || email == null || cellPhoneNo == null) {
* request.setAttribute("alertMsg", "모든 정보를 입력하세요.");
* request.setAttribute("historyBack", true); // historyBack: 뒤로 돌아가기 return
* "common/redirect"; }
*/
List<Member> members = memberService.getMemberListForPrint();
// 해당 loginId가 사용가능한지 중복확인
for (int i = 0; i < members.size(); i++) {
if (members.get(i).getLoginId().equals(loginId) == true) {
request.setAttribute("alertMsg", "해당 아이디는 이미 사용중인 아이디입니다.");
request.setAttribute("historyBack", true); // historyBack: 뒤로 돌아가기
return "common/redirect";
}
}
// 해당 nickname이 사용가능한지 중복확인
for (int i = 0; i < members.size(); i++) {
if (members.get(i).getNickname().equals(nickname) == true) {
request.setAttribute("alertMsg", "해당 닉네임는 이미 사용중인 닉네임입니다.");
request.setAttribute("historyBack", true); // historyBack: 뒤로 돌아가기
return "common/redirect";
}
}
Map<String, Object> joinArg = new HashMap<>();
joinArg.put("loginId", loginId);
joinArg.put("loginPw", loginPw);
joinArg.put("name", name);
joinArg.put("nickname", nickname);
joinArg.put("email", email);
joinArg.put("cellPhoneNo", cellPhoneNo);
// 신규 회원가입
int id = memberService.join(joinArg);
// 생성 알림창 보여주고 회원정보로 이동하기
request.setAttribute("alertMsg", id + "번 회원님 반갑습니다.");
Member member = memberService.getMemberById(id);
request.setAttribute("member", member);
return "usr/member/doJoin";
}
// 로그인 폼
public String doLoginForm(HttpServletRequest request, HttpServletResponse response) {
return "usr/member/doLoginForm";
}
// 로그인
public String doLogin(HttpServletRequest request, HttpServletResponse response) {
String loginId = request.getParameter("loginId");
String loginPw = request.getParameter("loginPw");
/* form check 도입으로 여기서 실행할 필요 없음
* // 정보가 하나라도 입력안되면 리턴 if (loginId == null || loginPw == null) {
* request.setAttribute("alertMsg", "모든 정보를 입력하세요.");
* request.setAttribute("historyBack", true); // historyBack: 뒤로 돌아가기 return
* "common/redirect"; }
*/
Member member = memberService.getMemberByLoginId(loginId);
// 해당 loginId가 등록된 id인지 확인
if (member == null) {
request.setAttribute("alertMsg", "해당 아이디는 없는 아이디입니다. 아이디를 확인하세요.");
request.setAttribute("historyBack", true); // historyBack: 뒤로 돌아가기
return "common/redirect";
}
// 해당 loginPw가 일치하는지 확인
if (member.getLoginPw().equals(loginPw) == false) {
request.setAttribute("alertMsg", "비밀번호가 틀렸습니다.");
request.setAttribute("historyBack", true); // historyBack: 뒤로 돌아가기
return "common/redirect";
}
// 로그인 알림창 보여주고 리스트로 이동
request.setAttribute("alertMsg", loginId + " 회원님 반갑습니다.");
// request.setAttribute("replaceUrl", String.format("doLoginForm"));
// return "common/redirect";
return "usr/member/doLogin";
}
}
<doJoinForm.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="pageTitle" value="신규 회원 가입" />
<%@ include file="../../part/head.jspf"%>
<h1>${pageTitle}</h1>
<form name="form" onsubmit="return check()" action="doJoin"
method="POST">
<span>로그인 ID</span>
<br />
<input type="text" name="loginId" maxlength="50" placeholder="ID 입력">
<br />
<span>로그인 PW</span>
<br />
<input type="password" name="loginPw" maxlength="50"
placeholder="PW 입력">
<br />
<span>이름</span>
<br />
<input type="text" name="name" maxlength="50" placeholder="이름 입력">
<br />
<span>닉네임</span>
<br />
<input type="text" name="nickname" maxlength="50" placeholder="닉네임 입력">
<br />
<span>E-Mail</span>
<br />
<input type="email" name="email" maxlength="100"
placeholder="이메일 주소 입력">
<br />
<span>연락처</span>
<br />
<input type="number" name="cellPhoneNo" maxlength="50"
placeholder="연락처 입력">
<br />
<hr />
<input type="submit" value="회원가입">
<button type="button" onclick="history.back();">뒤로가기</button>
</form>
<script>
function check() {
if (form.loginId.value == "") {
alert("ID를 입력해주세요.");
form.loginId.focus();
return false;
}
if (form.loginPw.value == "") {
alert("PW를 입력해주세요.");
form.loginPw.focus();
return false;
}
if (form.name.value == "") {
alert("이름을 입력해주세요.");
form.name.focus();
return false;
}
if (form.nickname.value == "") {
alert("닉네임을 입력해주세요.");
form.nickname.focus();
return false;
}
if (form.email.value == "") {
alert("e-mail을 입력해주세요.");
form.email.focus();
return false;
}
if (form.cellPhoneNo.value == "") {
alert("연락처를 입력해주세요.");
form.cellPhoneNo.focus();
return false;
}
else return true;
}
</script>
<%@ include file="../../part/foot.jspf"%>
'JAVA > JSP Community 사이트 프로젝트' 카테고리의 다른 글
21.01.21 JSPCommunity 프로젝트(ajax활용 아이디 중복체크 기능 추가, 메인화면 템플릿 적용) (0) | 2021.01.21 |
---|---|
21.01.19 JSPCommunity 프로젝트(중복코드 통합, session도입, 권한 체크 방식 개선 등) (0) | 2021.01.19 |
21.01.16 JSPCommunity 프로젝트(확인메세지창, head.jspf, foot.jspf 도입) (0) | 2021.01.16 |
21.01.11 JSPCommunity 프로젝트(form, redirect 도입) (0) | 2021.01.11 |
21.01.07 servlet & JSP 연계 연습(게시판별 게시물 리스팅, 상세보기, 생성, 수정 , 삭제 등) (0) | 2021.01.07 |