KIC/JSP

[JSP] Servlet

octopengj 2020. 9. 21. 23:14

서블릿으로 개발

 

장점- JSP에서 서블릿으로 변환과정이 없기 때문에 실행 속도가 빠르다.

단점- 자바의 작성능력이 필요하다.

 

JSP => 모델1 - 중소규모의 사이트

          모델2 - 대규모의 사이트

                  - 스프링

 

 

HelloSerlet 으로 클래스 네임입력

 

*URL mappings

웹상에서 어떻게 요청을하 는지 경로를 지정해주는 것을 말한다.

 

요청에 따른 메서드를 선택

보통의 경우 doGet(), doPost()를 선택

 

이번 학습에서는 init(), destroy()를 추가로 선택하였다.

Constructors from superclass 체크 해제

Finish
생성파일 화면

 

*****서블릿의 조건******

1.import javax.servlet.* //서블릿의 클래스

  import javax.servlet.http.*; // 웹상에서의 접속에 관련된 정보

  import java.io.*; // 입출력

 

  => c:\tomcat8.5\lib->servlet-api.jar 파일에 저장

 

2. 반드시 public class로 작성해야 된다. => 누구나 접속이 가능하게 해주기 위해

3. 반드시 httpServlet클래스를 상속받아야 된다.

 

httpServlet -> 사이트에 접속할때 마다 처리해주는 기능을 가지고 있다.

                             get-------------->do Get()메서드를 사용하기위해서 
                            post-------------->doPost()

 

 

 

--Hello Servlet 출력해보기--

 

import java.io.IOException; //입출력
import java.io.PrintWriter;

import javax.servlet.ServletConfig; //서블릿의 초기환경설정에 대한 클래스
import javax.servlet.ServletException; // 서블릿의 오류발생시 처리

import javax.servlet.annotation.WebServlet; // 웹상에서 어떻게 접근 -> 정보
																	// 실행시키는 서블릿(web.xml)
import javax.servlet.http.HttpServlet; // 상속을 받을 부모클래스
import javax.servlet.http.HttpServletRequest; // 서블릿의 요청
import javax.servlet.http.HttpServletResponse; // 서블릿의 응답

/**
 * Servlet implementation class HelloServlet
 */
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("서블릿 실행시 제일먼저 호출되는 메서드");
		System.out.println("생성자와 같은 역할(서블릿 초기값을 설정할 때 )");
	}

	/**
	 * @see Servlet#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
		System.out.println("서블릿이 종료될 떄 자동호출(메모리 해제)");
	}

	/**
	 * 외부에서 요청을 했을 떄 그 요청에 따라서 요철을 처리해주는 메서드 - request
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("웹상에서 get방식으로 접속할때마다 자동으로 호출");
		response.setContentType("text/html; charset=utf-8"); // 한글처리
		// 상대방에게 데이터를 전송 -> PrintWriter out = new PrintWriter() (x)
		PrintWriter out = response.getWriter(); // 메서드의 반환형
		out.println("<html><head></head>");
		out.println("<body>");
		// 서블릿의 기능을 써주면 된다.
		out.println("<h2>Hello Servlet</h2>");
		out.println("</body>");
		out.println("</html>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("웹상에서 post방식으로 접속할때마다 자동으로 호출");
	}

}

 

출력화면

 

 

 

--구구단 출력해보기--

import java.io.IOException; //입출력
import java.io.PrintWriter;

import javax.servlet.ServletConfig; //서블릿의 초기환경설정에 대한 클래스
import javax.servlet.ServletException; // 서블릿의 오류발생시 처리

import javax.servlet.annotation.WebServlet; // 웹상에서 어떻게 접근 -> 정보
																	// 실행시키는 서블릿(web.xml)
import javax.servlet.http.HttpServlet; // 상속을 받을 부모클래스
import javax.servlet.http.HttpServletRequest; // 서블릿의 요청
import javax.servlet.http.HttpServletResponse; // 서블릿의 응답

/**
 * Servlet implementation class HelloServlet
 */
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("서블릿 실행시 제일먼저 호출되는 메서드");
		System.out.println("생성자와 같은 역할(서블릿 초기값을 설정할 때 )");
	}

	/**
	 * @see Servlet#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
		System.out.println("서블릿이 종료될 떄 자동호출(메모리 해제)");
	}

	/**
	 * 외부에서 요청을 했을 떄 그 요청에 따라서 요철을 처리해주는 메서드 - request
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("웹상에서 get방식으로 접속할때마다 자동으로 호출");
		response.setContentType("text/html; charset=utf-8"); // 한글처리
		// 상대방에게 데이터를 전송 -> PrintWriter out = new PrintWriter() (x)
		PrintWriter out = response.getWriter(); // 메서드의 반환형 //클라이언트에게 데이터 전송목적(출력객체)
		out.println("<html><head></head>"); //out.println("보내줄 데이터 작성")
		out.println("<body>");
		// 서블릿의 기능을 써주면 된다.
		out.println("<h2>Hello Servlet</h2>");
		out.println("<hr>");
		out.println("<table border=1>");
		  for(int i=2; i<=9; i++) {
			  out.println("<tr>");
			  for(int j=1; j<10; j++) {
				  out.println("<td>");
				  out.println(""+i+"*"+j+"="+(i*j));
				  out.println("</td>");
			  }
			  out.println("</tr>");
		  }
		out.println("</body>");
		out.println("</html>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("웹상에서 post방식으로 접속할때마다 자동으로 호출");
	}

}

출력화면

 

 

 

'KIC > JSP' 카테고리의 다른 글

[JSP] forward  (0) 2020.09.21
[JSP] notice  (0) 2020.09.21
[JSP] 프로젝트 생성/삭제  (0) 2020.09.21
[JSP] 프로젝트 export / import  (0) 2020.09.21
[JSP] JSP 표만들기  (0) 2020.09.21