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
'백엔드 > 웹개발' 카테고리의 다른 글
[이클립스/웹개발] 서블릿 활용 - 환율 계산기 만들기 (0) | 2022.02.18 |
---|---|
[이클립스/웹개발] 서블릿 응답 처리 (0) | 2022.02.18 |
[이클립스/웹개발] 애너테이션을 이용한 서블릿 매핑 (0) | 2022.02.18 |
[웹개발] 서블릿이란? (0) | 2022.02.18 |
[이클립스] 다수의 서블릿 매핑 (0) | 2022.02.18 |