RequestTest01.jsp / RequestTest01.java

조수경·2021년 12월 6일
0

고급자바

목록 보기
88/97

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>");
		
	}

}
profile
신입 개발자 입니다!!!

0개의 댓글

관련 채용 정보