html 문서와 html 문서 내의 fn_validate()
를 자바스크립트를 작성하고 http://localhost:8080/pro07/login.html
로 접속한 후, 양식을 입력하면 http://localhost:8080/pro07/login4
에 결과값이 나온다.
form
내의 method
를 post
로 하면 loginServlet.java 내의 doPost()
에 요청을 하고, method
를
get
으로 하면 doGet()
에 요청하게 된다. doPost()
와 doGet()
은 모두 doHandle()
를 요청한다.
WebContent/login.html
<form name="frmLogin" method="post" action="login" encType="UTF-8">
아이디 :<input type="text" name="user_id"><br>
비밀번호:<input type="password" name="user_pw"><br>
<input type="button" onClick="fn_validate()" value="로그인">
<input type="reset" value="다시입력">
<input type="hidden" name="user_address" value="서울시 성북구" />
</form>
WebContent/login.html 내의 javascript
function fn_validate() {
var frmLogin = document.frmLogin;
var user_id = frmLogin.user_id.value;
var user_pw = frmLogin.user_pw.value;
if (
(user_id.length == 0 || user_id == "") ||
(user_pw.length == 0 || user_pw =="")
) {
alert("아이디와 비밀번호는 필수입니다.");
} else {
frmLogin.method = "post";
frmLogin.action = "login4";
frmLogin.submit();
}
}
loginServlet.java
package sec01.ex03;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/login4")
public class loginServlet extends HttpServlet {
public void init(){
System.out.println("init 메서드 호출");
}
protected void doGet(
HttpServletRequest request,
HttpServletResponse response
) throws ServletException, IOException {
System.out.println("doGet 메서드 호출");
doHandle(request, response);
}
protected void doPost(
HttpServletRequest request,
HttpServletResponse response
) throws ServletException, IOException {
System.out.println("doPost 메서드 호출");
doHandle(request, response);
}
// doGet(), doPost() 모두 doHandle()로 처리
private void doHandle(
HttpServletRequest request,
HttpServletResponse response
) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String id = request.getParameter("user_id");
String pw = request.getParameter("user_pw");
System.out.println("아이디 : "+ id);
System.out.println("패스워드 : "+ pw);
if (id!= null && (id.length() != 0)) {
out.print("<html>");
out.print("<body>");
out.print( id +" 님!! 로그인 하셨습니다." );
out.print("</html>");
out.print("</body>");
} else {
out.print("<html>");
out.print("<body>");
out.print("아이디를 입력하세요!!!" ) ;
out.print("<br>");
out.print("<a href='http://localhost:8080/pro07/login.html'>로그인창으로 이동</a>");
out.print("</html>");
out.print("</body>");
}
}
public void destroy() {
System.out.println("destroy 메서드 호출");
}
}
Tomcat의 server.xml에 추가
<Context docBase="ServletFormTest" path="/ServletFormTest" reloadable="true" source="org.eclipse.jst.jee.server:ServletFormTest"/>
위 작성글은 [자바 웹을 다루는 기술]에서 간단히 정리한 것입니다.