반응형
Join 기능을 만들려면 Join.Java (Servlet 파일), join.jsp, index.jsp 파일이 필요하다.
index.jsp 파일
제일 첫 화면에 보일 실행 페이지 Index.jsp 를 만들어준다.
<h3>webApp2</h3>
<a href="/webApp2/Join"> 회원가입</a>
Join.java - doGet
Index.jsp 에서 회원가입을 클릭하면 연결되는 Join.java (Servlet) 이다.
Index.jsp -> getPost -> doGet에 연결된 join.jsp 에 연결해준다.
package member;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
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 Join
*/
//요청을 받는 Servlet
@WebServlet("/Join") // 이 페이지의 웹에서 접근 경로
public class Join extends HttpServlet { // http 프로토콜로 통신 받는 것 구현
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Join() { // 생성자
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
RequestDispatcher dis = request.getRequestDispatcher("/member/join.jsp"); //같은 webApp2 안에서 이동해 경로 일부만 작성
dis.forward(request, response);
}
join.jsp
join.jsp 페이지는 회원가입 폼이다. 회원가입 폼을 구체화 하여 각 항목의 값을 클라이언트에게서 받아온다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- jsp 페이지에 대한 설정 구문-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>회원가입</h3>
<form action="/webApp2/Join" method="post">
<!-- servlet Join 으로 이동 -->
<table border="1">
<tr><th> ID </th><td><input type = "text" name = "id"></td></tr>
<tr><th> PWD </th><td><input type = "password" name = "pwd"></td></tr>
<tr><th> NAME </th><td><input type = "text" name = "name"></td></tr>
<tr><th> EMAIL </th><td><input type = "text" name = "email"></td></tr>
<tr><th> 가입 </th><td><input type = "submit" value = "가입"></td></tr>
</table>
</form>
</body>
</html>
Join.java - doPost
doPost에서는 join.jsp 에서 받아온 값을 getParameter 로 받아온다. 이때, name값과 똑같은 값으로 읽어온다.
새로운 MemberService 객체를 생성하고 읽어온 값들을 변수에 담아 DB에 저장한다.
그리고 다시 index 페이지로 새로고침하기 위해 회원가입이 완료되면 redirect 페이지로 이동하도록 한다.
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
// do post 메서드
// 사용자가 입력한 데이터로 회원가입을 완료
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
String id = request.getParameter("id"); //name 값과 똑같은 이름으로 읽어옴, 읽어온 값을 변수에 담는다.
String pwd = request.getParameter("pwd");
String name = request.getParameter("name");
String email = request.getParameter("email");
//1. 폼 파라메터에 입력한 값을 받아와
MemberService service = new MemberService();
service.join((new MemberVo(id,pwd,name,email)));
//2. MemberVo에 넣어주고, DB에 넣어준다.
response.sendRedirect("/webApp2/index.jsp");
//클라이언트에 페이지를 새로 요청하도록 시킴
//3. 회원가입이 완료되면 이동
//아래 코드는 새로고침이 안되기 때문에 redirect 사용.
// RequestDispatcher dis = request.getRequestDispatcher("/index.jsp");
// dis.forward(request, response);
}
}
반응형