[ Servlet ] 서블릿 기초(3)
(수정: -)
⚠️ 개요
해당 글은 작성자가 공부한 내용을 정리한 글입니다.
1. [servlet] 서블릿 이란? (글보기)
2. [servlet] 서블릿 기초
- (1)세 가지 기본 기능
- (2)<form> 태그 이용해 서블릿에 요청
- (3)서블릿에서 클라이언트의 요청을 얻는 방법
- (4)서블릿의 응답 처리 방법
- (5)웹 브라우저에서 서블릿으로 데이터 전송하기
- (6)GET 방식과 POST 방식 요청 동시에 처리하기
- (7)자바스크립트로 서블릿에 요청하기
📕 서블릿 기초
톰캣과 같은 WAS가 처음 나왔을 때 웹 브라우저 요청을 스레드 방식으로 처리하는 기술이 바로 서블릿이었습니다.
서블릿 기초 글은 웹 프로그래밍의 뼈대를 배우는 내용입니다. 해당 글들을 모두 이해하면 전체 웹 프로그램이 어떤 식으로 동작하는지 쉽게 이해할 수 있습니다.
✅ 서블릿에서 클라이언트의 요청을 얻는 방법
HttpServletRequest 클래스에서 <form> 태그로 전송된 데이터를 받아 오는데 사용하는 메서드로는 다음과 같습니다.
메서드 | 기능 |
String getParameter(String name) | name의 값을 알고 있을 때 그리고 name에 대한 전송된 값을 받아오는데 사용합니다. |
String[] getParameter(String name) | 같은 name에 대해 여러 개의 값을 얻을 떄 사용합니다. |
Enumeration getParameterNames() | name 값을 모를 때 사용합니다. |
이 중에서 가장 많이 사용하는 것이 getParameter() 메서드입니다. 만약 같은 name으로 여러 개의 값이 전송되었을 떄는 배열 형태로 값을 반환하는 getParameterValues() 메서드를 사용합니다.
📖 HttpServletRequest로 요청 처리 예제
<form> 태그로 전송된 정보를 서블릿에서 받아 와서 출력하는 과정의 예제입니다.
로그인창에서 ID와 비밀번호를 입력 받아 HttpServletRequest로 처리하는 간단한 예제입니다.
다음은 login.html 파일에 작성된 코드입니다. 로그인창에서 ID와 PW를 입력 받을 후 서블릿으로 전송하는 코드입니다.
/* 최신 버전에서는 WebContent 파일 위치가 아래와 같이 변경되었습니다. */
/* 프로젝트/src/main/webapp/login.html */
<!DOCTYEP>
<html>
<head>
<meta charset="UTF-8">
<title>로그인창</title>
</head>
<body>
<form name="formLogin" method="get" action="login" encType="UTF-8">
ID : <input type="text" name="user_id"><br>
PW : <input type="text" name="user_pw"><br>
<input type="submit" value="로그인">
<input type="reset" value="다시입력">
</form>
</dody>
</html>
<form> 태그에서 action="login"의 매핑된 login이름의 서블릿으로 전송합니다.
텍스트 박스에 입력된 ID와 PW를 user_id, user_pw로 값을 전송합니다.
매핑된 이름은 무엇이고, 값은 어디로 전송되는지 다음 코드를 보며 알아보겠습니다.
/* 프로젝트/src/sec1/ex1/LoginServlet.java */
package sec01.ex01;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
System.out.println("init 메서드 호출");
}
public void destroy() {
// TODO Auto-generated method stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8"); //전송된 데이터를 UTF-8로 인코딩합니다.
//getParameter()를 이용해 <input>태그의 name 속성 값으로 전송된 value을 받아 옵니다.
String user_id = request.getParameter("user_id");
String user_pw = request.getParameter("user_pw");
System.out.println("ID:" + user_id);
System.out.println("PW:" + user_pw);
}
}
좀 더 자세한 경로는 아래 사진을 확인해주세요.
위와 같은 경로에서 login.html과 LoginServlet.java를 작성한 후 톰캣으로 실행합니다.
위와 같은 경로로 들어가면 ID와 PW를 입력할 수 있는 페이지가 나옵니다.
ID와 PW를 입력하면 GADS와 1234라는 값이 LoginServlet.java에 매핑된 이름과 동일한 곳으로 전달되며 HttpServletRequest클래스의 getParameter() 메서드로 전송된 ID와 PW를 받아옵니다.
'《 IT 》 > JSP + Servlet' 카테고리의 다른 글
[JSP] doGet(), doPost() 정리 (2) | 2023.11.28 |
---|---|
[Servlet] 서블릿이란? (1) | 2023.11.27 |
[Servlet] 서블릿 기초(2) (2) | 2023.11.26 |
[Servlet] 서블릿 기초(1) (58) | 2023.11.25 |