// Servlet Parameter
- HTML form 태그의 submit 버튼을 클릭하여 데이터를 서버로 전송하면, Servlet에서는 HttpServletRequest 객체를 이용하여 전송된 데이터(Parameter)를 얻을 수 있다.
// doPost
- 데이터를 url에 붙일 필요 없이 전송할 수 있다.
~ 결과 주소 : http://localhost:8090/Servlet_parameter/formpost
- HttpServletRequest 객체의 setCharacterEncoding() 메서드를 활용하여 한글 인코딩을 해주어야 한다.
req.setCharacterEncoding("UTF-8");
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="formpost" method="post">
이름 : <input type="text" name="name"><br>
아이디 : <input type="text" name="id"><br>
비밀번호 : <input type="password" name="pw"><br>
취미 :
<input type="checkbox" name="hobby" value="read">독서
<input type="checkbox" name="hobby" value="cook">요리
<input type="checkbox" name="hobby" value="walk">산책
<input type="checkbox" name="hobby" value="swim">수영
<input type="checkbox" name="hobby" value="listen">음악 감상
<br>
좋아하는 과목 :
<input type="radio" name="subject" value="kor">국어
<input type="radio" name="subject" value="eng">영어
<input type="radio" name="subject" value="math">수학
<br>
<select name="protocol">
<option value="http">http</option>
<option value="ftp">ftp</option>
<option value="smtp">smtp</option>
</select>
<br>
<input type="submit" value="제출">
</form>
</body>
</html>
package com.servlet.ex;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
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("/formpost")
public class FormPost extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html; charset=EUC-KR");
req.setCharacterEncoding("UTF-8");
String name = req.getParameter("name");
String id = req.getParameter("id");
String pw = req.getParameter("pw");
String[] hobbies = req.getParameterValues("hobby");
String subject = req.getParameter("subject");
String protocol = req.getParameter("protocol");
PrintWriter writer = resp.getWriter();
writer.println("<html><head></head><body>");
writer.println("이름 : " + name + "<br>");
writer.println("아이디 : " + id + "<br>");
writer.println("비밀번호 :" + pw + "<br>");
writer.println("취미 : " + Arrays.toString(hobbies) + "<br>");
writer.println("좋아하는 과목 : " + subject + "<br>");
writer.println("프로토콜 : " + protocol + "<br>");
writer.println("</body><html>");
}
}
// doGet()
- URL에 쿼리 스트링을 추가하여 데이터를 전송한다.
~ 결과 주소 : http://localhost:8090/Servlet_parameter/formget?name=%EB%82%98%EB%AC%B4&id=sorrel012&pw=1234&hobby=walk&hobby=listen&subject=eng&protocol=http
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="formget" method=get>
이름 : <input type="text" name="name"><br>
아이디 : <input type="text" name="id"><br>
비밀번호 : <input type="password" name="pw"><br>
취미 :
<input type="checkbox" name="hobby" value="read">독서
<input type="checkbox" name="hobby" value="cook">요리
<input type="checkbox" name="hobby" value="walk">산책
<input type="checkbox" name="hobby" value="swim">수영
<input type="checkbox" name="hobby" value="listen">음악 감상
<br>
좋아하는 과목 :
<input type="radio" name="subject" value="kor">국어
<input type="radio" name="subject" value="eng">영어
<input type="radio" name="subject" value="math">수학
<br>
<select name="protocol">
<option value="http">http</option>
<option value="ftp">ftp</option>
<option value="smtp">smtp</option>
</select>
<br>
<input type="submit" value="제출">
</form>
</body>
</html>
package com.servlet.ex;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
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("/formget")
public class FormGet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html; charset=UTF-8");
PrintWriter writer = resp.getWriter();
String name = req.getParameter("name");
String id = req.getParameter("id");
String pw = req.getParameter("pw");
String[] hobbies = req.getParameterValues("hobby");
String subject = req.getParameter("subject");
String protocol = req.getParameter("protocol");
writer.println("<html><head></head><body>");
writer.println("이름 : " + name + "<br>");
writer.println("아이디 : " + id + "<br>");
writer.println("비밀번호 :" + pw + "<br>");
writer.println("취미 : " + Arrays.toString(hobbies) + "<br>");
writer.println("좋아하는 과목 : " + subject + "<br>");
writer.println("프로토콜 : " + protocol + "<br>");
writer.println("</body><html>");
}
}
'서버 > Servlet-JSP' 카테고리의 다른 글
JSP 구성 요소 - JSP 지시자 (0) | 2023.01.01 |
---|---|
JSP 구성 요소 - 스크립트 (0) | 2023.01.01 |
Servlet 생명주기 (0) | 2022.12.29 |
Servlet-JSP GET 방식, POST 방식 (0) | 2022.12.25 |
이클립스로 Servlet 프로그래밍 시작 (0) | 2022.12.24 |