프로그래밍/JAVA WEB

서블릿에서 클라이언트의 요청을 얻는 방법!

삐제제 2021. 1. 3. 10:35

서블릿에서 클라이언트의 요청을 서버로 얻어오는 방법은

 

<form> 태그로 전송된 데이터를 받아오는것이다!

 

HTML에서 다음과 같은 form 태그가 있다.

 

<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="submit" value="로그인">
</form>

각각 아이디와 비밀번호를 input 태그로 입력받고, 각각의 태그 name 은 user_id 와 user_pw 이다.

 

그리고 이것들이 전송될때는 name 속성의 값 (user_id) 과 input태그에 입력한 값 (value) 가 쌍으로 전송된다.

 

만약 아이디에 hello 를 입력했다면 이것은

 

user_id : hello 

 

이런식으로 전송된다는 것이다!

 

그리고 서블릿에서는 이렇게 전송된 데이터를 HttpServletRequest 클래스의 getParameter() 메서드를 사용하여 받아올 수 있다.

 

다음은 form 태그로 전송된 데이터를 받아오는 메서드의 종류이다.

 

메서드 기능
String getParameter (String name) name의 값을 알고 있을 때 그리고 name에 대한 전송된 값을 받아오는데 사용
String[] getParameterValues (String name) 같은 name에 대해 여러 개의 값을 얻을 때 사용
Enumeration getParameterNames() name 값을 모를때 사용

 

이런 메서드들을 이용하여, 서블릿에서는 사용자가 form 태그에 입력한 값들을 가져올 수 있다.

 

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException 
{
    request.setCharacterEncoding("UTF-8");
    String user_id = request.getParameter("user_id"); // form 태그의 name 중 user_id가 가진 value를 String 타입으로 가져온다!
    String user_pw = request.getParameter("user_pw"); // form 태그의 name 중 user_pw가 가진 value를 String 타입으로 가져온다!
}

 

요런식으로 form 태그 안의 input 태그에서 입력한 값들을 가져올 수 있다!

 

그러면 위 코드의 변수 user_id 와 user_pw 에 저장되는 값은

 

각각 HTML에서 입력한 아이디와 비밀번호가 저장될 것이다!