티스토리 뷰

I ♥ Servlet

서블릿(Servlet)이란??

자바 서블릿이란 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램(클래스)를 말한다.

즉, 웹용 자바! 라고 볼 수 있겠다.

서블릿를 쓰려면 JSP 또한 알고 넘어가야하는데,

JSP는 서블릿을 쓰기 좋게 포장한 것이라 볼 수 있다.

JSP는 HTML 안의 Java, Servlet은 Java 안의 HTML 이라고 알아두자!!(일단은)

 

 

이클립스에서 Servlet 생성하기!!

 

생성은 dynamic web프로젝트- Java Resources- src에서 관리한다.

Dynamic web-Java Resources-src

 

▷  src에 패키지를 생성하고 내부에 Servlet을 생성한다.

 

▷ Servlet 파일 이름 설정

 

 

▷ URL Mappings를 설정한다. (/이름)

▷ 메서드 선택

▷ 메소드 설명

Servlet 생명주기

init() : 최조 호출   ex(한글 인코딩, 초기 선언)

  Servlet(이름.java) > 객체 생성 init()한번 호출
  service() : 사용자에 입력을 처리하는 부분

 데이터를 보내는 방식 (GET/POST 방식)

       doget() :

       dopost() : 

destroy() : 서버 종료할 때

 

 

▶ 입력 받기

 

▶ html에서 입력받기 예제

▷ WebContent 내부 HTML 문서

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	IoT3차 열정!열정!열정~! <br>
	<form action="Ex01Datasend">
		<input type="text" name="data">
		<input type="submit" value="전송">
	</form>
</body>
</html>

▷ Servlet 내부

package com.servlet;

import java.io.IOException;
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("/Ex01Datasend")
public class Ex01Datasend extends HttpServlet {

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		String data = request.getParameter("data");
		
		System.out.println(data);
	}
}

 

▷ 입력한 숫자에 따라서 테이블 생성 예제

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<form action="Ex4_maketable2">
		몇 개의 방을 만들까요?<br>
		<input type="text" name="num">
		<input type="submit">
	</form>
</body>
</html>

 

※여기서 URL Mappings를 꼭 확인한다. 틀릴 시 오류 나며 수정 시 서버를 재시작해줘야 한다.

@WebServlet("/Ex4_maketable2")
public class Ex4_maketable2 extends HttpServlet

 

여기가 위아래가 동일하게 되어 있는지 확인한다.

package com.Servlet;

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("/Ex4_maketable2")
public class Ex4_maketable2 extends HttpServlet {

	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		int num = Integer.parseInt(request.getParameter("num"));

		response.setContentType("text/html; charset=utf-8");

		PrintWriter out = response.getWriter();

		out.print("<html>");
		out.print("<body>");
		out.print("<table border=1>");
		out.print("<tr>");
		for (int i = 1; i <= num; i++) {
			out.print("<td>" + i + "</td>");
		}
		out.print("</tr>");
		out.print("</table>");
		out.print("</body>");
		out.print("</html>");

	}

}

 

해당 수업은 '스마트인재개발원'에서 '지능형IoT 융합SW 전문가과정(NCS)과정'에서 진행한 교육내용입니다.

 

 

 

스마트인재개발원

4차산업혁명시대를 선도하는 빅데이터, 인공지능, 사물인터넷 전문 '0원' 취업연계교육기관

www.smhrd.or.kr

 

댓글