[Servlet] 데이터 전달 방식 – GET, POST

므이이잉·2021년 10월 10일

servlet/jsp

목록 보기
2/6

1. GET, POST

  • GET : URL값으로 정보 전송 (Form태그 method 속성값 = "get")
  • POST : header를 이용해 정보가 전송된다. (Form태크 method 속성값 = "POST")

2. 데이터 전달 방식 – [GET] query

  • /(절대경로명)/(폴더명)/hello?key=value&key=value
  • 페이지 연결이 주 목적
  • get 방식의 문제 ① 보안상의 문제 ② 주소 길이의 제약
@WebServlet(name = "loginServlet", urlPatterns="/login")
public class LoginServlet extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
		System.out.println("Login")
		PrintWriter writer = resp.getWriter();
		writer.println("hello servlet");
		writer.println("<html>");
		writer.println("<body>");
		writer.println(<h1>Start Login!</h1>);
		writer.println("</body>");
		writer.println("</html>");
	}

}

3. 데이터 전달 방식 – [POST] HTML Form

  • 데이터 전달이 주 목적
  • Object인 경우 get이 아니라 post로 전달해야함
  • get 방식의 문제 ① 보안상의 문제 ② 주소 길이의 제약

[ Login.html ]

<form action="Example/login" method="post">  
이름 : <input type="text" name="username"/><br/><br/>  
비밀번호 : <input type="password" name="userpass"/><br/><br/>  
<input type="submit" value="login"/>  
</form>  

[ Login.java ]

@WebServlet(name = "loginServlet", urlPatterns="/login")
public class LoginServlet extends HttpServlet{

	@Override
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("doPost()");

		String id = req.getParameter("id");
		String password = req.getParameter("password");
	}
}

1) html과 servlet 연결

  • html form태그에서 action을 지정해줌.
    이때, servlet의 urlPatterns를 action으로 작성

2) req.getParameter("userpass");

  • html에서 입력받은 값을 가지고온다.
  • 파라미터 : html페이지에서 < input type="text" name="userpass" > 에서 name 기준으로 값을 가지고 옴

3) 받아온 값 넘기기

  • 새로운 html 작성 시 생성한 변수를 그대로 작성하면 새로운 화면에서 사용 가능
profile
이젠 DBA가 되어보자

0개의 댓글