브라우저에서 요청에 대해 서블릿에서 로직 처리 후 다시 브라우저로 되돌리는 과정을 서블릿 response 객체에서 담당한다.

이때, 브라우저에 어떤 타입으로 리턴할 것인가를 지정하는데 이것을 MIME-TYPE 이라고 한다.

바로 전 예제와 같이 아이디와 패스워드를 받아 사용자가 입력한 정보를 출력해주는 서블릿을 작성해보자.


LoginServlet2

package sec02.ex01;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
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 LoginServlet2
 */
@WebServlet("/login2")
public class LoginServlet2 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see Servlet#init(ServletConfig)
     */
    public void init(ServletConfig config) throws ServletException {
        System.out.println("init 메서드 호출");
    }

    /**
     * @see Servlet#destroy()
     */
    public void destroy() {
        System.out.println("distory 메서드 호출");
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("요청 성공.");

        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");

        String data = "<html>";
        data += "<body>";
        data += "아이디 : " + id;
        data += "<br>";
        data += "패스워드:" + pw;
        data += "</body>";
        data += "</html>";

        out.print(data);

    }

}

  • Response객체의 getWriter 메서드를 사용해 브라우저에 결과 값을 돌려준다.
  • 직접 html 코딩을 해서 굉장히 불편해보인다.

login2.html - 자바스크립트로 서블릿 요청

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인창</title>

<script>
    function fn_vaildate() {
        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 = 'login5';
            frmLogin.submit();
        }
    }

</script>

</head>
<body>
  <form name="frmLogin" method="get" action="login"  encType="UTF-8">
       아이디  :<input type="text" name="user_id"><br>
       비밀번호:<input type="password" name="user_pw" ><br>
       <input type="button" value="로그인" onClick="fn_vaildate()" />  
       <input type="reset" value="다시입력" />
       <input type="hidden" name="user_address" value="서울시 성북구" /> 
  </form>
</body>
</html>
  • html 태그의 form Submit이 아닌 자바스크립트로 유효성 체크 후 서버로 전송.

LoginServlet5

package sec03.ex03;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
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 LoginServlet5
 */
@WebServlet("/login5")
public class LoginServlet5 extends HttpServlet {

    @Override
    public void init(ServletConfig config) throws ServletException {
    }

    @Override
    public void destroy() {
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    @Override
    protected void doPost(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");
        String adress = request.getParameter("user_address");

        System.out.println("아이디:" + id);
        System.out.println("비밀번호:" + pw);

        String data = new String("");
        data += "<html>";
        data += "<body>";
        data += "아이디:" + id + "<br>";
        data += "패스워드:" + pw + "<br>";
        data += "주소:" + adress;
        data += "</body>";
        data += "</html>";

        out.print(data);

    }

}
  • html 태그 노가다

출처: 자바 웹을 다루는 기술

'프로그래밍 > 자바 웹 프로그래밍' 카테고리의 다른 글

서블릿 리다이렉트 와 바인딩  (0) 2019.12.26
서블릿과 DB 연동  (2) 2019.12.19
서블릿 기초 실습  (0) 2019.12.14
서블릿  (0) 2019.12.14
웹 애플리케이션 구동하기  (0) 2019.12.11
블로그 이미지

파니동

,