ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [jsp] form 데이터 처리
    컴퓨터/웹 프로그래밍 2019. 12. 20. 08:43

    request시 서버는 어떻게 처리해야 할까

    서버가 request를 가공 및 처리하여 사용자에게 응답해주어야 한다

     

    - form 태그

    Browser에서 서버쪽으로 데이터를 보낼 때 네트워크를 통해 서버로 날라간다.

    ->  request 객체에 데이터가 담겨서 웹 컨테이너(웹 어플리케이션 서버)로 간다

    -> 서버는 이를 doGet 혹은 doPost 메서드로 받을 수 있다

     

    - doGet 메서드로 받을 때

    보안에 약하다

    http://도메인:포트번호/contextRoot/~/?key=value&key=value ~ : form에 입력한 데이터가 나열된다, 정보가 노출된다.

    누군가 데이터를 가로챌 수 있다

    또한 text가 나열될 수 있는 한계가 있기 때문에 데이터를 많이 전달하지도 못한다

     

    - doPost 메서드로 받을 때

    프로토콜//도메인 주소/맵핑 정보만 노출

    보안에 강하다

    header 파일 안에 데이터가 암호화되어서 전달된다.

    로그인, 회원가입, 설문조사 등

     

    실습)

    ex) html 일부

    <form action="mSignUp" method="post">
      name : <input type="text" name="m_name"></br>
      gender : Man<input type="radio" name="m_gender"></br>
      <input type="submit" value="sign"
    </form>

    ex) servlet 일부

    @WebServlet("/mSignUp")
    public class MemSignUp extends HttpServlet {
        protected void doGet {
            System.out.println("--doGet()--");
            // request 객체 중에 getParameter (어떠한 값 하나만 뽑아낼 때 사용)
            String m_name = request.getParameter("m_name");
            String m_pass = request.getParameter("m_pass");
            String m_gender = request.getParameter("m_gender");
            // checkbox로 여러 개의 데이터를 선택할 수 있을 때 배열로 정보를 얻어낸다
            String[] m_hobbys = request.getParameterValues("m_hobby");
            String m_residence = request.getParameter("m_residence");
            
            System.out.println("m_hobbys : " + Arrays.toString(m_hobbys));
            
            // m_name, m_pass 등 속성값을 받을 수 있다. (입력한 값 말고)
            Enumeration<String> names = request.getParameterNames();
            while (names.hasMoreElements()){
                String name = (String) names.nextElement();
                System.out.println("name : " + name);
            }
         }
        
        // request 객체 안에 데이터가 담겨 있다.(HTTP HEADER 파일에 암호화되어서)
        protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            System.out.println("--doPost()--")
            // 한쪽으로 코드를 몰아서 사용자가 doGet으로 들어오든 doPost로 들어오든 한쪽에서 코드 관리 가능
            doGet(request, response);
        }
    }

     

    출처 : 실전 jsp, inflearn

     

    '컴퓨터 > 웹 프로그래밍' 카테고리의 다른 글

    chrome 개발자 도구 디버깅  (0) 2020.02.11
    웹앱, viewport, cdn  (0) 2020.01.29
    [jsp] Servlet Life-Cycle  (0) 2019.12.19
    Servlet request, response  (0) 2019.12.19
    servlet mapping  (0) 2019.12.19

    댓글

Designed by Tistory.