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