-
[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