02
18
728x90

하나의 name으로 여러 값을 서블릿으로 요청하는 방법


1. New -> HTML File

2. 파일 이름 작성 후 Finish

3. New -> Servlet

4. Class name 작성 후 Next

5. input이라는 이름으로 매핑해줌

6. 통신방법으로 get을 사용할 것이기 때문에 아래와 같이 체크 후 Finish

7. input.html을 열고 내용을 아래와 같이 작성

method = 통신방법 선택 (get 또는 post)

action = 서블릿, JSP (매핑이름입력)

 

<!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>
8. InputServlet.java 파일을 열어서 아래와 같이 코드 작성

package sec01.ex01;

import java.io.IOException;

import jakarta.servlet.Servlet;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/input")
public class InputServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public void init(ServletConfig config) throws ServletException {
		System.out.println("init 메서드 호출");
	}

	public void destroy() {
		System.out.println("destroy 메서드 호출");
	}

	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);
		}
	}
}
9. 서버를 구동시켜줌

10. 웹 홈페이지 주소창에 IP주소:포트번호/프로젝트이름/매핑이름 후 엔터
아래의 내용 작성 후 전송 클릭

11. 위에서 전송한 내용이 이클립스 콘솔창에서 출력되는것을 확인할 수 있다.


getParameterNames() 메서드 사용

1. 패키지에 InputServlet2 클래스 생성

2. 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>
3. InputServlet2 클래스를 아래와 같이 작성

package sec01.ex01;

import java.io.IOException;
import java.util.Enumeration;

import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/input2")
public class InputServlet2 extends HttpServlet {

	public void init(ServletConfig config) throws ServletException {
		System.out.println("init 메서드 호출");
	}

	public void destroy() {
		System.out.println("destroy 메서드 호출");
	}

	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);
			}
		}
	}
}
4. 아래와 같이 주소 입력

5. 내용 작성 후 전송

6. 이클립스 콘솔창에 출력된 내용 확인

728x90
COMMENT