RequestTest01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Request 연습 Form</title>
</head>
<body>
<h2>Request 연습 Form</h2><hr>
<form name="testForm" method="post" action="<%=request.getContextPath()%>/requestTest01.do">
<table border="1">
<tr>
<td>이름</td>
<td><input type="text" size="10" name="username"></td>
</tr>
<tr>
<td>직업</td>
<td>
<select name ="job">
<option value="무직">무직</option>
<option value="회사원">회사원</option>
<option value="전문직">전문직</option>
<option value="공무원">공무원</option>
<option value="학생">학생</option>
</select>
</td>
</tr>
<tr>
<td>취미</td>
<td>
<input type="checkbox" name="hobby" value="여행" id="hobby1">
<label for="hobby1">여행</label>
<input type="checkbox" name="hobby" value="게임" id="hobby2">
<label for="hobby1">게임</label>
<input type="checkbox" name="hobby" value="배드민턴" id="hobby3">
<label for="hobby1">배드민턴</label>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center;">
<input type="submit" value="확인">
<input type="reset" value="취소">
</td>
</tr>
</table>
</form>
</body>
</html>
RequestTest01.java - 서블릿임
package kr.or.ddit.basic.reqreusp;
import java.io.IOException;
import java.io.PrintWriter;
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("/requestTest01.do")
public class RequestTest01 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//클라이언트가 보내온 데이터를 가져오기
//POST방식으로 전송되어 온 데이터의 인코딩 방식 설정
request.setCharacterEncoding("utf-8");
//request.getParameter("파라미터명");
//=> 해당 '파라미터명'에 설정된 '값'을 문자열로 가져온다.
//http://localhost/servletTest/서블릿URL패턴?파라미터명=값&파라미터명=값
String userName = request.getParameter("username");
String job = request.getParameter("job");
//request.getParameterValues("파라미터명");
// =>파라미터명이 같은 것이 여러개일 경우에 사용한다.
// => 가져온 '값'의 자료형은 'String[]'이다.
String hobbies[] = request.getParameterValues("hobby");
//클라이언트에게 전송하기
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<html><head><meta charset='utf-8'>");
out.println("<title>Request객체로 전송값 구하기</title></head>");
out.println("<body>");
out.println("<h2>클라이언트가 보내온 값</h2>");
out.println("<table border='1'>");
out.println("<tr><td>이름</td>");
out.println("<td>"+userName+"</td></tr>");
out.println("<tr><td>직업</td>");
out.println("<td>"+job+"</td></tr>");
out.println("<tr><td>취미</td>");
out.println("<td>");
if(hobbies!=null) {
//배열 크기만큼 반복 처리
for(int i=0; i<hobbies.length; i++) {
out.println(hobbies[i]+"<br>");
}
out.println("<br>");
//향상된 for문
for(String h : hobbies) {
out.println(h+"<br>");
}
}else {
out.println("취미가 하나도 없습니다.");
}
out.print("</td></tr>");
out.println("</table>");
out.println("<hr>");
out.println("<h2>requset객체의 메서드</h2>");
out.println("<ul>");
out.println("<li>클라이언트의 IP 주소 : "+request.getRemoteAddr()+"</li>");
out.println("<li>요청 메서드 : "+request.getMethod()+"</li>");
out.println("<li>Context Path : "+request.getContextPath()+"</li>");
out.println("<li>프로토콜 : "+request.getProtocol()+"</li>");
out.println("<li>URL 정보 : "+request.getRequestURL()+"</li>");
out.println("<li>URI 정보 : "+request.getRequestURI()+"</li>");
out.println("</ul>");
out.println("</body></html>");
}
}