화면에서 백단 쿼리로 파라미터 넘기기 — JSP & Servlet 실습
웹 개발의 핵심은 ‘화면과 서버의 소통’입니다.
사용자가 입력한 데이터를 JSP 화면에서 서버(백엔드)로 안전하게 전달하고, 그 값을 DB 쿼리로 처리하는 과정이 바로 웹 애플리케이션의 본질이죠.
이번 글에서는 초보 개발자도 쉽게 이해할 수 있도록 Form 태그로 파라미터를 전달하고, Servlet에서 받는 전체 흐름을 예시와 함께 단계별로 정리했습니다.

1. JSP에서 데이터 입력하기 — form 태그의 기본
사용자가 화면에서 데이터를 입력하면, 그 값은 <form> 태그를 통해 서버로 전달됩니다.
기본 구조는 다음과 같습니다.
<form action="register.do" method="post">
이름: <input type="text" name="userName"><br>
이메일: <input type="email" name="userEmail"><br>
<input type="submit" value="등록">
</form>
💡 설명:
- action: 데이터를 받을 서버 주소(서블릿 URL)
- method: 전달 방식 (GET or POST)
- name 속성: 서버에서 값을 식별할 키
이 폼에서 사용자가 이름과 이메일을 입력하고 ‘등록’ 버튼을 누르면, 데이터는 HTTP 요청 형태로 서버에 전송됩니다.
2. Servlet에서 파라미터 받기
서버에서는 JSP에서 넘어온 값을 HttpServletRequest 객체를 통해 받습니다.
즉, JSP의 name 속성과 동일한 키를 사용해 값을 꺼낼 수 있습니다.
@WebServlet("/register.do")
public class RegisterServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String userName = request.getParameter("userName");
String userEmail = request.getParameter("userEmail");
System.out.println("이름: " + userName);
System.out.println("이메일: " + userEmail);
}
}
💡 중요 포인트:
1) request.getParameter()는 JSP의 name 속성 이름과 동일해야 합니다.
2) 한글 데이터는 request.setCharacterEncoding("UTF-8")으로 인코딩 설정을 해줘야 깨지지 않습니다.
3. JSP → Servlet → DB 쿼리 연동 흐름
입력값을 받은 후, 백엔드에서는 DAO(Data Access Object)를 통해 DB와 연결합니다.
예시로 회원 등록 로직을 간단히 살펴볼까요?
// DAO.java
public void insertUser(String name, String email) {
String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
try (Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, name);
pstmt.setString(2, email);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
💡 흐름 요약:
1) JSP에서 form 입력 → 2) Servlet이 request로 파라미터 받음 → 3) DAO에서 쿼리 실행
이렇게 데이터가 **화면 → 서버 → DB** 순서로 이동하게 됩니다.
4. GET과 POST의 차이
GET 방식은 주소(URL)에 파라미터가 노출됩니다.
예: register.do?userName=홍길동&userEmail=test@test.com
반면 POST는 요청 본문(Body)에 데이터가 담기므로 보안성이 더 높습니다.
로그인, 회원가입, 결제 등 중요한 데이터는 반드시 POST를 사용해야 합니다.
5. 디버깅 팁 — 콘솔 확인하기
초보자들이 자주 겪는 실수 중 하나는 폼의 name 속성과 getParameter() 키가 다를 때입니다.
이럴 땐 서버 콘솔에 출력 로그를 찍어보세요.
System.out.println("전달된 이름: " + request.getParameter("userName"));
값이 null로 찍힌다면, JSP의 name이 일치하지 않은 것입니다.
또한 서버 로그가 아예 찍히지 않는다면, action 경로나 servlet 매핑 URL을 다시 확인하세요.

마무리
JSP와 Servlet의 관계는 마치 대화하는 두 사람과 같습니다.
화면(JSP)은 사용자의 입력을 전달하고, 서버(Servlet)는 그 정보를 받아 처리한 뒤 결과를 다시 화면에 돌려줍니다.
이 흐름을 정확히 이해하면 MVC 구조, Spring Framework, REST API 설계로 자연스럽게 확장됩니다.
지금 배운 ‘파라미터 전달의 원리’가 바로 그 출발점입니다.
'개발자 기초 & 실무' 카테고리의 다른 글
| 크롬 개발자도구(DevTools) 완전 활용법 — 네트워크, 콘솔, 디버거까지 실무 가이드 (0) | 2025.11.14 |
|---|---|
| 콘솔 로그로 디버깅하기 — println에서 logback까지 실무 가이드 (0) | 2025.11.13 |
| 예외처리(try-catch-finally) 제대로 이해하기 — 실전 에러 대응법 (1) | 2025.11.11 |
| Git 시작하기 — Push, Pull, Merge 충돌 해결까지 초보자를 위한 3단계 (0) | 2025.11.09 |
| 가장 흔한 자바 에러 10가지, 초보자도 쉽게 해결하는 디버깅 가이드 (0) | 2025.11.08 |