728x90
<form> 태그로 전송된 데이터를 받아 오는 메서드
메서드 | 기능 |
String getParameter(String name) | name의 값을 알고 있을 때 그리고 name에 대한 전송된 값을 받아오는 데 사용 |
String[ ] getParameterValues(String name) | 같은 name에 대해 여러 개의 값을 얻을 때 사용 |
Enumeration getParameterNames( ) | name 값을 모를 때 사용 |
로그인 창에서 ID와 비밀번호를 단일로 입력 받아 HttpServletRequest로 요청을 처리하는 방법
// login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 창</title>
</head>
<body>
<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="로그인"> <input type="reset" value="다시입력">
</form>
</body>
</html>
// 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;
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/ogin")
public class LoginServlet extends HttpServlet {
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
System.out.println("init 메서드 호출");
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("destroy 메서드 호출");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String user_id = request.getParameter("user_id");
String user_pw = request.getParameter("user_pw");
System.out.println("아이디 : " + user_id);
System.out.println("비밀번호 : " + user_pw);
}
}
html과 servlet 코드를 작성한 후 브라우저에서 login.html을 요청한 후 텍스트 박스에 ID와 비밀번호를 입력하고 로그인을 클릭하면 서블릿이 ID와 비밀번호를 이클립스 콘솔에 출력한다.
웹 브라우저에 아무것도 출력되지 않는 이유는 서블릿이 처리한 후 응답 기능을 아직 구현하지 않았기 때문이다.
하나의 name으로 여러 값을 서블릿으로 요청을 처리하는 방법
// input.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>여러 가지 input 타입 표시 창</title>
</head>
<body>
<form name="frmInput" method="get" action="input">
아이디 : <input type="text" name="user_id"><br>
비밀번호 : <input type="password" name="user_pw"><br>
<input type="checkbox" name="subject" value="java" checked>자바
<input type="checkbox" name="subject" value="C언어">C언어
<input type="checkbox" name="subject" value="JSP">JSP
<input type="checkbox" name="subject" value="안드로이드">안드로이드
<br><br>
<input type="submit" value="전송"> <input type="reset" value="초기화">
</form>
</body>
</html>
// InputServlet.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;
/**
* Servlet implementation class InputServlet
*/
@WebServlet("/input")
public class InputServlet extends HttpServlet {
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
System.out.println("init 메서드 호출");
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("destroy 메서드 호출");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String user_id = request.getParameter("user_id");
String user_pw = request.getParameter("user_pw");
System.out.println("아이디 : " + user_id);
System.out.println("비밀번호 : " + user_pw);
String[] subject = request.getParameterValues("subject");
for (String str : subject)
System.out.println("선택한 과목:" + str);
}
}
전송된 데이터가 많아 일일이 name의 값을 기억하기 힘들 때 getParameterNames( ) 메서드를 이용한 요청 처리 방법
// input.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>여러 가지 input 타입 표시 창</title>
</head>
<body>
<form name="frmInput" method="get" action="input2">
아이디 : <input type="text" name="user_id"><br>
비밀번호 : <input type="password" name="user_pw"><br>
<input type="checkbox" name="subject" value="java" checked>자바
<input type="checkbox" name="subject" value="C언어">C언어
<input type="checkbox" name="subject" value="JSP">JSP
<input type="checkbox" name="subject" value="안드로이드">안드로이드
<br><br>
<input type="submit" value="전송"> <input type="reset" value="초기화">
</form>
</body>
</html>
// InputServlet2.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;
import java.util.*;
/**
* Servlet implementation class InputServlet2
*/
@WebServlet("/input2")
public class InputServlet2 extends HttpServlet {
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
System.out.println("init 메서드 호출");
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("destroy 메서드 호출");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
Enumeration enu = request.getParameterNames();
while (enu.hasMoreElements()) {
String name = (String)enu.nextElement();
String[ ] values = request.getParameterValues(name);
for (String value : values)
System.out.println("name=" + name + ",value=" + value);
}
}
}
728x90
'웹 개발 기초 > 자바 웹을 다루는 기술' 카테고리의 다른 글
웹 브라우저에서 서블릿으로 데이터 전송하기 (0) | 2023.02.15 |
---|---|
서블릿의 응답 처리 방법 (0) | 2023.02.15 |
<form> 태그를 이용해 서블릿에 요청하는 과정 (0) | 2023.02.15 |
서블릿 응답과 요청 수행 API 기능 (0) | 2023.02.15 |
JDBC 정의와 등장배경 (0) | 2023.02.14 |