본문 바로가기

JSP,Servlet

Servlet-Table 생성 실습 Get/Post

실습 - 테이블 생성

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
   <!-- http://~~~/Servlet/MakeTable?room=생성할방 -->
   <form action="MakeTable">
      몇개의 방을 만들까요?<input type="text" name="room"> <input
         type="submit" value="생성">
   </form>


</body>
</html>

HTML파일 코드

package com.smhrd.servlet1231;

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("/MakeTable")
public class Ex06MakeTable extends HttpServlet {
   private static final long serialVersionUID = 1L;


   protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      
      response.setContentType("text/html; charset=utf-8");
      PrintWriter out = response.getWriter();
      
      // 사용자가 입력한 숫자를 변수에 저장
      int room = Integer.parseInt(request.getParameter("room"));
      
      out.print("<html>");
      out.print("<html><head><title>방 생성 결과</title></head>");
      out.print("<body>");
      out.print("<table border = 1px>");
      out.print("<tr>");
      for(int i=1; i<=room; i++) {
         out.print("<td>"+i+"</td>");
      }
      
      out.print("</tr>");
      out.print("</table>");
      out.print("</body>");
      out.print("</html>");
      
      
      
      
   }

}

Java 파일의 호출한 Library

 

Table을 활용하여 입력받은 숫자만큼 <td>태그 생성

 

 

위 코드를 실행해보면 아래처럼 출력된다


Get 방식과 Post 방식의 차이점

Get방식의 특징

-URL주소를 통해서 데이터 전달

-?name=value 형식 : QueryString(쿼리스트링)

 

Post방식의 특징

-HTTP 구조에 데이터를 담아서 전달 -> URL에 표출되지 않는다

 

한 번만 봐서는 절대 이해가 안되는 부분 ㅠㅠㅠ

Servlet을 만들때 

-doPost / doGet 선택할 수 있음!!

 

-Get 과 Post가 하는건 Service도 할 수 있다

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex07getPost</title>
</head>
<body>
   <h1>Get방식으로 데이터 전송</h1>
   
   <form action="GetPost" method="get">
      ID: <input type="text" name="user-id">
      PW: <input type="password" name="user-pw">
      <input type="submit" value="전송">
   </form>
   
   <hr>
   <h1>Post방식으로 데이터 전송</h1>
   
   <form action="GetPost" method="post">
      ID: <input type="text" name="user-id">
      PW: <input type="password" name="user-pw">
      <input type="submit" value="전송">
   </form>
   
</body>
</html>

HTML 파일 코드

 

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/GetPost")
public class Ex07GetPost extends HttpServlet {
   private static final long serialVersionUID = 1L;
     
   @Override
      protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      
      //POST방식일 때 한글깨짐방지
      //데이터를 request객체로부터 가져오기전에 설정!!!
      req.setCharacterEncoding("UTF-8");
      
      System.out.println("요청이들어옴..!");
      
      String id = req.getParameter("user-id");
      String pw = req.getParameter("user-pw");
      
      System.out.println("아이디:" +id+"\t"+"비밀번호:"+pw);
      
      
   }
   
   //Get방식일 때 호출
   //protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      //System.out.println("Get방식으로 실행..!");
      
   //}
   //Post방식일때 호출
   //protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      //System.out.println("Post방식으로 실행..!");
      
   //}

}

Java 파일의 호출한 Library

 

위의 코드로 실습 진행하면 아래처럼 나타남