고래씌
[JSP] 4-2. 로그아웃, 회원가입 페이지 만들기 본문
4-1. 과 내용 이어집니다.
resource : 모든페이지에 공통적으로 적용되는 css 파일이 들어간 폴더
1. 로그아웃 페이지 만들기
=> 아까 menubar.jsp파일에서 로그아웃을 클릭했을 때 다음으로 이동하도록 설정해두었으니 LogoutController 서블렛 파일을 생성하여 페이지 이동하도록 만들어주도록 하겠다.
■ LogoutController.java 파일
package com.kh.member.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class LogoutController
*/
@WebServlet("/logout.me")
public class LogoutController extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LogoutController() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// a태그(앵커태그)를 통한 페이지 이동은 get으로 요청을 보내는 것
// 로그아웃 요청처리 => session데이터 만료시키기
// request.getSession().removeAttribute("loginUser");
request.getSession().invalidate();
// 응답페이지는 메인페이지로 페이지 재요청 보내기 -- 현재 logout.me에 머물러 있음
response.sendRedirect(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
- request.getSessoin().invalidate(); => 모든 내용 싹 다 지움
=> 로그아웃 클릭시 메인페이지로 다시 이동하도록 설정
2. 회원가입 페이지 만들기
=> menubar.jsp에 다음 CSS 가 적용되도록 링크 설정
■ common.css 파일
@charset "UTF-8";
/* 모든 페이지에 공통으로 들어갈 페이지 */
.outer{
background : black;
color : white;
width : 1000px;
margin : auto;
margin-top : 50px;
}
/* 회원가입 폼 */
#enroll-form table{margin:auto;}
#enroll-form input{margin:5px;}
■ memberEnrollForm.java 파일
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@ include file="../common/menubar.jsp" %>
<div class="outer">
<br>
<h2 align="center">회원가입</h2>
<form action="<%= contextPath %>/enroll.me" method="post" id="enroll-form">
<!--
아이디, 비번, 이름, 전화번호, 이메일, 주소, 취미
-->
<table>
<tr>
<td>* 아이디</td>
<td><input type="text" name="userId" maxlength="12" required></td>
<td><button onclick="idCheck();" type="button">중복확인</button></td>
</tr>
<tr>
<td>* 비밀번호</td>
<td><input type="password" name="userPwd" maxlength="15" required></td>
<td></td>
</tr>
<tr>
<td>* 비밀번호 확인</td>
<td><input type="password" maxlength="15" required></td>
<td></td>
</tr>
<tr>
<td>* 이름</td>
<td><input type="text" name="userName" maxlength="6" required></td>
<td></td>
</tr>
<tr>
<td>전화번호</td>
<td><input type="text" name="phone" placeholder="- 포함해서 입력"></td>
<td></td>
</tr>
<tr>
<td>이메일</td>
<td><input type="email" name="email"></td>
<td></td>
</tr>
<tr>
<td>주소</td>
<td><input type="text" name="address"></td>
<td></td>
</tr>
<tr>
<td>관심분야</td>
<td colspan="2">
<input type="checkbox" name="interest" id="interest1" value="운동"><label for="interest1">운동</label>
<input type="checkbox" name="interest" id="interest2" value="등산"><label for="interest2">등산</label>
<input type="checkbox" name="interest" id="interest3" value="낚시"><label for="interest3">낚시</label>
<input type="checkbox" name="interest" id="interest4" value="요리"><label for="interest4">요리</label>
<input type="checkbox" name="interest" id="interest5" value="게임"><label for="interest5">게임</label>
<input type="checkbox" name="interest" id="interest6" value="영화"><label for="interest6">영화</label>
</td>
</tr>
</table>
<br><br>
<div align="center">
<button type="submit" onclick="return validate();">회원가입</button>
</div>
</form>
</div>
</body>
</html>
=> 회원가입 버튼 클릭시 화면
■ memberInsertController.java 파일
package com.kh.member.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.kh.member.model.service.MemberService;
import com.kh.member.model.vo.Member;
/**
* Servlet implementation class memberInsertController
*/
@WebServlet("/enroll.me")
public class memberInsertController extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public memberInsertController() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("views/member/memberEnrollForm.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1) 인코딩 작업
request.setCharacterEncoding("UTF-8");
// 2) 요청시 전달값을 뽑아서 변수 및 객체에 기록하기
// 아이디, 비번, 이름, 전화번호, 이메일, 주소, 취미
String userId = request.getParameter("userId");
String userPwd = request.getParameter("userPwd");
String userName = request.getParameter("userName");
String phone = request.getParameter("phone");
String email = request.getParameter("email");
String address = request.getParameter("address");
String[] interestArr = request.getParameterValues("interest");
String interest = "";
if(interestArr != null) {
interest = String.join(",", interestArr); // ,로 하나로 연결해줄 것이다.
}
// 매개변수 생성자를 이용해서 Member객체 만들어보기
Member m = new Member(userId, userPwd, userName, phone, email, address, interest);
// 우리는 Member 클래스에 7개의 값만 담는 메소드를 생성한 적 없기 때문에 Member클래스로 가서 생성해주어야 한다.
// 가공처리한 Member 객체를 service로 보냄
// 회원가입 요청처리
int result = new MemberService().insertMember(m);
// 처리결과(result)를 가지고 사용자가 보게될 응답화면 지정.
if(result > 0) { // 정상 회원가입
HttpSession session = request.getSession();
session.setAttribute("alertMsg", "회원가입에 성공했습니다.");
response.sendRedirect(request.getContextPath());
}else { // 실패
request.setAttribute("errorMsg", "회원가입에 실패했습니다.");
request.getRequestDispatcher("views/common/errorPage.jsp").forward(request, response);
}
}
}
=> 우리는 Member 클래스에 7개의 값만 담는 메소드를 생성한 적 없기 때문에 Member클래스로 가서 생성해주어야 한다.
▶ Member 클래스에 메소드 추가
■ MemberService.java 파일에 insertMember 메소드 생성
■ MemberDao.java 파일에 insertMember 메소드 생성
■ member-mapper.xml 파일에 회원가입 기능과 관련된 쿼리문 추가
'Server > JSP과 Servlet' 카테고리의 다른 글
[JSP] 5-1. 게시판 만들기(페이지) (0) | 2023.12.08 |
---|---|
[JSP] 4-3. 마이페이지 만들기(회원정보 변경, 회원탈퇴, 비밀번호 변경) (0) | 2023.12.07 |
[JSP] 4-1. DB 이용하여 로그인 기능 만들기 (0) | 2023.12.06 |
[JSP] 피자주문 실습문제 (1) | 2023.12.06 |
[JSP] 3-2. include 지시어 (0) | 2023.12.06 |