컴퓨터/웹 프로그래밍

[jsp] form 데이터 처리

수제녹차 2019. 12. 20. 08:43
728x90
반응형

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

 

반응형