1. Java Servlet 이란?
Java Servlet은 Java 언어로 작성된 서버 측 프로그램으로, 주로 웹 애플리케이션 개발에 사용된다. 서블릿은 일반적으로 웹서버(아파치 톰캣) 에서 동작하며, 클라이언트의 요청에 따라 동적으로 웹 페이지를 생성한다.
@WebServlet("/join-form")
public class JoinFornServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
Servlet 을 사용하는 법은 간단하다.
클래스에 HttpServlet 을 상속하고, @WebServlet 어노테이션을 달아주면 된다.
그러면 service 메서드를 오버라이드 할 수 있다.
회원가입을 위한 페이지를 만들어보자.
2. 회원가입(”/join-form”) 화면 만들기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>회원가입 페이지</h1>
<hr>
<form action="/join" method="post">
<input type="text" placeholder="username" name="username">
<input type="text" placeholder="password" name="password">
<input type="text" placeholder="email" name="email">
<button>회원가입</button>
</form>
</body>
</html>
HTML 로 아이디와 비밀번호, 이메일을 입력받는 페이지를 만들었다.

이 페이지는 데이터를 입력해도 동작하지 않는 정적 페이지다.
회원가입 버튼을 누르면 동작할 수 있는 페이지를 만들어보자.
@WebServlet("/join-form")
public class JoinFormServlet extends HttpServlet { //HttpServlet 을 상속하고 어노테이션한다.
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String html = "<!DOCTYPE html>\n" +
"<html lang=\"en\">\n" +
"<head>\n" +
" <meta charset=\"UTF-8\">\n" +
" <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n" +
" <title>Document</title>\n" +
"</head>\n" +
"<body>\n" +
" <h1>회원가입 페이지</h1>\n" +
" <hr>\n" +
" <form action=\"/join\" method=\"post\">\n" +
" <input type=\"text\" placeholder=\"username\" name=\"username\">\n" +
" <input type=\"text\" placeholder=\"password\" name=\"password\">\n" +
" <input type=\"text\" placeholder=\"email\" name=\"email\">\n" +
" <button>회원가입</button>\n" +
" </form>\n" +
"</body>\n" +
"</html>" ;
resp.getWriter().println(html);
}
}
JoinFormServlet 에 HTML 코드를 입력했다.
<form action="/join" method="post">
HTML의
<form>
요소는 사용자로부터 정보를 입력받거나 서버로 데이터를 전송하기 위한 양식이다. post 라고 표기하면 사용자가 입력한 데이터가 /join 페이지로 연결되면서 DB 에 Input 된다.3. (”/join) 만들기
클라이언트가 /join-form 페이지에서 데이터를 입력하고 회원가입을 누르면
/join 페이지가 열린다.
원래라면 /join 가 호출되면 DB 와 연결이 되고, DAO 와 DB가 상호작용을 해서 응답을 받는 과정을 거친다. 하지만 지금은 유효성 검사와 파싱 과정만 한다.
@WebServlet("/join")
public class JoinServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setHeader("Content-Type","text/html; charset=utf-8"); //데이터의 타입 지정
// 1. 파싱
String username = req.getParameter("username"); //버퍼에 있는 값을 스플릿 해서 키 값을찾아줌
String password = req.getParameter("password");
String email = req.getParameter("email");
// 2. 유효성 검사
if(username.length() <3 || username.length() >10){
resp.getWriter().println("<h1>username 글자수가 3~10 사이여야 합니다.");
}
}
}

회원가입 페이지에 데이터를 입력하고 회원가입을 누른다.

회원가입을 누르면 /join 페이지로 넘어간다
만약 아이디를 3자리 미만이나, 10자리를 초과하게 되면 유효성 검사 조건 페이지가 뜬다.

Share article